Aller au contenu

DeepSeek Harness

DeepSeek Harness (dsh) est le harness d'agent open source de DeepSeek. Il fait tourner une interface web locale pour les sessions d'agent, l'exécution d'outils et le travail sur les dépôts, et peut aussi être intégré via sa CLI ou son SDK Python.

DeepSeek Harness est neutre vis-à-vis des fournisseurs: les endpoints personnalisés compatibles OpenAI sont pris en charge aux côtés de l'API de DeepSeek. Connecté à notre Everyware AI API hébergée en Suisse, vos prompts et votre code source sont traités sur notre infrastructure GPU suisse.


Fonctionnalités clés

  • Interface web locale: sessions d'agent, modifications de fichiers et sorties d'outils dans une interface navigateur.
  • Fournisseurs personnalisés: enregistrez des endpoints compatibles OpenAI dans un fichier de patch Cordis.
  • Sélection de modèle: les modèles configurés apparaissent dans l'interface web et deviennent le modèle par défaut des nouvelles sessions.
  • Contrôle du raisonnement: déclarez des niveaux d'effort par modèle; l'interface affiche un menu Effort.
  • Souveraineté totale des données: les requêtes de modèle passent par notre Everyware AI API suisse.

Aperçu développeur

DeepSeek Harness est publié comme aperçu développeur. Les clés de configuration et le comportement peuvent changer d'une version à l'autre. Vérifiez la documentation actuelle avant un déploiement à grande échelle.


Installation

DeepSeek Harness nécessite Node.js. Démarrez l'interface web directement avec npx:

npx @deepseek-ai/dsh web

L'interface web s'ouvre à l'adresse http://127.0.0.1:3080. Options utiles: --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

Configuration

1. Enregistrer la clé API

Exportez votre clé API virtuelle comme variable d'environnement avant de démarrer le harness:

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

Vous pouvez aussi enregistrer la clé via l'interface web sous Settings → Models; elle est conservée dans $DSH_HOME/.credentials.yaml.

2. Enregistrer le gateway

Créez ou modifiez ~/.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 est le nom de la variable d'environnement, pas la clé elle-même. Une clé littérale n'est pas écrite dans le YAML.

Le bloc compat est le premier correctif habituel pour les gateways non OpenAI: supportsDeveloperRole: false évite le rôle developer, et maxTokensField: max_tokens évite max_completion_tokens.

La configuration est remplacée, pas fusionnée

Une surcharge Cordis remplace l'entrée de configuration complète. Lorsque vous modifiez un bloc llm-pi-ai existant, conservez tous les autres fournisseurs et champs du fichier.

3. Démarrer et sélectionner un modèle

npx @deepseek-ai/dsh web

Dans l'interface web, sélectionnez le modèle via le sélecteur de modèle. La sélection en fait aussi le modèle par défaut des nouvelles sessions. Si l'endpoint /v1/models du gateway renvoie une liste standard, Fetch available models peut remplir la liste automatiquement; sinon, saisissez les IDs de modèle manuellement.


Flux de travail typiques

  • Interface web interactive:
    npx @deepseek-ai/dsh web
    
  • Changer le port:
    npx @deepseek-ai/dsh web --port 8080
    
  • Exécution unique:
    npx @deepseek-ai/dsh --profile headless "Explain the architecture of this repository."
    
  • Interface terminal optionnelle (plugin externe):
    npx @deepseek-ai/dsh plugin --profile tui add github:deepseek-harness/turtle-ui
    npx @deepseek-ai/dsh --profile tui
    

Télémétrie et journaux de session

DeepSeek Harness téléverse par défaut les journaux de session vers DeepSeek, y compris les sessions qui utilisent un gateway configuré. Pour la souveraineté des données suisses, désactivez Settings → General → Upload Session Log (ou mettez la télémétrie sur enabled: false) et définissez DSH_TELEMETRY_MODE=DISABLED pour les téléversements OpenTelemetry.