DeepSeek Harness, kurz dsh, ist ein Open-Source-KI-Agent-Harness von DeepSeek AI. Wenn das Modell Fragen beantwortet, gibt das Geschirr seine Hände: liest und bearbeitet Dateien, führt Befehle aus, hält Sitzungen ab, zeigt den Ausführungsverlauf an und lässt sich mit Plugins erweitern. Das Projekt wird unter der MIT-Lizenz vertrieben und befindet sich in der öffentlichen Vorschau.
Der Grundgedanke von DeepSeek Harness lautet „Alles ist ein Plugin“ – wörtlich „Alles ist ein Plugin“. Darauf baut das gesamte Produkt auf: Modelladapter, eine Tool-Registrierung, ein Sitzungsprotokoll, eine Schnittstelle und sogar der Agentenzyklus selbst. Es basiert auf dem Cordis-Framework, sodass ein Entwickler nicht nur einen neuen Befehl hinzufügen, sondern das gesamte Verhalten des Agenten ersetzen kann, ohne den Kernel zu forken.
Sie können mit dsh auf verschiedene Arten arbeiten: über die lokale Weboberfläche, über eine Desktop-Anwendung, über die Befehlszeile im Headless-Modus oder über das Python SDK. Nachfolgend finden Sie die Installation, den ersten Start und einen Überblick über die Funktionen.
Was Sie brauchen
Die Weboberfläche und die CLI erfordern Node.js. Das Projekt hat strenge Anforderungen:
- Node.js 22.19.0 oder höher in der 22.x-Zeile.
- Node.js 24.0.0 oder höher in der 24.x-Zeile.
- Node.js 23.x wird in keinem Patch unterstützt: Diese Linie ist nicht LTS und wurde bereits eingestellt.
Zusätzlich zu Node.js benötigen Sie den DeepSeek-API-Schlüssel. Es wird in Ihrem persönlichen Konto auf platform.deepseek.com erstellt. Die Desktop-Anwendung benötigt kein Node.js – die Umgebung ist bereits dort verpackt.
Sie können die Version mit dem Befehl überprüfen:
node -v
Installation über npx
Der schnellste Weg, das Projekt kennenzulernen, besteht darin, überhaupt nichts global zu installieren. Führen Sie einfach Folgendes aus:
npx @deepseek-ai/dsh web
Der Befehl lädt das Paket @deepseek-ai/dsh von npm herunter, richtet einen lokalen Webserver ein und öffnet die Schnittstelle im Browser. Standardmäßig lauscht es auf die Adresse:
Wenn Sie den Browser nicht öffnen müssen, beispielsweise auf einem Remote-Computer, fügen Sie das Flag –no-open hinzu:
npx @deepseek-ai/dsh web --no-open
Beim Start über SSH gibt dsh die Adresse aus, versucht jedoch nicht, den Browser zu öffnen: Die lokale Adresse gehört dem SSH-Client oder -Editor.
Globale Installation
Wenn Sie ein Tool ständig benötigen, ist es bequemer, es global zu installieren. Das Paket stellt die dsh-Binärdatei bereit:
npm install -g @deepseek-ai/dsh
dsh web
Danach ist der Befehl dsh in jedem Verzeichnis verfügbar. Das Update erfolgt wie gewohnt:
npm install -g @deepseek-ai/dsh@latest
Desktop-Anwendung
Für diejenigen, die kein Terminal und Node.js besitzen möchten, veröffentlicht DeepSeek Desktop-Builds. Sie sind auf der offiziellen Download-Seite verfügbar:
- macOS – Apple Silicon, macOS 13 oder höher, DMG-Format.
- Windows – 64-Bit-Assembly, EXE-Format.
Die Anwendung arbeitet mit denselben lokalen Dateien, kann Aufgaben im Hintergrund ausführen und speichert Sitzungen auf die gleiche Weise wie die Webversion. Dies ist eine praktische Option für die tägliche Arbeit, wenn Sie den Server nicht jedes Mal manuell hochfahren möchten.
Aufbau aus Quellen
Wenn Sie die volle Kontrolle über den Code, Ihre eigenen Patches oder die Plugin-Entwicklung benötigen, wird das Projekt aus dem Repository gesammelt. Sie benötigen pnpm und das Repository repariert eine bestimmte Version, daher sollten Sie zuerst Corepack aktivieren:
corepack enable
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
Der Befehl pnpm run build bereitet Paket- und Frontend-Artefakte vor und pnpm dsh web führt die bereits erstellte Version aus, ohne sie neu zu erstellen. Für die Entwicklung gibt es einen Modus pnpm run dev:web: Er erstellt, startet den Server und erstellt Client-Bundles neu, wenn sich die Quellen ändern.
Erster Start
Nach dem Starten der Weboberfläche ist der Ablauf wie folgt.
Öffnen Sie zunächst Einstellungen → Modelle und geben Sie den DeepSeek-API-Schlüssel ein. Der Schlüssel wird in der Datei $DSH_HOME/.credentials.yaml gespeichert und in den Einstellungen verbleibt nur ein Link dazu. Die Einstellungsseite erhält eine bereits maskierte Beschreibung des Geheimnisses, so dass es unmöglich ist, den Schlüssel von der Schnittstelle zurückzulesen. Modelländerungen werden ab der nächsten Anfrage übernommen; Es ist nicht erforderlich, den Server neu zu starten.
Anschließend wählen Sie über Arbeitsbereich auswählen Ihren Arbeitsordner aus. Solange der Arbeitsbereich nicht ausgewählt ist, bleibt das Aufgabeneingabefeld ausgegraut. Dies geschieht mit Absicht: Der Agent muss die Grenzen verstehen, innerhalb derer er Dateien lesen und ändern darf.
Anschließend können Sie die erste Aufgabe abschicken. Zum Beispiel:
Summarize this repository and identify its main packages.
Der Agent liest das Projekt, erstellt einen Plan, ruft die erforderlichen Tools auf und zeigt das Ergebnis. Bei Vorgängen, die eine Bestätigung basierend auf der aktuellen Zugriffsrichtlinie erfordern, fragt dsh vor der Ausführung nach.
Modelle und Anbieter
DeepSeek verbindet sich in einem Schritt: Die Anbieterkarte in den Einstellungen enthält nur ein Feld für den API-Schlüssel. Darüber hinaus können Sie Dienste von Drittanbietern hinzufügen. Das integrierte Verzeichnis kennt Bezeichner wie anthropic, openai, moonshotai für Kimi und zai für GLM.
Für Ihr eigenes Gateway, Ihren Unternehmens-Proxy oder lokalen Server gibt es einen Custom Model API-Modus. Es fragt:
- permanente Anbieterkennung;
- Anzeigename;
- API-Basisadresse;
- Protokoll: OpenAI-Chat-Abschlüsse, OpenAI-Antworten oder Anthropic-Nachrichten;
- Schlüssel und Liste der Modelle.
Das Protokoll ist wichtig: Ein Anbieter spricht ein Protokoll. Wenn ein Gateway sowohl OpenAI als auch Anthropic unterstützt, muss es von zwei Anbietern beschrieben werden. Für Modelle können Sie die Größe des Kontextfensters, die maximale Anzahl von Ausgabetokens und unterstützte Eingabedatentypen, einschließlich Bilder, angeben.
DeepSeek-Modelle haben die Argumentationsstufen aus, niedrig, hoch und max. Die Stufe wird im Menü Aufwand neben dem Modell ausgewählt. Für Routineaufgaben im Repository genügt ein schnelles Modell, bei komplexen Architekturaufgaben ist es jedoch sinnvoll, den Aufwand zu erhöhen oder ein höherklassiges Modell zu nehmen.
Plugins und Creator-Modus
Plugins sind das Hauptmerkmal von DeepSeek Harness. Durch sie werden Werkzeuge, Fähigkeiten, Schnittstellenelemente und ganze Anwendungen hinzugefügt. Die Schnittstelle verfügt über einen Plugin-Manager mit offiziellen und experimentellen Sets: Agentenbefehle, automatische Bestätigung, geplante Aufgaben, Spracheingabe, Terminal, Subagenten.
Der Creator-Modus sticht gesondert hervor. In diesem Modus können Sie den Agenten direkt im Chat bitten, ein Plugin zu schreiben. Es lädt den Cordis-Plugin-Entwicklungsskill herunter, erstellt eine Paketstruktur, schreibt Code, installiert das Plugin und überprüft seinen Status. Auf der offiziellen Projektseite gibt es ein Beispiel, in dem ein schwebender Pomodoro-Timer auf diese Weise zusammengebaut wird.
Plugins können auch über die Befehlszeile installiert werden. Für ein Webprofil sieht der Befehl so aus:
dsh plugin --profile web add some-dsh-plugin
Npm-Pakete, Links wie github:owner/repo, lokale Verzeichnisse und TGZ-Archive werden unterstützt. Nach der Installation ist es sinnvoll zu prüfen, ob der Plugin-Layer tatsächlich in der Konfiguration enthalten ist:
dsh --profile web --dump-config
Der Befehl druckt den zusammengestellten Plugin-Baum, ohne den Server zu starten. Wenn keine neue Ebene vorhanden ist, hat das Bundle höchstwahrscheinlich kein dsh.bundle-Manifest deklariert und als reguläre Bibliothek und nicht als enthaltenes Plugin installiert.
Zu den experimentellen Einstellungen gehören Benutzerdefinierte Plugin-Märkte. Dies ist eine Index-JSON-Datei mit einer Liste von Plugins, ihren Versionen, Symbolen und Quellen. Durch die Aktivierung des Sets erhalten Sie eine Registerkarte Entdecken auf der Plugins-Seite und die Möglichkeit, Märkte von Drittanbietern zu verbinden. Wie jede Quelle Dritter sollte ein solcher Markt nur dann hinzugefügt werden, wenn Sie seinen Autoren vertrauen.
Verlauf und Prüfung
Für jede Sitzung schreibt dsh ein Nur-Anhänge-Ereignisprotokoll – Trajectory. Es speichert die Systemaufforderung, Argumentation, Toolaufrufe und deren Ergebnisse, Subagentenplanung und Kontexteinfügungen. Sitzungswiederaufnahme, Forks, Suche und Wiedergabe basieren auf diesem Protokoll.
Der praktische Vorteil besteht darin, dass das Gespräch keine Blackbox mehr ist. In der Schnittstelle können Sie die Trajektorie öffnen und sehen, welche Tools aufgerufen wurden, wie lange jeder Schritt gedauert hat, welche Dateien geändert wurden und wie viele Token für die Anfrage ausgegeben wurden. Sollte sich ein Agent merkwürdig verhalten, ist der Grund meist hier sichtbar und nicht in einer kurzen Antwort im Chat.
Sitzungen befinden sich in ~/.dsh/sessions in Form von JSONL-Protokollen. Sie können sie lesen, danach suchen und Ihre eigenen Analysen erstellen. Dadurch ist es auch möglich, Ausgaben und Cache-Treffer genau zu berechnen, die in einer regulären API-Rechnung nicht sichtbar sind.
Hintergrundaufgaben und Zeitpläne
DeepSeek Harness kann nicht nur im Modus „Fragen und eine Antwort erhalten“ arbeiten. Aufgaben können im Hintergrund gestartet und geplant werden. Bitten Sie den Agenten beispielsweise, jeden Freitag um 17:00 Uhr einen wöchentlichen Bericht aus den Projektnotizen zusammenzustellen. In der Benutzeroberfläche sind solche Aufgaben separat sichtbar: Sie können den Status überprüfen, den Verlauf anzeigen und Ausführungsdetails öffnen.
Für die Automatisierung gibt es ein Headless-Profil. Es startet eine Sitzung, gibt die endgültige Antwort aus und wird beendet:
dsh --profile headless "run the tests"
Dieser Modus ist praktisch für CI, Cron und Skripte, bei denen kein Webinterface benötigt wird. Zusätzlich zu Headless sind die Profile sdk und acp verfügbar: Das erste bedient SDK-Clients über JSON-RPC, das zweite bedient Automatisierungs-Clients über ACP stdio.
Subagenten, MCPs und Fähigkeiten
Eine komplexe Aufgabe kann auf Subagenten aufgeteilt werden. Der Hauptagent plant die Arbeit und einzelne Unteragenten arbeiten in ihren Bereichen. Dies trägt dazu bei, den Kontext kompakt zu halten und nicht den gesamten Verlauf in jede Anfrage zu ziehen.
Externe Tools und Datenquellen werden über MCP angebunden. Die Dokumentation enthält einen separaten Leitfaden für Speicher-MCP sowie Integrationen wie GitHub-Überprüfungssitzungen. Fähigkeiten beschreiben wiederholbare Verfahren, die der Agent nach Bedarf lädt, anstatt ständig alle Anweisungen in einer Systemaufforderung zu speichern.
Profile, Bundles und Patches
Die dsh-Konfiguration besteht aus drei Schichten. Bundle ist eine Reihe von Konfigurationszeilen und Plugin-Code, also eine vorgefertigte Funktionalität. Profil ist eine benannte Zusammenstellung von Bundles, die in $DSH_HOME/profiles/
Die Reihenfolge der Anwendung ist wie folgt: zuerst die Bundles in Profilreihenfolge, dann der Profil-Patch, dann der allgemeine Patch $DSH_HOME/cordis.patch.yml und am Ende die über –patch übertragenen Overlays. Dies bedeutet, dass fast jede Einstellung überschrieben werden kann, ohne die Bundle-Quellen zu berühren. Sie können den resultierenden Baum mit dem folgenden Befehl anzeigen:
dsh --profile web --dump-config
Ein Standard-Webprofil heißt Web, ein serverloses Profil heißt Headless. Ihre Einstellungsdateien befinden sich in $DSH_HOME/profiles/web/cordis.patch.yml und $DSH_HOME/profiles/headless/cordis.patch.yml. Hier schreibt dsh die über die Einstellungsschnittstelle vorgenommenen Änderungen.
Python SDK
Es gibt ein offizielles SDK für Python-Projekte. Es wird in einer virtuellen Umgebung installiert und bringt eine native Laufzeit mit, sodass das System Node.js für die normale Arbeit nicht benötigt wird:
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install deepseek-harness-sdk
Ein minimales Startup-Beispiel sieht so aus:
from pathlib import Path
from deepseek_harness import DeepSeekHarness
workspace = Path("C:/work/disposable-workspace").resolve()
dsh_home = Path("C:/work/example-dsh-home").resolve()
with DeepSeekHarness(
provider="deepseek-official",
model="deepseek-v4-flash",
max_tokens=49_152,
cwd=str(workspace),
dsh_home=str(dsh_home),
profile="sdk-minimal",
) as harness:
result = harness.run(
"Inspect the repository and fix the failing tests.",
session_id="example-001",
)
print(result.final_response)
Das SDK startet den gebündelten DSH-Prozess mit dem SDK-Minimal-Profil und verwendet es erneut, bevor es den Kontextmanager verlässt. Das Minimalprofil ist absichtlich eingeschränkt: Es verfügt über Bash oder PWSH, Bildlesen und ein Arbeitsverzeichnis, aber keine Web-Tools, Subagenten oder einige der Datei-Tools. Bei einmaligen Aufgaben ist das ein Plus: Es gibt weniger Kontrollfläche.
Worauf Sie achten sollten
DeepSeek Harness ist eine Entwicklervorschau Version 0.1.0-rc.x. Die README-Datei warnt ausdrücklich davor, dass die Kompatibilität beeinträchtigt wird. Für Experimente, persönliche Projekte und Automatisierung ist das in Ordnung, aber für einen Prozess, der gerade jetzt Geld einbringt, lohnt es sich, das Risiko abzuwägen und einen Backup-Plan zu erstellen.
Der zweite Punkt ist Node.js. Wenn Sie 22.18 oder 23.x haben, stürzt die Installation ab oder verhält sich unvorhersehbar. Überprüfen Sie die Version im Voraus: Das Projekt verwendet node:sqlite und TypeScripts integriertes Löschen von Typen, die einen neuen Zweig benötigen.
Der dritte Punkt ist die Sandbox und die Rechte. Standardmäßig arbeitet der Agent nach einer Richtlinie, die der von Workspace-Write ähnelt: Er kann Dateien im ausgewählten Ordner ändern und potenziell gefährliche Vorgänge erfordern eine Bestätigung. Der Danger-Full-Access-Modus bietet mehr Freiheit, aber das Risiko wird höher. Bevor Sie mit einem echten Repository experimentieren, ist es sinnvoll, einen Commit oder ein Backup durchzuführen.
Der vierte Punkt sind die Kosten. DSH selbst ist kostenlos, aber für den Rückschluss zahlen Sie dem Anbieter Token. Bei langen Sitzungen ist das Präfix-Caching wichtig: dsh stellt Anfragen so zusammen, dass der Verlauf und die Tool-Schemata möglichst lange unverändert bleiben. Wenn sich herausstellt, dass die Punktzahl höher ist als erwartet, achten Sie nicht nur auf den Preis pro Token, sondern auch auf den Anteil der Cash-Hits an der Entwicklung.
Ist es einen Versuch wert?
DeepSeek Harness ist vor allem für diejenigen interessant, die nicht nur „einen weiteren Chat mit einem Model“, sondern eine kontrollierte Umgebung für Agenten wünschen. Es gibt eine transparente Flugbahn, normale Arbeit mit Dateien und Befehlen, Hintergrundaufgaben, Subagenten und eine wirklich tiefgreifende Erweiterung durch Plugins. Die Möglichkeit, eine Agentenschleife durch eine eigene zu ersetzen, ist selten und möglicherweise für Forschung und benutzerdefinierte Orchestrierung sehr nützlich.
Wenn Sie ein stabiles Tool für die tägliche bezahlte Arbeit benötigen, ist es jetzt klüger, dsh als zweiten Agenten neben dem Hauptagenten zu behandeln: Probieren Sie es an einem persönlichen Projekt aus, vergleichen Sie die Kosten und Qualität Ihrer Aufgaben und übertragen Sie es erst dann in den Workflow.
Links
https://www.deepseek.com/harness/
https://www.deepseek.com/download/
https://github.com/deepseek-ai/deepseek-harness
https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart
https://deepseek-harness.github.io/deepseek-harness/en/guide/providers
https://deepseek-harness.github.io/deepseek-harness/en/guide/python-sdk
https://platform.deepseek.com/
Quellen
https://github.com/deepseek-ai/deepseek-harness/blob/master/README.md
https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart
https://deepseek-harness.github.io/deepseek-harness/en/guide/providers
https://deepseek-harness.github.io/deepseek-harness/en/guide/python-sdk
https://deepseek-harness.github.io/deepseek-harness/en/guide/plugin-market
https://dshdocs.com/getting-started/installation/
https://dshdocs.com/concepts/profiles-bundles-patches/
https://dshdocs.com/guides/dsh-vs-claude-code/
Leave a Reply