SFEIR

DeepSeek Harness : 120 000 stars, licence MIT, zéro pull request acceptée

DeepSeek Harness : 120 000 stars, licence MIT, zéro pull request acceptée

Le 13 août 2026, DeepSeek a rendu public le dépôt deepseek-ai/deepseek-harness sous licence MIT, le jour où son modèle V4-Pro passait en disponibilité générale14. Trois jours plus tard, l'API GitHub renvoie 119 937 stars et 11 815 forks1. Le projet s'appelle dsh, il est écrit en TypeScript, et il ne contient aucun modèle.

DeepSeek résume son intention en une équation : Agent = Model + Harness2. Le modèle décide ; le harnais lui donne des mains, c'est-à-dire la lecture et l'écriture de fichiers, l'exécution de commandes, l'appel d'outils, la délégation à des sous-agents et la mémoire de session. Claude Code tient ce rôle chez Anthropic, Codex chez OpenAI. DeepSeek publie le sien avec le code source.

La couche qu'on ne choisissait pas

Le harnais assemble ce que le modèle voit à chaque requête, donc ce qu'il réussit et ce qu'il coûte. Nous avions mesuré l'écart en avril : 58 % contre 81,8 % de réussite avec le même modèle, selon le châssis qui l'entoure. La discipline porte un nom, le harness engineering, et elle s'exerçait jusqu'ici sur des boîtes fermées : vous configuriez des fichiers de règles et des hooks, vous ne remplaciez ni la boucle d'agent ni la façon dont le contexte est assemblé.

Le dépôt de DeepSeek ouvre ces deux pièces, et quelques autres.

Tout est un plugin, y compris la boucle d'agent

Sous dsh tourne Cordis, un noyau de composabilité dont le design est formalisé dans un papier, A Programming Paradigm for Spatiotemporal Composability3. Les plugins y contribuent des services, des événements typés et des effets réversibles à un contexte partagé. La documentation d'architecture le formule sans détour : « There is no privileged core to patch »1. L'adaptateur de modèle, le registre d'outils, le journal de session et la boucle d'agent elle-même sont des plugins, remplaçables par configuration.

Un dsh qui tourne est un arbre de plugins composé au démarrage à partir de couches ordonnées : les bundles déclarés par le profil, puis le patch du profil, puis celui de la machine, puis les surcharges de la ligne de commande. La commande dsh --profile web --dump-config imprime l'arbre que votre machine démarre, et chaque ligne imprimée se remplace par un patch1.

Les capability seams donnent à ce découplage sa portée pratique. Une capacité se déclare en trois rôles : la définition de service, le fournisseur qui l'implémente, le consommateur qui l'utilise. Comme les fournisseurs de système de fichiers et de sous-processus partagent le même monde d'exécution, les pointer vers un bac à sable distant déplace Bash, le PTY et le LSP avec eux, sans forker un seul fournisseur1. Un même remplacement change le produit entier.

Le journal de session comme source de vérité

Chaque exécution s'écrit dans un journal d'événements en ajout seul. La règle tient en trois mots dans la documentation : « Model-visible means logged », avec un invariant vérifié à l'exécution1. Tout ce qui atteint une requête modèle doit être reconstructible depuis le journal. L'historique envoyé au modèle n'est pas stocké à part, il se projette depuis ce flux par deriveMessages() ; reprendre, forker, chercher, rejouer et facturer opèrent tous sur la même trace.

La compaction du contexte suit la même règle. Elle est un plugin optionnel, hors de la colonne vertébrale de la boucle, et son résumé s'accompagne d'événements durables qui enregistrent le verrou, la plage d'événements masqués, le nombre de tokens économisés, le fournisseur et le modèle appelés1. Quand un agent se met à répondre de travers après trois heures de session, la question « qu'est-ce qui a été effacé de son contexte, et par quel appel » a une réponse dans le fichier.

C'est le contraire du mouvement dominant. Les éditeurs propriétaires masquent de plus en plus les chaînes de raisonnement de leurs agents, pour de bonnes raisons commerciales. Une DSI qui doit expliquer une action d'agent à un auditeur ne dispose alors que des captures d'écran de ses utilisateurs.

Le dépôt documente son effet sur le cache, paquet par paquet

Aucune dépêche n'a relevé la convention de documentation du dépôt. Les paquets de dsh décrivent leur contribution au contexte en deux sections : « What the model sees » et « KV Cache effect ». La recherche de code GitHub renvoie 237 fichiers pour la première et 233 pour la seconde1. Chaque composant déclare donc ce qu'il injecte dans le contexte, et à quelle condition il casse la stabilité du préfixe.

Extrait du paquet dsh-tool-bash : « Prefix-stable while visibility, background support, and executor sandbox capabilities are unchanged. A restriction, config change, or executor change may invalidate reuse from the first changed tool definition. »1 Traduit en facture : activer un outil au milieu d'une session invalide la réutilisation du cache à partir de la première définition modifiée, et vous repayez le préfixe en tokens pleins.

Cette discipline transforme le context engineering en contrat de code. La plupart des équipes découvrent l'effet cache après coup, en lisant leur facture ; ici il est documenté paquet par paquet, avant d'écrire la première ligne de configuration. Pour qui raisonne en coût par résultat plutôt qu'en prix par token, c'est la donnée qui manquait.

Un ordre de grandeur circule sur ce que rapporte un préfixe stable : le développeur Evan Kim déclare avoir observé environ 99,93 % de tokens d'entrée servis par le cache après avoir branché DeepSeek sur l'agent Pi6. Mesure personnelle, sur un autre harnais que dsh, sans protocole publié : à lire comme un ordre de grandeur du gisement, pas comme un score de dsh.

Quatre modes sur le même châssis

DeepSeek livre quatre presets, qui montent des ensembles de plugins différents sur le même hôte2 :

ModeCe qu'il chargeUsage visé
StandardAgent de codage complet : édition de fichiers, shell, recherche fichiers et web, skills, planification, goals, sous-agents, workflowsLe quotidien, comparable à Claude Code ou Codex
CodeLes capacités Standard, outils exposés via le Code Mode SDK : le modèle enchaîne plusieurs opérations dans un seul programme TypeScriptAutomatisation, économie de tokens
MinimalDeux outils : bash persistant et str_replace_editorBenchmarker un modèle dans un environnement nu
CreatorStandard, plus inspection du runtime, expérimentation de plugins et assistance à l'écriture de presetsFabriquer ses propres modes

Le mode Minimal tranche un débat que la communauté agentique traîne depuis un an : un modèle agentique doit-il exceller avec deux outils, ou lui faut-il un échafaudage riche ? DeepSeek livre les deux configurations dans la même boîte et laisse mesurer.

Le glossaire définit par ailleurs la boucle Ralph comme une politique d'outil composée de primitives de workflow et de sous-agents, avec ses rounds à session fraîche et son handoff borné entre rounds1. Le motif que Claude Code expose via /loop et /goal devient ici une primitive documentée du noyau.

Interopérable avec le camp d'en face

Pour un projet chinois présenté partout comme le rival des outils américains, le graphe de modules surprend. On y trouve subagent-acp, subagent-claude-code, subagent-codex, hooks-claude-code, hooks-codex et un mcp-client1. Vous pouvez déléguer une tâche à l'agent d'Anthropic depuis dsh, brancher vos serveurs MCP existants, et parler l'Agent Client Protocol avec un éditeur tiers.

Côté modèles, le catalogue installé couvre DeepSeek, Anthropic, OpenAI, Bedrock, Vertex, Azure et Codex, chacun avec son mode d'authentification natif, plus n'importe quelle passerelle d'entreprise ou serveur auto-hébergé déclaré en fournisseur personnalisé1. Les clés sont en écriture seule dans l'interface, stockées dans $DSH_HOME/.credentials.yaml, et les réglages ne conservent qu'une référence.

Un harnais où le modèle, les outils et la boucle sont des plugins interchangeables donne un contenu technique à la réversibilité. La dépendance qui compte n'est plus le fournisseur d'inférence, elle est le contexte accumulé et la chaîne d'outillage construite autour. Changer de modèle coûte une ligne de configuration ; changer de harnais coûte votre outillage.

Le bac à sable échoue fermé

Le paquet dsh-sandbox-local sélectionne un runner par plateforme : bwrap puis Landlock sous Linux, Seatbelt sous macOS, un jeton restreint par ACL sous Windows. La phrase qui compte pour un RSSI tient en une ligne : les plateformes non supportées et les runners inutilisables échouent en SANDBOX_UNAVAILABLE, et « execution never silently falls through unconfined »1. Chaque encapsulation rapporte sa complétude d'application et ses signatures de refus, ce qui permet de distinguer un bac à sable cassé d'une commande qui a échoué d'elle-même.

Les incidents d'agents évadés de leur isolation, pendant l'été 2026, tiennent presque tous au motif inverse : une politique qui se dégrade en silence quand son mécanisme d'application manque. Sur Windows, chaque paire session/workspace reçoit un répertoire temporaire privé avec son propre SID révocable, de sorte qu'un résidu de crash ne peut ni bloquer ni autoriser une session reprise. C'est le niveau de granularité que l'autorisation par action réclame, appliqué au processus plutôt qu'à l'application.

MIT, mais pas une pull request

Le fichier CONTRIBUTING.md pose la limite : « We are sorry that we cannot accept external pull requests at the moment. » Le feedback passe par GitHub Discussions et Discord, l'extension par les plugins, la découverte par le topic dsh-plugin. DeepSeek assume la conséquence : « You may consider this repository an idea, an official showcase, and a source of inspiration, but not a mandate from us. »1

La licence MIT donne le droit de forker, de modifier et de revendre ; la gouvernance garde la main sur la ligne principale. C'est l'open source comme distribution, pas comme co-construction, et c'est exactement le régime que DeepSeek applique déjà à ses poids depuis 2024. La course open-weights chinoise vient d'ajouter l'outillage à son périmètre.

L'équipe est dirigée par Cui Tianyi, arrivé chez DeepSeek en mars 2026 après près de neuf ans chez Jane Street à Hong Kong, sur les actions et les produits de taux5. Un profil de systèmes plutôt que de recherche NLP, cohérent avec un produit dont la valeur tient à l'ingénierie d'exécution. Armin Ronacher, co-créateur de l'agent Pi, a écrit publiquement que dsh lui avait donné envie de revisiter ses propres choix de conception7.

Ce que ça change pour une DSI

Le README annonce en majuscules ses ruptures de compatibilité, la version est une developer preview, et un projet de trois jours n'a pas d'historique de sécurité. L'évaluer coûte une commande, npx @deepseek-ai/dsh web, dans un environnement isolé et sur un dépôt qui ne vous engage pas.

D'autres questions ne dépendent pas de dsh et se traitent dès maintenant.

Savez-vous ce que votre harnais actuel envoie au modèle ? Si la réponse est non, la comparaison de coûts entre deux fournisseurs de modèles ne veut rien dire : vous comparez deux assemblages de contexte, pas deux modèles. La convention de documentation de dsh donne un gabarit réutilisable, y compris sur un harnais propriétaire : pour chaque outil et chaque section de prompt, ce que le modèle voit et ce qui casse le préfixe.

Vos traces d'agents sont-elles reconstructibles ? Un journal en ajout seul dont se dérive l'historique modèle est une exigence d'audit avant d'être une élégance d'architecture. Peu de harnais propriétaires l'offrent aujourd'hui, et aucun ne le garantit par invariant.

Votre chaîne d'outillage survivrait-elle à un changement de harnais ? Le point de dépendance s'est déplacé. Vos AGENTS.md, vos skills, vos serveurs MCP et vos politiques d'approbation valent plus cher que le harnais qui les charge, et se réécrivent moins vite.

Sur la souveraineté, dsh tourne sur votre poste ou votre serveur, avec le fournisseur d'inférence de votre choix, y compris un endpoint auto-hébergé. Le harnais et le modèle sont deux décisions distinctes, et une seule des deux fait sortir vos données. Reste la question ordinaire d'une chaîne d'approvisionnement logicielle publiée par un éditeur chinois : un projet de trois jours, des centaines de paquets npm, aucun processus de revue externe. Cela se traite comme n'importe quelle dépendance à ce stade de maturité, avec revue et verrouillage de versions.

Questions fréquentes

Qu'est-ce qu'un agent harness ?
La couche logicielle qui entoure un modèle de langage pour en faire un agent : assemblage du contexte, boucle d'exécution, appels d'outils, permissions, isolation, reprise sur erreur. Claude Code, Codex, Pi et dsh sont des harnais. Le modèle décide, le harnais exécute et enregistre.

DeepSeek Harness est-il gratuit ?
Le code est publié sous licence MIT : usage, modification et redistribution libres, y compris commerciaux. L'inférence reste facturée par le fournisseur de modèle que vous configurez, DeepSeek ou un autre.

DeepSeek Harness remplace-t-il Claude Code ?
Pas aujourd'hui. La version est une developer preview qui annonce ses ruptures de compatibilité, et le dépôt a trois jours. Il couvre les capacités agentiques usuelles et sait même piloter Claude Code en sous-agent, ce qui en fait un terrain d'expérimentation plutôt qu'un remplaçant en production.

Faut-il utiliser un modèle DeepSeek avec dsh ?
Non. Le catalogue installé couvre Anthropic, OpenAI, Bedrock, Vertex, Azure et Codex, et tout endpoint compatible OpenAI se déclare en fournisseur personnalisé, passerelle interne ou serveur auto-hébergé compris. L'adaptateur de modèle est un plugin comme les autres.

Le point de vue SFEIR

Le harnais devient un objet d'architecture au même titre que le modèle, et il vient de passer en licence MIT. Ce qui mérite d'être copié dans dsh tient moins à Cordis qu'à deux conventions : un journal dont se dérive tout ce que le modèle voit, et une documentation qui déclare, composant par composant, l'effet sur le cache. Ces deux règles s'appliquent à un harnais propriétaire, dès demain, sans changer d'outil.

La leçon de gouvernance est moins confortable. Un dépôt à 120 000 stars qui n'accepte aucune contribution externe montre que « open source » qualifie désormais une licence et un mode de distribution, pas un mode de décision. Pour une DSI, la question utile n'est pas de savoir si le code est ouvert, elle est de savoir ce qui reste exécutable le jour où l'éditeur change d'avis. Un fork MIT de plus de deux cents paquets TypeScript est une réponse, à condition d'avoir compté ce qu'il coûte à maintenir.


Sources

  1. Dépôt deepseek-ai/deepseek-harness, consulté le 16 août 2026 — README, CONTRIBUTING.md, docs/architecture.md (Cordis, profils et bundles, capability seams, journal de session, invariant « model-visible means logged »), docs/glossary.md (boucle Ralph, turn/step/round), docs/module-graph.md (paquets subagent-acp, subagent-claude-code, subagent-codex, hooks-claude-code, hooks-codex, mcp-client, famille sandbox), docs/subsystems/compaction.md, packages/sandbox/sandbox-local/README.md (bwrap, Landlock, Seatbelt, ACL Windows, SANDBOX_UNAVAILABLE), packages/shell/tool-bash/README.md (sections « What the model sees » et « KV Cache effect »), docs/user/guide/providers.md (catalogue de fournisseurs, clés en écriture seule), apps/cli/README.md. Compteurs de stars, de forks et de fichiers relevés via l'API GitHub et la recherche de code GitHub le 16 août 2026 ; ils bougent en continu. github.com/deepseek-ai/deepseek-harness
  2. Site officiel DeepSeek Harness — cadrage « Agent = Model + Harness » et description des quatre modes (Standard, Code, Minimal, Creator). Documentation éditeur. deepseek.com/harness
  3. Yifan Shi, Wei Zhang, Tianyi Cui, A Programming Paradigm for Spatiotemporal Composability — formalisation du design de Cordis, le noyau de plugins sous dsh. github.com/cordiverse/paper
  4. Couverture presse du lancement, 13 et 14 août 2026 — The Register (Thomas Claburn, « DeepSeek's innovative harness treats everything as a plug-in »), The New Stack, VentureBeat, Pandaily (hands-on des quatre modes), 36氪, GeekPark (« l'Android de l'ère Agent »). Sources secondaires ; les décomptes de stars qu'elles citent diffèrent selon l'heure de relevé. thenewstack.io
  5. South China Morning Post, « DeepSeek adds former Jane Street engineer to harness team amid agentic AI push » — recrutement de Cui Tianyi en mars 2026, après près de neuf ans chez Jane Street à Hong Kong. scmp.com
  6. 36氪 EN, août 2026 — taux de cache d'environ 99,93 % rapporté par le développeur Evan Kim après intégration de DeepSeek dans l'agent Pi, mesure personnelle sans protocole publié, sur un harnais distinct de dsh. À traiter comme un ordre de grandeur, pas comme un score de dsh. eu.36kr.com
  7. Armin Ronacher (@mitsuhiko), co-créateur de l'agent Pi, publication sur X du 14 août 2026 — dsh l'a conduit à revisiter ses propres choix de conception. Déclaration publique, non un audit technique. x.com/mitsuhiko
SFEIR AI Auteur

Articles similaires