Offre

Qu'est-ce que DeepSeek Harness : comment dsh assemble modèles et outils

DeepSeek Harness · dsh · plugins
2026-09-14 ~12 min

Nous avons tiré 0.1.5-rc.1 avec npx @deepseek-ai/dsh et lancé l’aide plus --dump-default-config.

DeepSeek Harness est un châssis d’agent remplaçable, pas une grille tarifaire. Arbre web par défaut : 152 plugins, deepseek-flash, port 3080.

Points de mesure

  1. DeepSeek Harness est un châssis d’agent open source. Le CLI s’appelle dsh. Ce n’est ni un modèle DeepSeek ni une grille tarifaire API.
  2. Nous avons tiré 0.1.5-rc.1 avec npx @deepseek-ai/dsh (Node.js v24.14.1). dsh --help définit le produit comme une pile ordonnée de patches de bundles.
  3. dsh --profile web --dump-default-config a imprimé 152 lignes de plugins. Modèle par défaut : deepseek-official / deepseek-flash. Web : 127.0.0.1:3080. Preset : standard.
  4. Les modèles s’enregistrent sur ctx.llm, les outils sur ctx.tools, la boucle sur ctx.agentLoop. Changer de modèle ne change ni bash ni la boucle.
  5. La preview développeur annonce des ruptures. Entrée : deepseek.com/harness, GitHub.
Séparez modèle / outil / boucle avant de faire de dsh votre agent de code quotidien.
Développeur examinant une composition de plugins DeepSeek Harness
dsh découpe modèle, outils et boucle en plugins remplaçables. Lire d’abord la couche de composition.

Qu’est-ce que DeepSeek Harness

DeepSeek Harness est le runtime d’agent open source de DeepSeek. Le README est net : Cordis fait de tout un plugin — adaptateurs de modèle, registre d’outils, journal de session, sandbox et la boucle d’agent elle-même se remplacent en configuration, sans forker le harness. La page produit aligne les mêmes surfaces : modèles, outils, skills, sessions, sandbox, stockage, boucle, ordonnanceur, UI.

Le nom CLI est dsh. Ce n’est pas la requête « combien coûte DeepSeek V4-Flash ». L’une est l’inférence, l’autre le châssis qui câble modèle, outils et session. Le coût token reste celui du fournisseur ; voir prix API DeepSeek V4-Flash.

Le projet est une preview développeur et prévient des ruptures. Le dépôt est public depuis le 2026-08-13. La doc suppose que vous écrirez des plugins. Cet article répond seulement à ce que c’est, comment les pièces se composent, et ce que le CLI a réellement imprimé.

Ce que nous avons mesuré

Si l’on écrit « mesuré », il faut environnement, tâches, méthode et sortie brute. Voici ce que nous avons lancé en local — pas une recopie du site marketing.

Environnement : macOS (darwin 25.4.0), Node.js v24.14.1. Chemin : npx --yes @deepseek-ai/dsh, sans clone. DSH_HOME pointait vers un répertoire isolé pour ne pas écrire dans ~/.dsh.

Tâches : (1) aide et version CLI ; (2) aide web ; (3) arbre par défaut du profil web (sans couche utilisateur, sans --patch). Nous n’avons pas lancé une tâche de code complète avec clé API, donc nous n’affirmons pas avoir patché un dépôt.

Commandes exécutées
npx --yes @deepseek-ai/dsh --version
# 0.1.5-rc.1

npx --yes @deepseek-ai/dsh --help
npx --yes @deepseek-ai/dsh web --help

export DSH_HOME="$PWD/.tmp_dsh_home"
npx --yes @deepseek-ai/dsh --profile web --dump-default-config

dsh --help définit le produit comme une pile ordonnée de patches sous vos overrides. Deux familles comptent : web (alias de --profile web) et plugin (transmet le reste à pnpm dans le profil). Les exemples montrent aussi headless, --dump-config et --from-default-profile.

dsh web --help colle à la doc : --host, --port (0 laisse l’OS choisir), --no-open, --trusted-host. Dans l’arbre, webserver vaut 127.0.0.1 et 3080.

ÉlémentValeur vuePreuve
Version npm0.1.5-rc.1dsh --version
Modèle par défautdeepseek-official / deepseek-flashagent-default-model
Écoute Web127.0.0.1:3080webserver
Preset par défautstandardagent-presets
Arbre par défaut539 lignes YAML / 152 id--dump-default-config
disabled26 lignes (surtout tool-*)le même dump

Les 26 disabled: true sont surtout des outils côté modèle (tool-bash, tool-fs, tool-skill, tool-web). dsh-web-app les coupe jusqu’à ce qu’un workspace ou un preset les rallume. Gris dans le dump ne veut pas dire « pas de bash dans l’UI ». Les pages marketing sautent cette couche.

Comment modèle, outils et boucle se composent

L’architecture décrit un dsh en marche comme un arbre de plugins empilé au boot. Au quotidien vous touchez quatre objets :

  • Profil : composition nommée sous $DSH_HOME/profiles/<name>. Modèles livrés : web, headless, sdk, sdk-minimal, acp.
  • Bundle : paquet npm avec dsh.bundle qui apporte un patch. La première init pose @deepseek-ai/dsh-base en bas.
  • Module plugin : TypeScript qui exporte apply(ctx). Adaptateurs : ctx.llm.registerAdapter() ; outils : ctx.tools ; boucle : ctx.agentLoop.
  • Ordre : patches de bundles → cordis.patch.yml du profil → patch home → --patch.
CoucheCe que vous touchezCe que vous remplacezNe pas confondre
ModèleSettings → Models, ou $DSH_HOME/settings.yamlCarte officielle, fournisseur catalogue, passerelle customUn nouveau modèle ne remplace pas bash
OutilsPreset / DSH_TOOLS_MODE / plugins d’outilsJeu standard, paire minimale, vos propresLes schémas rejoignent le prompt ; le catalogue modèles est un autre livre
Boucledsh-agent-loop par défaut, remplaçableUn autre plugin de boucleLa plupart des produits durcissent la boucle ; dsh non
Entréedsh web / headless / sdk / acpMême CLI, autre profilN’inventez pas un second binaire

Installation officielle d’un plugin tiers : dsh plugin --profile web add <paquet ou git>. dsh plugin --profile web --help nous a renvoyé l’aide pnpm — « transférer à pnpm » n’est pas une image. Essai local : dsh web --patch ./cordis.yml (premier plugin). Taguez les dépôts publics avec dsh-plugin.

La carte DeepSeek officielle stocke une clé en écriture seule dans $DSH_HOME/.credentials.yaml. Une passerelle custom exige un Provider ID en minuscules, une URL de base et un protocole (openai-completions, openai-responses ou anthropic-messages). L’ID est permanent. Une clé valide peut encore faire 400 : les modèles de raisonnement envoient le système en rôle developer et le plafond en max_completion_tokens. Correctif officiel : compat.supportsDeveloperRole: false et maxTokensField: max_tokens dans settings.yaml. Détails : Configure models.

L’UI Web bloque le compositeur tant qu’un workspace n’est pas choisi. Premier prompt suggéré : « résume ce dépôt ». Voir Use the Web UI. Les skills sont une mémoire procédurale, pas le même objet qu’un plugin dsh ; voir Hermes Agent Skills.

Les quatre modes

La page produit liste quatre modes. Notre dump a pour défaut standard. Les trois autres sont des descriptions officielles — nous ne les appelons pas « mesurés ».

ModeCe que la doc livreQuand l’utiliserNe pas attendre
StandardÉdition, shell, recherche, skills, plan, objectifs, sous-agents, workflowsAgent de code quotidienIl ne choisit pas votre prix de modèle
PTCStandard + SDK Code Mode — le modèle écrit du TypeScript pour chaîner les outilsChaînes d’outils longuesUne passerelle mal formée échoue pareil
MinimalBash persistant + str_replace_editorPlus petit banc d’outils pour un modèlePas de jeu complet recherche/workflow
CreateStandard + inspection runtime, plugins en mémoire, nouveaux presetsVous écrivez une compositionLes API preview bougent

Les droits sont un trio à part dans le plugin permission : read-only, workspace-write (défaut, DSH_PERMISSION_MODE), danger-full-access. Standard ne signifie pas « écrire tout le disque ».

dsh face à Claude Code / Hermes

Voyez dsh comme un châssis démontable et le choix se raccourcit.

  • Modèles, outils et boucle remplaçables, et vous écrivez des plugins : DeepSeek Harness. Épinglez la version en preview.
  • Agent de code produit avec facture d’abonnement : partez de Claude Code 2026 tarifs. dsh ne clone pas ce parcours.
  • Mémoire procédurale Skills / Gateway : Hermes est plus proche. dsh a dsh-skill, mais le skill filesystem est coupé dans le dump par défaut.
  • Vous tournez déjà MCP : le protocole reste une couche à part — guide développeur MCP. La doc traite dsh comme client MCP, pas comme remplaçant.

Des articles tiers citent des bundles optionnels qui délèguent à Claude Code ou Codex. Notre dump web par défaut n’liste pas subagent-claude-code. Ce n’est donc pas out of the box. Pour empiler : stack agents 2026.

FAQ

DeepSeek Harness et un modèle DeepSeek, c’est la même chose ?

Non. Le harness est un runtime ; le modèle est de l’inférence. La route par défaut est DeepSeek officiel, mais vous pouvez ajouter OpenAI, Anthropic ou une passerelle. Vous payez le fournisseur choisi.

Installation et port Web ?

Officiel : npx @deepseek-ai/dsh web. Nous avons vu 0.1.5-rc.1 et 127.0.0.1:3080. En SSH : --no-open. Depuis les sources : pnpm install && pnpm run build && pnpm dsh web.

Comment modèle et outils se combinent-ils ?

Un profil empile des bundles ; les bundles insèrent des plugins par patch. Modèles : ctx.llm ; outils : ctx.tools ; boucle : ctx.agentLoop. Votre arbre : dsh --profile web --dump-config.

Quel mode parmi les quatre ?

Quotidien : standard (défaut). Banc du modèle : minimal. Longues chaînes : PTC. Écrire des presets : create. Les noms peuvent bouger en preview.

La preview en production ?

Officiellement, attendez des ruptures. DSH_HOME isolé, version npm épinglée. Pas de npx non épinglé sur la machine des certificats de prod.

En bref

DeepSeek Harness répond à comment dévisser un châssis d’agent, pas à quel rang DeepSeek occupe sur un tableau de modèles. Faits durs de 0.1.5-rc.1 : 152 plugins dans l’arbre web par défaut, Flash par défaut, port 3080, preset=standard. La composition est profil → bundle → adaptateur / registre d’outils / boucle — pas un binaire figé.

Faire tourner dsh sur un Mac qui ne ferme pas son capot

dsh web veut un Node durable, un disque de workspace et des clés API. Fermez un portable : sessions, sous-agents et replay Trajectory meurent ensemble. Un Mac mini cloud est un hôte plus propre : dsh web --no-open en SSH, DSH_HOME et workspace sur la même boîte, certificats de prod ailleurs. Restez en workspace-write, validez en location jour, puis verrouillez le mois.

Comparer · Offres · Check-list d’ouverture · Commencer