DeepSeek Harness Konfiguration
DeepSeek Harness (Befehlsname dsh) ist DeepSeeks offizielles Open-Source-Agent-Harness, aufgebaut auf einer Architektur, in der alles ein Plugin ist — Modelle, Tools, Skills, Sessions, Sandboxes und die Oberfläche sind allesamt austauschbare Plugins. Standardmäßig ruft es die offizielle DeepSeek-API auf; richten Sie das Modell-Plugin auf OfoxAI aus, und dasselbe Harness erreicht 100+ Modelle.
dsh befindet sich in der Developer Preview, und die Maintainer weisen ausdrücklich darauf hin, dass Breaking Changes zu erwarten sind. Diese Anleitung bezieht sich auf @deepseek-ai/dsh 0.1.2-rc.1.
Konfigurationsschritte
1. dsh installieren
Installieren Sie zuerst Node.js. dsh wird auf npm als @deepseek-ai/dsh veröffentlicht und stellt nach der Installation den Befehl dsh bereit.
macOS
npm install -g pnpm # überspringen, falls bereits installiert
pnpm add -g @deepseek-ai/dsh
dsh --versionDas globale bin-Verzeichnis von pnpm muss in Ihrem PATH liegen; mit pnpm bin -g finden Sie es.
pnpm gibt während der Installation möglicherweise die Warnung Ignored build scripts: node-pty, koffi … aus. Ignorieren Sie sie — beide Pakete liefern vorkompilierte Binaries für jede Plattform und benötigen keine lokale Kompilierung.
Zum Ausprobieren ohne globale Installation:
npx @deepseek-ai/dsh web2. OfoxAI-Provider konfigurieren
dsh legt seine Konfiguration unter $DSH_HOME ab — ~/.dsh unter macOS und Linux, %USERPROFILE%\.dsh unter Windows. Wählen Sie einen der beiden Wege.
Wählen Sie die Base URL passend zu Ihrem Netzwerk: In internationalen Netzen nutzen Sie api.ofox.ai, Nutzer in Festlandchina api.ofox.io. Beide sind ein Spiegel desselben Dienstes — derselbe API Key funktioniert auf beiden, und der Pfad ist jeweils /v1.
Web UI (empfohlen)
dsh webDas Terminal gibt eine URL mit Token aus (standardmäßig http://127.0.0.1:3080) und öffnet Ihren Browser. Klicken Sie unten links auf Settings:

Wechseln Sie in der linken Navigation zu Models:

Der eingebaute Eintrag deepseek-official spricht direkt mit DeepSeek — der Weg über OfoxAI bedeutet also, einen eigenen Provider anzulegen: Klicken Sie auf Add a custom provider:

Füllen Sie die folgenden Felder aus und klicken Sie dann auf Fetch available models:
| Feld | Wert |
|---|---|
| Provider ID | ofox |
| Display name | ofox |
| Base URL | https://api.ofox.ai/v1 |
| API protocol | openai-completions |
| API key | Ihr OfoxAI API Key |

Im Screenshot steht API protocol auf openai-responses — das ist der Standardwert des Formulars, und nur DeepSeek-Modelle akzeptieren ihn. Wählen Sie openai-completions, um den gesamten Katalog abzudecken.
Markieren Sie die gewünschten Modelle, klicken Sie auf Add selected und anschließend im Formular auf Create provider:

Zurück in der Sitzungsansicht müssen Sie beim ersten Mal einen Workspace auswählen (das Projektverzeichnis, das dsh lesen und schreiben darf). Danach stehen alle Modelle der Gruppe ofox in der Modellauswahl rechts unten am Eingabefeld zur Verfügung:

Der Schlüssel wird nach $DSH_HOME/.credentials.yaml geschrieben (nur für Ihren eigenen Betriebssystem-Benutzer lesbar), die Provider-Konfiguration nach $DSH_HOME/settings.yaml. Beides wird sofort wirksam, ohne Neustart.
Modell-IDs müssen das Anbieterpräfix enthalten — anthropic/claude-sonnet-5, nicht das bloße claude-sonnet-5, das abgelehnt wird. Den vollständigen Katalog finden Sie im Modell-Marktplatz .
3. API Key setzen
apiKeyEnv benennt lediglich ein Credential, statt den Schlüssel selbst zu enthalten. dsh löst es in einer festen Reihenfolge auf: zuerst die Umgebung, in der dsh gestartet wurde, dann $DSH_HOME/.credentials.yaml, dann die .env Ihres Projekts, dann die .env in Ihrem Home-Verzeichnis. Wenn Sie die Web UI verwendet haben, ist der Schlüssel bereits gespeichert und Sie können diesen Schritt überspringen.
macOS
export OFOX_API_KEY=<Ihr OFOXAI_API_KEY>4. Überprüfen
dsh --profile headless "Antworte mit genau: OK. Rufe keine Tools auf."Kommt ein OK zurück, erreicht die Modellschicht OfoxAI. Für die tägliche Arbeit starten Sie die Weboberfläche mit dsh web oder führen mit dsh --profile headless "run the tests" eine einzelne Aufgabe aus und beenden das Programm wieder.
Plattformunterschiede
Der Inhalt der Konfigurationsdatei ist auf allen drei Plattformen identisch — nur Pfade und die Syntax für Umgebungsvariablen unterscheiden sich.
| macOS | Linux | Windows | |
|---|---|---|---|
Konfigurationsverzeichnis $DSH_HOME | ~/.dsh | ~/.dsh | %USERPROFILE%\.dsh |
| API Key dauerhaft speichern | ~/.zshrc | ~/.bashrc | setx |
| Sandbox für Shell-Tools | Bash | Bash | PowerShell (die Bash-Sandbox wird automatisch deaktiviert) |
Fehlerbehebung
TIMEOUT: Request timed out. — dsh ist eine Node-Anwendung und liest http_proxy / all_proxy nicht aus; ein funktionierender System-Proxy bedeutet also nicht, dass dsh eine Verbindung aufbauen kann. Ist die Domain aus baseURL in Ihrem Netzwerk nicht erreichbar, sollten Nutzer in Festlandchina auf den Spiegel https://api.ofox.io/v1 wechseln.
MISSING_CREDENTIAL — das von apiKeyEnv benannte Credential konnte nicht aufgelöst werden. Prüfen Sie, ob die Umgebungsvariable in dem Terminal, aus dem dsh gestartet wurde, tatsächlich gesetzt ist oder ob der Schlüssel in $DSH_HOME/.credentials.yaml hinterlegt ist. Die andere Ursache ist ein falsch gewähltes Modell: Die eingebaute Route deepseek-official listet ihre Modelle auch ohne konfigurierten Schlüssel in der Auswahl auf — unter Namen, die denen Ihrer eigenen Route sehr ähnlich sind.
Die Antwort ist leer, ohne dass ein Fehler gemeldet wird — die häufigste Falle: Kombiniert man api: openai-responses mit einem Anthropic-Modell, endet die Anfrage regulär (finish reason: stop), liefert aber keinen Inhalt. Verschieben Sie dieses Modell auf eine openai-completions-Route oder auf eine anthropic-messages-Route, die auf https://api.ofox.ai/anthropic zeigt.
INVALID_REQUEST / HTTP 400 endpoint_not_supported — im Payload steht Model '…' does not support the /v1/responses endpoint on this platform. Please use /v1/chat/completions instead. Google- und Qwen-Modelle verhalten sich unter openai-responses so. Auch hier: api auf openai-completions umstellen.
Das Laden eines Plugins scheitert an einer doppelten Route — derselbe Routenname wurde zweimal registriert. Prüfen Sie, ob sowohl $DSH_HOME/cordis.patch.yml als auch settings.yaml ofox definieren.
Fortgeschritten: Konfiguration über die Patch-Ebene
settings.yaml enthält die Benutzereinstellungen zur Laufzeit und wird mit der nächsten Anfrage wirksam. Um die Plugin-Zusammensetzung selbst zu ändern — ein Plugin austauschen oder deaktivieren —, verwenden Sie die Patch-Ebene unter $DSH_HOME/cordis.patch.yml:
- id: llm-pi-ai
config:
providers:
ofox:
apiKeyEnv: OFOX_API_KEY
api: openai-completions
baseURL: https://api.ofox.ai/v1
- id: agent-default-model
config:
provider: ofox
model: deepseek/deepseek-v4-pro-0813Führen Sie dsh web --dump-config aus, um den zusammengesetzten Plugin-Baum auszugeben und zu bestätigen, dass Ihre Konfiguration greift.
Empfohlene Modelle
Empfohlene Modelle finden Sie im Modell-Marktplatz .
dsh entwickelt sich schnell weiter, und die Konfigurationsfelder können sich zwischen Versionen ändern. Gleichen Sie sie mit dem offiziellen DeepSeek-Harness-Repository ab.