Build This Now
Build This Now
Qu'est-ce que le code Claude ?Installer Claude CodeL'installateur natif de Claude CodeTon premier projet Claude Code
Principes de base de l'agentAgents en arrière-plan dans Claude CodeRoutage des sous-agentsConception de sous-agents dans Claude CodeDistribution de tâches dans Claude CodeÉquipes d'agents Builder-ValidatorLes équipes d'agents Claude CodeContrôles des équipes d'agentsTemplates de prompts pour les équipes d'agentsMeilleures pratiques des équipes d'agentsWorkflow des équipes d'agentsAgents personnalisésPatterns d'agentsDes agents qui ressemblent à des humainsHermes Agent : l'IA qui s'améliore elle-mêmeL'ingénierie du harness agent
speedy_devvkoen_salo
Blog/Handbook/Agents/Agent Harness Engineering

L'ingénierie du harness agent

Le harness, c'est toutes les couches autour de ton agent IA sauf le modèle lui-même. Découvre les cinq leviers de contrôle, le paradoxe des contraintes, et pourquoi le design du harness détermine les performances de l'agent bien plus que le modèle.

Arrêtez de configurer. Commencez à construire.

Templates SaaS avec orchestration IA.

Published Apr 21, 2026Handbook hubAgents index

Problème : Tu as mis à jour le modèle. Les performances ont à peine bougé. Tu vois les mêmes modes d'échec, session après session, peu importe la version du modèle.

Victoire rapide : Arrête de tuner le modèle. Tune le harness. Une équipe a réduit de 15 outils à un seul appel bash et a vu la précision passer de 80% à 100% pendant que la consommation de tokens chutait de 37%.

Compréhension : Agent = Modèle + Harness. Le modèle gère le raisonnement. Le harness gère tout le reste : quels outils l'agent peut atteindre, quel contexte il reçoit, comment les erreurs remontent, comment les résultats sont vérifiés. En pratique, le harness est la contrainte principale sur les performances réelles, pas le modèle.

Ce qu'est vraiment le harness

Le harness est la couche logicielle qui entoure un modèle IA et gère tout sauf le raisonnement du modèle. Il appelle les outils. Il gère la mémoire. Il route les tâches. Il exécute les vérifications. Il décide quel contexte arrive dans la fenêtre de prompt et sous quelle forme.

La définition de Martin Fowler est précise : le harness, c'est tout dans un agent sauf le modèle lui-même. Deux directions de contrôle le traversent :

  • Feedforward (guides) : oriente l'agent avant qu'il agisse. Prompts système, injection de contexte, restrictions d'outils. Ça augmente la probabilité que le premier output soit correct.
  • Feedback (capteurs) : observe après que l'agent a agi et lui permet de se corriger. Linters, vérificateurs de types, exécuteurs de tests, build hooks. Ça attrape les erreurs avant qu'elles arrivent aux yeux humains.

Aucune direction seule ne suffit. Le feedback sans feedforward produit un agent qui corrige les mêmes erreurs en boucle. Le feedforward sans feedback produit un agent qui encode des règles mais n'apprend jamais quand elles ont échoué.

Pourquoi le design du harness surpasse les mises à jour de modèle

Le classement SWE-bench dit les choses clairement. Sur les benchmarks de code, le même modèle peut scorer 42% avec un scaffold et 78% avec un meilleur. Le modèle n'a pas changé. Le harness si.

Le cas Vercel est l'exemple le plus clair en circulation. Leur équipe a réduit un agent de 15+ outils à un seul outil bash. Sur leur benchmark : la précision est passée de 80% à 100%, les tokens ont chuté de 37%, et la vitesse s'est améliorée de 3,5x. Ils n'ont pas touché le modèle. Ils ont enlevé la complexité du harness.

Le pattern se répète dans toutes les équipes. L'équipe d'IA juridique de Harvey a amélioré le taux de complétion des tâches de 40,8% à 87,7% en améliorant le système autour du modèle. L'équipe d'outillage interne d'OpenAI a conclu : "Nos défis les plus difficiles portent maintenant sur la conception des environnements, des boucles de feedback et des systèmes de contrôle."

Le modèle, c'est le moteur. Le harness, c'est la voiture. Améliorer le moteur aide. Construire une meilleure voiture est généralement le levier le plus puissant.

Les cinq leviers

Tout harness est construit à partir du même ensemble de points de contrôle. Tirer les bons dans le bon ordre, c'est là que réside le savoir-faire.

1. Design des outils

Les outils disponibles pour un agent définissent sa surface de capacités. Trop d'outils et l'agent gaspille du contexte sur la désambiguïsation. Trop peu et il se rabat sur des contournements. Le résultat Vercel est la référence canonique : moins d'outils, mais plus précis, surpassent un grand toolkit généraliste.

Conçois les outils autour des résultats, pas des capacités. Un outil appelé run_tests surpasse un appelé execute_command parce que l'agent n'a pas à décider quoi exécuter.

2. Injection de contexte

Ce que l'agent sait avant d'agir détermine ce qu'il produit. L'injection de contexte, c'est mettre la bonne information dans la fenêtre de prompt au bon moment : docs d'architecture, standards de code, erreurs récentes, l'arborescence de fichiers actuelle.

Le mode d'échec, c'est la sur-injection : inonder la fenêtre avec tout ce qui est disponible. Un contexte pertinent au bon moment surpasse un grand dump indifférencié.

3. Architecture mémoire

Un agent à session unique oublie tout quand la fenêtre se ferme. Un agent correctement harnaché conserve : les décisions prises, les patterns observés, les erreurs déjà vues. La mémoire peut être à court terme (état de la conversation), à moyen terme (logs de session), ou à long terme (fichiers persistants que l'agent lit au démarrage).

Le fichier CLAUDE.md de Claude Code est un levier de mémoire à long terme. L'agent le lit au début de la session. Ce que tu y mets façonne chaque session qui suit.

4. Boucles de vérification

Le harness exécute des vérifications que l'agent ne peut pas sauter. Vérificateurs de types, linters, commandes de build, suites de tests. Quand ceux-ci s'exécutent comme des capteurs automatisés après chaque action de l'agent, les erreurs remontent dans la même session qui les a créées. Le coût de correction chute.

Le principe : garde les vérifications qualité aussi à gauche que possible. Une erreur de type attrapée avant le commit coûte des secondes. La même erreur attrapée en review coûte une heure.

5. Design des contraintes

Ce que l'agent ne peut pas faire compte autant que ce qu'il peut. Restreindre l'accès en écriture aux configs de production, bloquer certains appels d'outils, limiter quels fichiers un agent peut toucher sont tous des leviers de contrainte. L'objectif n'est pas d'entraver l'agent mais d'éliminer la classe d'erreurs que les contraintes rendent impossibles.

Le paradoxe des contraintes

Ajouter plus de règles à un agent ne produit pas forcément un meilleur comportement. C'est le paradoxe des contraintes : un harness surchargé d'instructions peut dégrader les performances en dessous de ce que l'agent atteint avec un guidage minimal.

Le mécanisme est simple. Chaque contrainte prend du contexte. Des règles contradictoires créent du bruit que l'agent doit naviguer. Un long jeu d'instructions qui couvre chaque cas limite performe souvent moins bien qu'un court et clair qui couvre les cinq plus importants.

La résolution pratique, c'est la priorisation. Identifie les modes d'échec qui se répètent vraiment. Écris des contraintes pour ceux-là. Laisse tout le reste au jugement du modèle. Le harness doit éliminer les échecs qui arrivent souvent, pas tenter d'énumérer chaque mauvais résultat possible.

Contrôles computationnels vs. inférentiels

Les contrôles du harness se divisent en deux types.

Les contrôles computationnels sont déterministes et rapides. Vérificateurs de types, linters, exécuteurs de tests, systèmes de build. Ils s'exécutent en millisecondes à secondes. Les résultats sont fiables et assez bon marché pour tourner sur chaque action de l'agent.

Les contrôles inférentiels utilisent un modèle comme juge. Agents de code review, vérifications qualité sémantiques, patterns "LLM-as-evaluator". Ils sont plus lents, plus coûteux, et non-déterministes. Ils attrapent ce que les contrôles computationnels ratent : la duplication sémantique, les patterns mal appliqués, les instructions mal comprises.

Le découpage pratique : exécute les contrôles computationnels sur chaque changement, automatiquement. Exécute les contrôles inférentiels de façon sélective, sur les changements à plus fort enjeu ou post-intégration. Les deux couches sont complémentaires, pas concurrentes.

Trois catégories de harness

Un harness régule différentes dimensions de l'output agent. Les distinguer aide parce que les bons contrôles diffèrent selon la catégorie.

Harness de maintenabilité : guides et capteurs autour de la qualité du code, du style, et de la structure. C'est la catégorie la plus facile à construire. L'outillage existant (linters, vérificateurs de types, outils de couverture) se branche directement. La plupart des équipes commencent ici.

Harness de fitness architecturale : guides et capteurs qui appliquent des contraintes structurelles. Frontières de modules, règles de dépendances, budgets de performance. Les fitness functions s'exécutent comme des vérifications automatisées. La dérive architecturale est attrapée plutôt que découverte des mois plus tard en review.

Harness de comportement : guides et capteurs autour de la correction fonctionnelle. C'est la catégorie la plus difficile. Les suites de tests générées par IA ne sont pas encore assez fiables pour se substituer entièrement au comportement spécifié. La plupart des équipes combinent actuellement des documents de spécification (feedforward) avec des tests générés par IA plus une vérification manuelle sélective (feedback). Le problème ouvert est de construire suffisamment de confiance dans les tests générés par l'agent pour réduire la supervision manuelle.

Points de départ pour Claude Code

Claude Code expose plusieurs leviers de harness directement.

CLAUDE.md est ton principal contrôle feedforward. Décisions d'architecture, conventions de nommage, patterns à suivre ou éviter, règles explicites sur ce que l'agent ne doit pas faire. Ce fichier se charge à chaque démarrage de session. Ce que tu y mets façonne le comportement par défaut de l'agent sans aucun prompting.

.claude/agents/ les définitions de spécialistes te permettent de contraindre la portée par agent. Un agent de base de données qui ne peut toucher que les fichiers de migration ne peut pas accidentellement modifier des composants frontend. La restriction de portée est l'une des contraintes les moins coûteuses à ajouter.

Les hooks te permettent de câbler des capteurs computationnels dans la boucle de l'agent. Un hook post-édition qui exécute le vérificateur de types signifie que chaque changement de fichier est validé avant que l'agent passe à la tâche suivante.

Les règles de permissions dans settings.json définissent quels outils l'agent peut accéder. Commencer avec moins d'outils et élargir est mieux que commencer avec tout et essayer de restreindre ensuite.

Le bon harness ne vise pas à éliminer entièrement l'input humain. Il dirige l'attention humaine là où elle compte le plus : les décisions que les capteurs ne peuvent pas attraper et que le jugement, pas les règles, doit résoudre.

Questions fréquentes

C'est quoi l'ingénierie du harness agent ?

L'ingénierie du harness agent, c'est la pratique de concevoir tout autour d'un modèle IA sauf le modèle lui-même. Ça inclut la sélection d'outils, l'injection de contexte, l'architecture mémoire, les boucles de vérification, et le design des contraintes. Le harness détermine quelle information l'agent reçoit, quelles actions il peut prendre, et comment les erreurs sont détectées et corrigées avant d'atteindre la review humaine.

Pourquoi le harness compte plus que le modèle ?

Sur les benchmarks de code SWE-bench, le même modèle score 42% avec un scaffold et 78% avec un meilleur. Vercel a retiré 80% des outils de leur agent et a vu la précision passer de 80% à 100% avec 37% moins de tokens utilisés. Le raisonnement du modèle est fixe. Le harness détermine quelle part de cette capacité de raisonnement atteint réellement la tâche.

C'est quoi un scaffold d'agent IA ?

Un scaffold est la couche structurelle construite autour d'un modèle IA pour permettre des tâches complexes multi-étapes. Il fournit à l'agent des outils à appeler, de la mémoire à lire et écrire, une boucle à re-exécuter après des erreurs, et des signaux de feedback pour se corriger. Scaffold et harness sont utilisés de façon interchangeable dans la plupart des contextes. La distinction, quand elle est faite, est qu'un harness met l'accent sur le contrôle et la gouvernance tandis qu'un scaffold met l'accent sur la structure et l'enablement.

Comment construire un bon harness agent ?

Commence avec les cinq leviers dans l'ordre : design des outils d'abord, puis injection de contexte, puis mémoire, puis boucles de vérification, puis contraintes. Pour chaque levier, identifie les modes d'échec que tu observes vraiment, pas les théoriques. Construis le contrôle le plus simple qui prévient chaque échec. Exécute les vérifications computationnelles (vérificateur de types, linter, tests) automatiquement après chaque action de l'agent. Ajoute les contrôles inférentiels seulement là où les computationnels ne peuvent pas atteindre.

C'est quoi le paradoxe des contraintes dans les agents IA ?

Ajouter plus de contraintes n'améliore pas forcément le comportement de l'agent. Un long jeu de règles exhaustif performe souvent moins bien qu'un court et clair parce que chaque contrainte consomme du contexte et des règles contradictoires créent du bruit. La résolution, c'est la priorisation : identifie les modes d'échec qui se répètent le plus souvent et écris des contraintes seulement pour ceux-là. Laisse tout le reste au jugement du modèle.

Pourquoi Vercel est passé de 15+ outils à un seul ?

L'équipe de Vercel a trouvé qu'un large ensemble d'outils forçait leur agent à dépenser du contexte sur la désambiguïsation, décidant quel outil appeler plutôt que comment résoudre le problème. Passer à un seul outil bash a supprimé cette surcharge. La précision est passée de 80% à 100%, les tokens ont chuté de 37%, et la vitesse s'est améliorée de 3,5x sur leur benchmark. Le principe : moins d'outils, mais plus précis, surpassent un grand toolkit généraliste.

Explorer plus de concepts agents :

  • Patterns d'agent - Formes d'orchestration pour le travail multi-agent
  • Fondamentaux des agents - Sub-agents, slash commands, et personas CLAUDE.md
  • Design de sub-agent - Patterns d'architecture pour coordonner plusieurs agents
  • Orchestration d'équipe - Boucles builder et validator en pratique
  • Agents personnalisés - Écrire des définitions d'agent spécialiste

Continue in Agents

  • Principes de base de l'agent
    Cinq façons de construire des agents spécialisés dans le code Claude : Sous-agents de tâches, .claude/agents YAML, commandes slash personnalisées, personas CLAUDE.md, et invites de perspective.
  • Patterns d'agents
    Orchestrateur, fan-out, chaîne de validation, routage par spécialiste, raffinement progressif, et watchdog. Six formes d'orchestration pour câbler des sub-agents Claude Code.
  • Meilleures pratiques des équipes d'agents
    Patterns éprouvés pour les équipes d'agents Claude Code. Prompts de création riches en contexte, tâches bien calibrées, propriété des fichiers, mode délégué, et correctifs v2.1.33-v2.1.45.
  • Contrôles des équipes d'agents
    Configure le mode délégué, les modes d'affichage, l'approbation des plans, les limites de fichiers et les règles CLAUDE.md pour que le chef d'équipe Claude Code coordonne au lieu de coder.
  • Templates de prompts pour les équipes d'agents
    Dix prompts d'équipes d'agents testés pour Claude Code. Revue de code parallèle, débogage, builds de fonctionnalités, décisions d'architecture et recherche de campagne. À coller et utiliser.
  • Workflow des équipes d'agents
    Le workflow en sept étapes des équipes d'agents Claude Code. Brain dump, Q&R, plan structuré, contexte frais, chaînes de contrats, exécution par vagues, et validation avant livraison.

More from Handbook

  • Bonnes pratiques Claude Code
    Cinq habitudes séparent les ingénieurs qui livrent avec Claude Code : les PRDs, les règles CLAUDE.md modulaires, les slash commands personnalisés, les resets /clear, et un état d'esprit d'évolution du système.
  • Le mode auto de Claude Code
    Un second modèle Sonnet examine chaque appel d'outil Claude Code avant qu'il s'exécute. Ce que le mode auto bloque, ce qu'il autorise, et les règles d'autorisation qu'il place dans tes paramètres.
  • Claude Code Channels
    Connecte Claude Code à Telegram, Discord ou iMessage avec des serveurs MCP plugin. Walkthroughs de setup et workflows mobiles async qui valent la peine d'être configurés.
  • Meilleures pratiques pour Claude Opus 4.7
    Utilise Claude Opus 4.7 efficacement dans Claude Code : premiers tours, réglages d'effort, pensée adaptative, prompts d'outils, sous-agents, réinitialisations de session et contrôle des tokens.

Arrêtez de configurer. Commencez à construire.

Templates SaaS avec orchestration IA.

On this page

Ce qu'est vraiment le harness
Pourquoi le design du harness surpasse les mises à jour de modèle
Les cinq leviers
1. Design des outils
2. Injection de contexte
3. Architecture mémoire
4. Boucles de vérification
5. Design des contraintes
Le paradoxe des contraintes
Contrôles computationnels vs. inférentiels
Trois catégories de harness
Points de départ pour Claude Code
Questions fréquentes

Arrêtez de configurer. Commencez à construire.

Templates SaaS avec orchestration IA.