écrits
Architecture·Mai 2026·Lecture · 7 min

Le harness, expliqué simplement

Le terme est partout depuis février 2026, sans qu'il existe vraiment de définition stable. La formule qui s'est imposée tient en une équation : Agent = Model + Harness. Tout est dans le « plus ».

Tout sauf le modèle

Le terme harness engineering a été popularisé début février 2026 par Mitchell Hashimoto, créateur de Terraform et de Ghostty. La discipline qu'il décrit : chaque fois qu'un agent commet une erreur, on ne corrige pas au coup par coup, on outille l'environnement (une règle dans AGENTS.md, un script de vérification) pour que cette erreur ne puisse plus se reproduire. Six jours plus tard, OpenAI publiait une étude de cas : une équipe de trois ingénieurs avait livré en cinq mois un produit d'environ 1 million de lignes via des agents Codex, en mergeant quelque 1 500 PRs, sans écrire une seule ligne à la main. Conclusion partagée par les deux publications : quand l'IA écrit tout le code, le savoir-faire ne consiste plus à écrire du code, mais à concevoir le système autour de l'agent.

LangChain a ensuite donné au concept sa forme la plus compacte (mars 2026), puis Birgitta Böckeler (Thoughtworks) en a fait la référence en avril, dans un article publié sur le site de Martin Fowler. La définition qui fait consensus :

Le harness, c'est tout ce qui se trouve dans un agent IA, à l'exception du modèle lui-même.

Cela inclut les outils, la mémoire, la boucle d'orchestration, les permissions, les hooks de sécurité, les mécanismes de feedback, l'observabilité. Tout. La formule compacte, popularisée par LangChain, est devenue le slogan du domaine :

La formule canoniqueTrivedy · LangChain, mars 2026
Agent = Model + Harness

Cette équation cohabite avec une trinité conceptuelle qui s'est imposée en parallèle, et qu'il faut bien distinguer :

01
Prompt engineering
Façonne ce que l'agent essaie de faire sur une interaction donnée.
02
Context engineering
Façonne ce que l'agent sait : l'environnement informationnel injecté avant et pendant la boucle de raisonnement.
03
Harness engineering
Façonne ce que l'agent peut et ne peut pas faire. Englobe les deux précédentes, plus tout le reste.

Le prompt engineering n'a pas disparu. Il a été reclassifié : un composant parmi d'autres à l'intérieur du harness.

Le modèle se commoditise, le harness devient le moat

L'argument économique tient en une formule d'Addy Osmani devenue virale (avril 2026) : « A decent model with a great harness beats a great model with a bad harness ». Les data points qui l'étayent commencent à s'accumuler.

Le leaderboard Terminal-Bench 2.0 rend l'effet visible : le même modèle y apparaît plusieurs fois, à des scores séparés de dix points et plus selon le harness qui le soumet. LangChain note même que le harness officiel d'Anthropic, Claude Code, se classe dernier parmi les soumissions Opus 4.6. La même équipe a chiffré l'effet en reconstruisant le harness de ses DeepAgents à modèle constant (GPT-5.2-Codex) : de 52.8% à 66.5%, un bond de hors du top 30 à la 5e place à la publication. Vercel a fait la démonstration inverse, par soustraction : en supprimant 80% des outils de son agent text-to-SQL interne (18 outils spécialisés remplacés par un simple accès bash), le taux de succès est passé de 80% à 100%, l'exécution est devenue 3.5× plus rapide et la consommation de tokens a baissé de 37%. La richesse fonctionnelle n'est pas une variable monotone : le cadrage compte autant que les capacités.

La conséquence stratégique est devenue un cliché du domaine, mais elle reste exacte : les modèles frontière sont largement interchangeables (même si harness et modèle se co-adaptent : un harness réglé pour l'un perd des points avec l'autre), le harness encode le savoir-faire métier, les contraintes de sécurité et la logique de vérification. Il ne se déplace pas avec un changement de fournisseur : c'est le moat compétitif des organisations qui déploient des agents en production.

De quoi un harness est-il fait

Aucune liste n'est canonique, mais une convergence s'est faite autour de six familles de composants. Tout harness en implémente plusieurs, rarement tous.

01
Tools interfaces vers le monde
Ce que l'agent peut invoquer : CLIs, MCP servers, APIs, lecture/écriture de fichiers, exécution de code. La sélection compte autant que la disponibilité.
02
Context management mémoire et compaction
Comment l'historique, la mémoire long terme et les retrievals sont injectés dans la fenêtre de contexte. Inclut la stratégie de compaction quand la limite approche.
03
Orchestration loop
La boucle qui enchaîne les tours : ReAct, Plan-Execute-Verify, Ralph Loops. C'est le cœur cybernétique du harness.
04
Guides feedforward
Ce qui prévient les erreurs avant qu'elles arrivent : AGENTS.md, skills, conventions, types, ref docs. Le harness apprend ici les règles du domaine.
05
Sensors feedback
Ce qui détecte et corrige après coup : linters, tests, type checkers, LLM-as-judge, code review agents. Permettent la self-correction sans intervention humaine.
06
Permissions & observability
Les couches de sécurité (sandboxing, hooks d'approbation, allowlists) et de traçabilité (logs, traces, audit trail). Indispensables en production.

agent = model + harness · ce que les sensors attrapent devient un guide

Böckeler propose une distinction transversale utile : computational vs inferential. Les contrôles computationnels sont déterministes et rapides (un linter, un type checker, un test) : fiables, peu coûteux, exécutables à chaque commit. Les contrôles inferentiels sont sémantiques et non déterministes (un LLM qui juge la qualité d'un code) : plus riches en jugement, mais plus lents et plus coûteux. Un harness mature combine les deux selon le coût acceptable à chaque étape du cycle de vie.

Elle nomme aussi la propriété symétrique, côté code : la harnessability. Tous les codebases ne se laissent pas harnacher aussi bien : typage fort, frontières de modules nettes et frameworks établis donnent aux guides et aux sensors davantage de prise.

Ce que chaque harness illustre

Le terme étant générique, il vaut mieux le rendre concret par opposition entre plusieurs harnesses connus, dont les philosophies divergent.

A
Claude Code l'archétype opinionné
Harness intégré, batteries-included. Hooks programmables, fichiers CLAUDE.md/AGENTS.md chargés au démarrage, skills, sub-agents, plan mode, permissions, observability via le SDK. Tout est fourni, le développeur compose. C'est aussi l'exemple de référence de la littérature : quand un post sur le harness engineering cite un harness concret, c'est le plus souvent celui-là.
B
Pi le harness minimal assumé
Tagline officielle : « There are many agent harnesses but this one is yours ». Earendil Inc. (Mario Zechner) positionne Pi comme un coding harness terminal minimal et aggressively extensible : pas de MCP intégré, pas de sub-agents, pas de plan mode, pas de permission popups, tout est extension TypeScript. Mais ses primitives (SDK Node.js, RPC mode en JSONL sur stdin/stdout, JSON event stream, composants TUI) en font aussi une base utilisable pour construire des agents qui ne sont pas du coding. OpenClaw en est la preuve : l'agent personnel multi-canal embarque Pi via SDK. La philosophie est inverse de Claude Code : primitives, not features.
C
OpenClaw le harness gateway-driven
Harness pour agent personnel multi-canal. Le control plane (un daemon Node.js) concentre l'auth, le routage des messageries, le sandboxing, le scheduling et l'exécution. L'agent embarqué (basé sur Pi via SDK) n'est qu'un composant. C'est l'exemple type d'un harness où la complexité est externalisée dans une infrastructure dédiée, plutôt que confiée à l'agent lui-même.
D
Hermes Agent le harness auto-évolutif
Harness construit autour d'une boucle d'agent qui se modifie elle-même. Mémoire gelée par session pour préserver le cache prompt, nudge de self-évaluation toutes les 15 itérations d'outils qui pousse l'agent à cristalliser ses procédures en skills, projet GEPA companion pour l'amélioration offline. Le harness ne se contente pas de cadrer l'agent : il code une stratégie d'apprentissage procédural dans la durée.

Ces quatre exemples couvrent les deux axes structurants du débat actuel. Axe 1 : minimalisme (Pi) vs richesse intégrée (Claude Code). Axe 2 : évolution ad-hoc et opérée par l'humain (Claude Code, OpenClaw : l'agent peut modifier son workspace, créer ou patcher ses skills, mais sans boucle formalisée) vs évolution structurée par le harness lui-même (Hermes : self-evaluation explicite tous les 15 tool calls, mécanisme intégré). Tout déploiement réel se positionne quelque part sur ces deux axes, en fonction du compromis acceptable entre contrôle et autonomie.

L'arbitrage se déplace

Le débat « quel modèle choisir » a occupé 2024 et 2025. Il continue, mais il s'est dévalué : à modèle constant, le harness fait la différence entre un agent qui rend service et un agent qui produit du dommage silencieux. Plus le modèle est puissant, plus un mauvais harness lui permet de faire des bêtises avec efficacité.

Pour qui déploie aujourd'hui : avant de comparer les derniers modèles frontière entre eux, il est plus rentable de questionner la qualité du harness dans lequel ils vont tourner. Quelles erreurs reviennent et n'ont pas été cadrées par un guide ? Quels sensors manquent pour les détecter avant production ? Quels outils retirer parce qu'ils élargissent l'espace de décision sans bénéfice mesurable ? C'est cette discipline, devenue assez mature pour avoir un nom, que la littérature appelle désormais harness engineering.

En une phrase

Le harness, c'est tout ce qui n'est pas le modèle dans un agent IA. C'est de moins en moins une couche d'intégration et de plus en plus le terrain où se joue la qualité.