Zum Inhalt

DeepSeek Harness

DeepSeek Harness (dsh) ist das quelloffene Agent-Harness von DeepSeek. Es betreibt eine lokale Web-Oberfläche für Agenten-Sitzungen, Werkzeugausführung und Repository-Arbeit und kann ausserdem über CLI oder Python-SDK eingebunden werden.

DeepSeek Harness ist provider-neutral: Benutzerdefinierte OpenAI-kompatible Endpunkte werden neben der DeepSeek-API unterstützt. In Kombination mit unserer in der Schweiz betriebenen Everyware AI API werden Ihre Prompts und Quellcodes auf unserer Schweizer GPU-Infrastruktur verarbeitet.


Hauptmerkmale

  • Lokale Web-Oberfläche: Agenten-Sitzungen, Dateiänderungen und Werkzeugausgaben im Browser.
  • Benutzerdefinierte Provider: OpenAI-kompatible Endpunkte in einer Cordis-Patch-Datei registrieren.
  • Modellauswahl: Konfigurierte Modelle erscheinen in der Web-Oberfläche und werden zum Default für neue Sitzungen.
  • Reasoning-Steuerung: Effort-Stufen pro Modell deklarieren; die Oberfläche zeigt ein Effort-Menü.
  • Volle Datensouveränität: Modellanfragen laufen über unsere Schweizer Everyware AI API.

Developer Preview

DeepSeek Harness wird als Developer Preview veröffentlicht. Konfigurationsschlüssel und Verhalten können sich zwischen Releases ändern — prüfen Sie die aktuelle Dokumentation, bevor Sie es breit ausrollen.


Installation

DeepSeek Harness benötigt Node.js. Starten Sie die Web-Oberfläche direkt mit npx:

npx @deepseek-ai/dsh web

Die Web-Oberfläche öffnet sich unter http://127.0.0.1:3080. Nützliche Flags: --port 8080, --host, --no-open.

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

Konfiguration

1. API-Key speichern

Exportieren Sie Ihren virtuellen API-Key als Umgebungsvariable, bevor Sie das Harness starten:

export EW_AI_API_KEY="sk-bf-..."

Alternativ können Sie den Key in der Web-Oberfläche unter Settings → Models speichern; er wird in $DSH_HOME/.credentials.yaml abgelegt.

2. Gateway registrieren

Erstellen oder bearbeiten Sie ~/.dsh/profiles/web/cordis.patch.yml:

- id: llm-pi-ai
  config:
    providers:
      ew:
        displayName: Everyware AI API
        apiKeyEnv: EW_AI_API_KEY
        api: openai-completions
        baseURL: https://ai.ewcs.ch/v1
        compat:
          supportsDeveloperRole: false
          maxTokensField: max_tokens
        models:
          - id: ew/flagship
            name: Everyware Flagship
            contextWindow: 1048576
            maxTokens: 131072
            input: [text, image]
            reasoningEfforts:
              low: low
              high: high
          - id: ew/balanced
            name: Everyware Balanced
            contextWindow: 1000000
            maxTokens: 131072
            input: [text, image]
            reasoningEfforts:
              low: low
              high: high
          - id: ew/fast
            name: Everyware Fast
            contextWindow: 262144
            maxTokens: 131072
            input: [text, image]
            reasoningEfforts:
              low: low
              high: high

apiKeyEnv ist der Name der Umgebungsvariable, nicht der Key selbst. Ein literaler Key wird nicht in die YAML-Datei geschrieben.

Der compat-Block ist der übliche erste Fix für Nicht-OpenAI-Gateways: supportsDeveloperRole: false vermeidet die developer-Rolle, und maxTokensField: max_tokens vermeidet max_completion_tokens.

Konfiguration wird ersetzt, nicht zusammengeführt

Ein Cordis-Override ersetzt den vollständigen Konfigurationseintrag. Wenn Sie einen bestehenden llm-pi-ai-Block bearbeiten, behalten Sie alle anderen Provider und Felder in der Datei bei.

3. Starten und Modell auswählen

npx @deepseek-ai/dsh web

Wählen Sie das Modell in der Web-Oberfläche über die Modellauswahl. Die Auswahl wird auch zum Default für neue Sitzungen. Wenn der /v1/models-Endpunkt des Gateways eine Standardliste zurückgibt, kann Fetch available models die Liste automatisch füllen; andernfalls tragen Sie die Modell-IDs manuell ein.


Typische Workflows

  • Interaktive Web-Oberfläche:
    npx @deepseek-ai/dsh web
    
  • Anderen Port verwenden:
    npx @deepseek-ai/dsh web --port 8080
    
  • Einmalige Ausführung:
    npx @deepseek-ai/dsh --profile headless "Erkläre die Architektur dieses Repositories."
    
  • Optional: Terminal-Oberfläche (externes Plugin):
    npx @deepseek-ai/dsh plugin --profile tui add github:deepseek-harness/turtle-ui
    npx @deepseek-ai/dsh --profile tui
    

Telemetrie und Sitzungsprotokolle

DeepSeek Harness lädt Sitzungsprotokolle standardmässig zu DeepSeek hoch — auch bei Sitzungen, die über ein konfiguriertes Gateway laufen. Für Schweizer Datensouveränität deaktivieren Sie Settings → General → Upload Session Log (oder setzen Sie Telemetrie auf enabled: false) und setzen Sie DSH_TELEMETRY_MODE=DISABLED für OpenTelemetry-Uploads.