Lernpfad
DeepSeek Harness ist darauf ausgelegt, eine Aufgabe zu erledigen – nicht nur eine Frage zu beantworten. Es ist eine Open-Source-Laufzeitumgebung für Agenten, die ein Modell mit deinem Repository, Terminal, Tools und dem Sitzungsverlauf verbindet. Bittest du es, einen Bug zu beheben, kann es Dateien prüfen, Code bearbeiten, Tests ausführen und reagieren, wenn ein Befehl fehlschlägt. Ein einzelner Modellaufruf kann das nicht alleine.
Das Ungewöhnliche steckt unter diesem Workflow. DeepSeek Harness macht den Model-Adapter, Tools, Sessions, Sandbox und sogar die Agent-Schleife als Plugins verfügbar, koordiniert von Cordis. Das Modell ist nur ein Teil des Agents – nicht das Produkt selbst.
Es ist keine fertige Software. Harness befindet sich noch in der Developer Preview; die APIs können sich zwischen Releases ändern, und der eigene Sicherheitshinweis besagt, dass kein Security Audit stattgefunden hat. Ich gehe auf diese Grenzen zusammen mit der Architektur ein und darauf, wo sie sich von Claude Code, Codex und OpenCode unterscheidet.
TL;DR
- Was es ist: DeepSeek Harness ist eine Open-Source-Laufzeitumgebung für Agenten, kein Modell. Sie gibt einem Modell Tools, Sessions, Sandboxing und eine Agent-Schleife.
- Kernprinzip: Cordis stellt den Model-Adapter, Tools, Session-Store, Sandbox und die Agent-Schleife als austauschbare Plugins bereit.
- Sessions: Ein Append-only-Ereignisprotokoll ermöglicht Fortsetzen, Forks, Suche, Replays und die Trajectory-Ansicht.
- Modi: Standard, PTC, Minimal und Creator steuern, welche Tools der Agent nutzt und wie er darauf zugreift.
- Hauptunterschied: DeepSeek Harness erlaubt Entwicklerinnen und Entwicklern, Laufzeitkomponenten auszutauschen, die bei Claude Code, Codex und OpenCode fest stehen.
- Hauptgrenze: Es bleibt eine Developer Preview ohne Security Audit, und die APIs können sich zwischen Releases ändern.
Einführung in KI-Agenten
Was ist DeepSeek Harness?
DeepSeek Harness, kurz dsh, ist ein Open-Source Agent Harness von DeepSeek AI unter der MIT-Lizenz. Es sitzt zwischen einem Sprachmodell und der Außenwelt und liefert Tools, Sessions, Sandboxing sowie die Schleife, die eine Aufgabe am Laufen hält.
DeepSeeks eigene Formel lautet „Agent = Model + Harness.“ Das Modell übernimmt Denken und Generierung. Das Harness ist alles, was dieses Denken in einem echten Dateisystem wirken lässt und die Arbeit fortsetzt, ohne dass du die Aufgabe ständig neu erklären musst.
Es läuft auf Cordis, einem Plugin-Framework, das älter ist als DeepSeek Harness. Cordis erlaubt, diese Teile unabhängig über Settings zu ersetzen. Auf die Kosten dieser Entscheidung komme ich später zurück.
Mit diesem Rahmen vor Augen nun zwei gängige Missverständnisse.
DeepSeek Harness ist kein KI-Modell
Wie erwähnt sind Modell und Laufzeit zwei getrennte Schichten. Diese Trennung erlaubt dir, den Anbieter zu wechseln, ohne Tools oder Session-Setup zu ändern. Dieselbe Laufzeit kann DeepSeek, Anthropic, OpenAI oder einen OpenAI-kompatiblen Endpoint nutzen.
DeepSeek Harness ist mehr als ein Coding-Assistent
Der Standardmodus erzeugt den Eindruck eines Coding-Assistenten, ist aber nur ein Setup. Wie ich später zeige, verändern Minimal- und Creator-Modus, was der Agent nutzen kann. Ein neues Setup zu bauen erfordert weiterhin Engineering-Arbeit; Entwicklerinnen und Entwickler bekommen Zugriff auf die Bausteine.
Wie Cordis die DeepSeek-Harness-Plugins organisiert
Wie erwähnt ist Cordis das Plugin-Framework unter DeepSeek Harness. Es erlaubt, dass jede Komponente einen Dienst anfordert, ohne sie an den Code eines bestimmten Anbieters zu binden.
Cordis stammt aus dem Koishi-Chatbot-Ökosystem und wurde von einer Entwicklerin bzw. einem Entwickler namens Shigma gebaut; DeepSeek vertreibt und erweitert es. Die Autorinnen und Autoren beschreiben das Design im Paper A Programming Paradigm for Spatiotemporal Composability.
Diese Grundlagen führen zum Hauptslogan des Projekts und zwei Cordis-Begriffen. Die Namen klingen akademisch, das Verhalten ist recht simpel.
„Everything is a plugin“
Die Architekturdokumentation von DeepSeek sagt, du erweiterst dsh, indem du ein Plugin neben die anderen mountest. Model-Adapter, Tools, Sessions, Sandboxes, Storage, Scheduling, die Agent-Schleife und das UI sind alles Plugins.
Wörtlich genommen geht der Slogan zu weit. Cordis sitzt weiterhin unterhalb der Plugins. Es lädt und entfernt sie, prüft ihre Anforderungen und führt die Events aus, über die sie miteinander sprechen. Cordis ist erforderlich – nicht nur ein weiteres optionales Teil.
Räumliche Komponierbarkeit managt Plugin-Abhängigkeiten
Ein Plugin deklariert die Dienste, die es braucht, ohne eine manuell geschriebene Boot-Sequenz zu verlangen. Es aktiviert sich, wenn diese Dienste vorhanden sind, und deaktiviert sich, wenn ein benötigter Dienst verschwindet. Seine Abhängigkeiten entscheiden, wann es laufen kann.
DeepSeek nennt das räumliche Komponierbarkeit. Abhängigkeiten sagen Cordis, wo ein Bauteil hinpasst, sodass Entwicklerinnen und Entwickler die Startreihenfolge nicht von Hand festlegen müssen.
Zeitliche Komponierbarkeit macht Plugin-Effekte rückgängig
Cordis verfolgt auch Registrierungen wie Event Listener, Prompt-Abschnitte und Tool-Schemata. Entfernst du ein Plugin, verschwinden diese Effekte, statt verwaiste Listener zu hinterlassen. Externe Aktionen wie ein Shell-Befehl werden dadurch nicht rückgängig gemacht; Reversibilität gilt nur für Effekte, die Cordis nachhält.
DeepSeek-Harness-Architektur: So greift die Laufzeit ineinander
Eine laufende Instanz ist ein Plugin-Baum, aufgebaut aus Settings, die in einer festen Reihenfolge geladen werden. Diese Settings bestimmen, welche Teile aktiv sind.

Cordis verbindet alle austauschbaren Laufzeit-Plugins. Bild: Autor.
Cordis-Services lassen Plugins einander finden
Cordis stellt ein gemeinsames Verzeichnis von Services bereit. Plugins nutzen stabile Keys wie ctx.tools, ctx.llm und ctx.sessions, statt den Code eines Anbieters zu importieren. Ein Tool, das ctx.llm aufruft, muss nicht wissen, welcher Model-Adapter dahintersteckt.
Agent-Presets und Laufzeit-Profile steuern unterschiedliche Ebenen
Wenn alles austauschbar ist, muss trotzdem etwas entscheiden, was für einen Lauf gemountet wird – und DeepSeek Harness beantwortet das auf zwei leicht zu verwechselnden Ebenen.
Kurz gesagt: Ein Profil steuert, wie das Programm startet, ein Preset steuert, was der Agent tun darf. Wenn du nur die Web-App nutzt, kannst du die nächsten beiden Abschnitte überspringen.
Laufzeit-Profile
Ein Laufzeit-Profil (web, headless, sdk, sdk-minimal und acp werden als Templates mitgeliefert) entscheidet, wie die Anwendung startet und welche Bündel von Cordis-Plugins beim Booten gestapelt werden. Die meisten werden diese Ebene nur berühren, indem sie dsh web oder einen ähnlichen Befehl ausführen.
Agent-Presets
Ein Agent-Preset (Standard, PTC, Minimal oder Creator) entscheidet, was eine aktive Session nutzen kann. Eine Patch-Datei kann das Preset ändern, ohne den Harness-Quellcode anzufassen.
Die Agent-Schleife koordiniert Turns, Steps und Tool-Aufrufe
DeepSeek unterscheidet einen Step von einem Turn. Ein Step ist eine Modellanfrage plus dazugehörige Tool-Aufrufe. Ein Turn umfasst null oder mehr Steps: Er öffnet sich, bevor seine erste Eingabe beansprucht wird, und schließt, sobald nichts mehr aussteht. Die meisten Turns enthalten mehrere Steps, bevor der Agent antworten kann, aber eine abgelehnte Eingabe schließt einen Turn, der keine Steps verbraucht hat.

Ein Turn kann mehrere Steps enthalten. Bild: Autor.
Sessions nutzen ein Append-only-Ereignislog
Das ist für mich der wichtigste Teil. Eine Session ist ein Append-only-Log typisierter Events, kein Array von Chatnachrichten. Harness baut die Modellhistorie aus diesem Log, und die Session-Dokumentation verlangt, dass alles, was an das Modell gesendet wird, daraus rekonstruierbar ist.
Fortsetzen, Forks, Suche, Replay und die Trajectory-Ansicht bauen alle auf diesem Event-Stream auf.
Geschichte neu abzuleiten ist kein deterministischer Neu-Lauf. Modellausgaben und externer Zustand können abweichen, aber das Log liefert dennoch eine überprüfbare Aufzeichnung des Geschehenen.

Die Session-Historie ist ein Append-only-Log. Bild: Autor.
Wie DeepSeek Harness Tools und Sandboxes steuert
Ein Modell kann ein Tool namentlich anfordern, es aber nicht direkt ausführen. Zwei getrennte Kontrollen liegen zwischen der Anforderung und einer Dateisystemänderung.
Die Tool-Execution-Pipeline
Der Aufruf durchläuft eine Policy-Prüfung, die Ausführung und die Ergebnisbehandlung. Das Modell wählt das Tool; die Laufzeit entscheidet, ob und wie es läuft.

Die Laufzeit entscheidet, wie Tools laufen. Bild: Autor.
Sandboxing versus Freigaben
- Freigabe fragt, ob die Nutzerin oder der Nutzer eine Aktion bestätigen soll.
- Sandboxing begrenzt, wo und wie sie ausgeführt wird.
DeepSeek trennt beides, auch wenn Berechtigungspresets beide Kontrollen bündeln – ähnlich wie ein Container-Runtime Prozessrechte von Ausführungsgrenzen trennt.
Wichtig vorab, da ich im Abschnitt zu den Grenzen darauf zurückkomme: Einem Modell im Systemprompt zu sagen, es solle „nur Dateien lesen“, ist eine Empfehlung, der es folgen kann – keine erzwungene Grenze wie eine Betriebssystem-Sandbox.
DeepSeek-Harness-Modi: Standard, PTC, Minimal und Creator
DeepSeek Harness bietet vier verschiedene Modi. Keiner dieser vier steht über den anderen. Sie beantworten die Frage: „Wie viel der Laufzeit soll diese Session sehen?“ – und die richtige Wahl hängt von der Aufgabe ab. Wie der Architekturteil zeigte, ändert jeder Modus die verfügbaren Tools des Agents.

Vier Modi teilen sich eine Laufzeitbasis. Bild: Autor.
Standardmodus
Die universelle Basis:
- Dateibearbeitung
- Shell-Zugriff
- Datei- und Websuche
- Skills
- Planung
- Ziele
- Subagents
- Workflows
Für normale Repository-Arbeit wäre das mein Startpunkt.
PTC-Modus
Der PTC-Modus behält fast das gesamte Toolset des Standardmodus, ändert aber, wie das Modell darauf zugreift. (Seit Version 0.1.2 zeigt der Web-PTC-Modus das allgemeine workflow-Tool nicht mehr standardmäßig.)
Anstatt einzelne Tools über mehrere Modell-Steps anzufordern, schreibt das Modell ein Programm gegen ein generiertes SDK. Dieses Programm kann mehrere Tools über run_code aufrufen. Jeder Aufruf durchläuft weiterhin dieselben Policys, daher ändert PTC, wie das Modell den Plan formuliert, nicht, was es tun darf.
Die Produktseite nutzt noch das Label „Code Mode“, aber eine neuere offizielle Version benannte ihn in PTC-Modus um und hält alte Gesprächsverläufe lesbar. Ich verwende hier durchgängig PTC-Modus; in den FAQs gehe ich auf die mögliche Bedeutung der Initialen ein.
Minimalmodus
Der Minimalmodus reduziert die Umgebung auf zwei Tools: eine persistente Shell und einen String-Replacement-Dateieditor. DeepSeek nutzt ihn für Modellbenchmarks, weil Testergebnisse teilweise vom Harness abhängen – nicht nur von den Gewichten des Modells.
Creator-Modus
Der Creator-Modus erlaubt Entwicklerinnen und Entwicklern, die Laufzeit zu inspizieren und Cordis-Plugins im Speicher zu testen. Er dient dem Bau von Presets; „selbstverbessernd“ würde ich ihn nicht nennen.
Was DeepSeek Harness von anderen Agent-Frameworks unterscheidet
DeepSeek Harness unterscheidet sich von vielen Agent-Frameworks, indem es die unteren Teile der Laufzeit austauschbar macht. Ich hätte das fast in den Architekturteil gepackt, aber der Unterschied ist leicht zu übersehen. Cordis handhabt diese Änderungen über ein gemeinsames Plugin-System.
Du kannst ändern, wie der Agent arbeitet – nicht nur, welche Tools er aufruft. Das Ereignislog macht Läufe außerdem für Entwicklerinnen und Entwickler nachvollziehbar, statt sie nur als Chat-Transkript zu lesen. Minimal- und Creator-Modus erlauben es dann, die Laufzeit aus entgegengesetzten Richtungen zu testen.
DeepSeek Harness vs. Claude Code, Codex und OpenCode
Eine reine Feature-Checkliste verfehlt den Punkt. Jeder Wettbewerber unterstützt Erweiterungen; die nützliche Frage ist, welche Teile sich verändern lassen. Der Unterschied klingt klein, ist es aber nicht. Unser eigener Vergleich Harness vs. Claude Code nutzt in beiden dasselbe Modell und behandelt Setup, Logs und Kosten.
DeepSeek Harness vs. Claude Code
Claude Code unterstützt Projektanweisungen, Skills, Hooks, MCP, Subagents und ein Agent SDK – behält aber seine eingebaute Schleife fest bei. DeepSeek Harness ermöglicht über Settings den Austausch von Schleife, Model-Adapter und Storage-Schicht.
DeepSeek Harness vs. Codex
Codex braucht einen sorgfältigeren Vergleich, denn CLI und App Server sind ebenfalls Open Source. Es bietet ein Agent-Harness, das Entwicklerinnen und Entwickler über dokumentierte Einstiegspunkte erweitern. DeepSeek Harness ist darauf ausgelegt, die Laufzeit selbst zu verändern. Das ergibt unterschiedliche Grade an Kontrolle.
DeepSeek Harness vs. OpenCode
OpenCode ist bereits Open Source, arbeitet mit mehreren Modellanbietern und nutzt eine Client-Server-Architektur. Du kannst Tools, Berechtigungen, Sessions und Provider konfigurieren. Seine Plugins erweitern einen festen Server-Kern, während DeepSeek zusätzlich Schleife und Session-Store austauschbar macht.
Wann du DeepSeek Harness einsetzen solltest
Laufzeitteile auszutauschen ist kein Selbstzweck. Die zusätzliche Kontrolle zählt nur, wenn sie ein bestehendes Problem löst.
- Wenn die Laufzeit selbst Teil des Projekts ist. Wenn du Model-Adapter, Agent-Schleife, Storage oder Session-Verhalten änderst – nicht nur auf einem Agenten aufsetzt –, passt es direkter.
- Wenn du Modelle kontrolliert vergleichst. Mit derselben Laufzeit bleibt bei einem Modellwechsel mehr des Tests konstant, auch wenn sich Modelle in Toolnutzung und Denkstil unterscheiden können.
- Wenn Debugging komplexer Läufe wichtig ist. Das Session-Eventlog und die Trajectory-Ansicht erleichtern es, zu rekonstruieren, was das Modell gesehen hat und welche Tools liefen.
- Wenn du Agent-Interna testest. Creator-Modus und Cordis richten sich an Entwicklerinnen und Entwickler, die den Aufbau von Agenten studieren – weniger an Menschen, die nur Anwendungs-Code brauchen.
Für einfache Modellaufrufe oder Teams, die einen fertigen Coding-Agenten möchten, ohne seine Innereien anzufassen, ist es möglicherweise unnötig. Mehr Teile zu ersetzen lohnt sich nur, wenn diese Kontrolle ein echtes Problem löst.
Grenzen von DeepSeek Harness: Developer-Preview-Status und Sicherheitsrisiken
Ohne einen klaren Blick auf die heutigen Schwachstellen ist die Architektur oben wenig wert.
Es ist weiterhin eine Developer Preview
DeepSeeks Repository sagt deutlich, dass es Breaking Changes geben wird. Das ist bereits passiert: Die Umbenennung von Code zu PTC kam mit Änderungen an den Session-APIs und der Entfernung einer optionalen SQLite-Storage-Option. Pinniere deine Versionen. Diesen Schritt zu überspringen und auf Stabilität zu hoffen, ist kein Plan.
Mehr Kontrolle bedeutet auch mehr Komplexität
Mehr von der Laufzeit austauschbar zu machen, bedeutet auch mehr Lernaufwand: Plugin-Abhängigkeiten, Settings, Anbieterunterschiede und Versionskompatibilität. Das ist der übliche Trade-off zwischen Komfort und Kontrolle.
Ist DeepSeek Harness lokal?
DeepSeek Harness speichert Sitzungsinhalte, Tool-Aufzeichnungen und Einstellungen standardmäßig lokal, entsprechend der Datenschutzerklärung zur Verarbeitung. Du kannst die anonymen Berichte zu Einstellungen und Projektlisten deaktivieren.
Aber ein externer Modellanbieter, ein Web-Tool, ein MCP-Server oder ein Plugin kann nach eigener Policy weiterhin Daten von deinem Rechner weg senden. „Local-first“ umfasst nicht jeden angeschlossenen Dienst.
Agenten auszuführen birgt Sicherheitsrisiken
Eine Laufzeit, die Dateien bearbeiten, Befehle ausführen und Drittanbieter-Plugins laden kann, kann realen Schaden anrichten. DeepSeeks Sicherheitshinweis sagt, dass es kein Security Audit gab. Sandboxing, Freigaben und Berechtigungskontrollen senken das Risiko, garantieren aber keine Isolation.
Die Software auf dem eigenen Rechner laufen zu lassen, beseitigt dieses Risiko nicht. Nutze eingeschränkte Berechtigungen und eine entsorgbare Umgebung für untrusted Work – und sei vorsichtig mit Inhalten, die versteckte Anweisungen enthalten könnten.
Warum Agentenverhalten von mehr als nur dem Modell abhängt
Agentenverhalten hängt von der Laufzeit ebenso ab wie vom Modell. Das führt zurück zu „Agent = Model + Harness“, und dieselbe Trennung gilt für LLM-Agenten außerhalb von DeepSeek.
Was ein Modell erzeugen kann, hängt von seinen Gewichten ab. Was ein Agent tut, hängt außerdem davon ab, welcher Kontext das Modell erreicht, welche Aktionen erlaubt sind und wie eng die Ausführung begrenzt wird. Nichts davon steckt in den Gewichten.
DeepSeek Harness macht diese Umgebungsschicht sichtbar, indem es sie in benannte, austauschbare Teile zerlegt. Der Minimalmodus zeigt, warum das über DeepSeek hinaus zählt: Ein Benchmark-Ergebnis spiegelt teilweise das verwendete Harness wider – nicht nur das Modell. Das Harness macht ein Modell nicht „schlauer“. Es ändert die Rahmenbedingungen, in denen das Modell arbeitet.
Fazit
Der Satz vom Anfang ist der wichtigste: Das Modell denkt, aber die Laufzeit entscheidet, worauf dieses Denken zugreifen und was es bewirken kann. DeepSeek Harness macht diese Laufzeit editierbar – vom Model-Adapter und den Tools bis zum Session-Store und der Agent-Schleife.
Diese Kontrolle hat ihren Preis. Mehr von der Laufzeit zu ersetzen heißt, mehr Setup, Versionswechsel und Sicherheitsgrenzen zu verantworten. Eine Developer Preview mit Shell-Zugriff ist nichts zum Installieren und Vergessen.
Meine Sicht ist einfach: Nutze DeepSeek Harness, wenn die Laufzeit selbst Teil der Arbeit ist. Wenn du nur Repos bearbeiten willst, fordert ein fertiger Coding-Agent weniger von dir.
Unser DeepSeek-Harness-Tutorial behandelt das Setup. Der Leitfaden zu Alternativen zu Claude Code vergleicht weitere Coding-Agenten, während Introduction to AI Agents die Grundlagen abdeckt, die dieser Artikel voraussetzt.
DeepSeek Harness FAQs
Ist DeepSeek Harness dasselbe wie ein DeepSeek-Modell?
Nein, Modell und Laufzeit sind getrennt. Harness enthält keine Modellgewichte und führt keine Inferenz selbst aus; es sendet Anfragen an DeepSeek, Anthropic, OpenAI oder ein lokales Modell.
Ist DeepSeek Harness kostenlos nutzbar?
Die Software selbst ist MIT-lizenziert und kostenlos. Nicht kostenlos ist der angebundene Modellanbieter, denn die Inferenz wird separat vom Betreiber des Modells abgerechnet – plus eventuelle Infrastrukturkosten für Sandboxes oder externe Services, die du ergänzt.
Wofür steht PTC-Modus eigentlich?
DeepSeeks eigene Release Notes verwenden „PTC-Modus“, ohne eine feste Auflösung zu nennen – das Verhalten passt jedoch zu „programmatic tool calling“. Ich würde das als Arbeitshypothese behandeln, nicht als bestätigtes Akronym, bis DeepSeek es selbst festlegt.
Kann ich DeepSeek Harness mit einem wichtigen Repository bedenkenlos nutzen?
Einige Einschränkungen bleiben. Für ein wichtiges Repository solltest du in einer Kopie oder einem separaten Branch arbeiten, Produktionszugänge aus der Umgebung fernhalten und jedes Plugin prüfen, bevor du es lädst.
Bedeutet „Everything is a plugin“, dass ich jeden beliebigen Agenten bauen kann?
Nicht ohne echte Engineering-Arbeit. Den Model-Adapter oder die Agent-Schleife zu ersetzen, erfordert weiterhin ein Plugin, das den passenden Service-Contract erfüllt. Das Plugin-System gibt dir Zugriff auf mehr Teile; es lässt die Arbeit nicht verschwinden.
