claude@loops:~/.claude/loops$ cat loop-engineering.md

Ingénierie des boucles : boucles Claude Code, routines et workflows

# Le guide de référence des praticiens de l’ingénierie des boucles : boucles Claude Code, objectifs, boucles Ralph, routines et workflows dynamiques — et la doctrine de vérification qui détermine si ces processus convergent.

author: words: 12201 read_time: 62m updated: 2026-10-28 17:09
$ less loop-engineering.md

En bref : Le loop engineering consiste à faire répéter aux agents des cycles de travail jusqu’à ce qu’une condition d’arrêt soit remplie, au lieu de les solliciter une étape à la fois. Boris Cherny, créateur de Claude Code chez Anthropic, décrit sans détour son propre workflow : « Je ne sollicite plus Claude. J’ai des loops en cours d’exécution. Ce sont elles qui sollicitent Claude et déterminent ce qu’il faut faire. Mon travail consiste à écrire des loops. »1 Claude Code propose désormais toute une gamme de surfaces de loop : /goal (répétition jusqu’à ce qu’un modèle distinct confirme qu’une condition est remplie ou la juge impossible), /loop (exécutions locales récurrentes), le plugin Ralph officiel (itération jusqu’à ce qu’une promesse soit tenue), les tâches planifiées dans le cloud (anciennement routines ; cron dans le cloud) et les workflows dynamiques (Claude écrit un graphe d’orchestration JavaScript et y exécute jusqu’à 1 000 subagents). Pourtant, aucune de ces fonctionnalités ne constitue le pilier de cette pratique : c’est la vérification. Une loop ne converge que lorsqu’un élément extérieur au générateur — un test, un modèle évaluateur, une comparaison de pixels ou un contrôle automatisé — décide que le travail est « terminé ». Si la vérification est bien conçue, les loops produisent des effets cumulatifs ; dans le cas contraire, vous financez une marche aléatoire extrêmement coûteuse. Ce guide couvre chaque surface de loop avec ses versions de référence, le pattern Ralph et ses modes de défaillance, les situations dans lesquelles les loops doivent devenir des graphes, l’échelle de vérification, la maîtrise des coûts et de la sécurité, ainsi que la gestion d’une flotte permanente. Informations à jour pour Claude Code v2.1.312 (octobre 2026).

Qu’est-ce que le loop engineering ?

Il y a deux ans, les ingénieurs écrivaient le code source à la main. Puis des agents ont écrit le code à partir de prompts humains. La transition actuellement à l’œuvre se situe un niveau plus haut : les agents envoient des prompts à d’autres agents, tandis que l’humain écrit le système qui décide quels prompts envoyer. Cherny mesure directement l’ampleur de cette évolution : « Le passage du code source aux agents était considérable ; les loops représentent une étape tout aussi importante et majeure. »2

Sa définition est d’une simplicité rafraîchissante : « Un loop est essentiellement une tâche cron exécutée localement pour Claude. Une routine, c’est la même chose, mais exécutée dans le cloud. »3 Cette pratique aux allures exotiques — « des centaines, parfois des milliers d’agents qui travaillent pendant 5, 10 ou 20 heures » durant la nuit,4 Claude Code « écrit à 100 % par Claude Code depuis plus de six mois »4 — se résume à quelques primitives : un prompt relancé selon une planification ou une condition, un état qui persiste d’une itération à l’autre et un contrôle qui met fin à l’exécution.

Anthropic a donné un nom à cette discipline en juin 2026 : les loops sont « des agents qui répètent des cycles de travail jusqu’à ce qu’une condition d’arrêt soit remplie », et « la qualité du résultat d’un loop dépend du système qui l’entoure ».5 C’est précisément ce système environnant que ce guide aborde.

Une précision sur l’origine des termes s’impose, car le discours a évolué rapidement à la mi-2026 : l’expression « graph engineering » — souvent attribuée à Cherny dans des publications virales — a été forgée par la communauté (avec la question de Peter Steinberger du 18 juillet, « parlons-nous toujours de loops ou sommes-nous déjà passés aux graphs ? », amplifiée par Hamel Husain), et non par Anthropic ou Cherny.6 La citation largement relayée « 85 % de nos ingénieurs… la méthode consiste à faire du graph engineering » ne circule que dans des publications de tiers ; lors de la préparation de ce guide, nous n’avons pu la retrouver dans aucune source primaire de ses interventions (la conversation à la YC Startup School, Odd Lots de Bloomberg, le compte rendu de Meta @Scale par TechCrunch). Considérez donc cette attribution comme non vérifiée. Sa pratique réelle adopte bien la forme d’un graph (des orchestrateurs qui lancent des subagents d’implémentation, de vérification et de correction, imbriqués jusqu’à une profondeur de 5), mais le vocabulaire attesté est celui des loops, des routines et des workflows — et c’est celui qu’emploie ce guide.

Parcours idéal en cinq minutes

Trois commandes suffisent pour passer des prompts aux loops :

# 1. A goal loop: Claude keeps working until a SEPARATE model confirms the condition
/goal all tests pass and coverage is above 80%

# 2. A recurring local loop: re-runs on a schedule while your session is open
/loop 30m check CI on my open PRs and fix any failures

# 3. A cloud scheduled task (formerly a routine): runs on Anthropic's infrastructure whether your laptop is open or not
/schedule every morning at 7am: triage new issues, reproduce what you can, draft fixes as PRs

La différence entre ces commandes et un prompt est structurelle, pas cosmétique : chacune possède une règle de relance (une condition, une horloge ou une tâche cron) et nécessite une règle d’arrêt. Tout le reste de ce guide explique comment rendre ces deux règles fiables.

Le loop central et la règle unique

Tous les systèmes agentiques suivent le même cycle interne, que la documentation Agent SDK de Anthropic consacre sous la forme recueillir le contexte → agir → vérifier le travail → recommencer.7 Le processus propre à Claude Code est lui aussi un loop : évaluer le prompt, appeler des outils, lire leurs résultats, puis recommencer jusqu’à obtenir une réponse sans appel d’outil.8

Le loop engineering enveloppe ce cycle interne de loops externes — et en hérite une règle non négociable, énoncée par toutes les sources sérieuses du domaine :

L’agent qui effectue le travail ne l’évalue jamais.

  • Documentation /goal de Anthropic : « la réalisation est évaluée par un nouveau modèle, et non par celui qui effectue le travail. »9
  • Essai de Anthropic sur la conception d’un harness : « Séparer l’agent qui effectue le travail de celui qui l’évalue s’avère être un levier puissant pour résoudre ce problème. »10
  • Cherny, à propos de ce qui échappe aux praticiens : « La vérification est probablement l’élément le plus important que les gens ne maîtrisent pas. »3 Dans son exemple pratique, il donne cette consigne pour une réécriture d’Electron vers Swift en deux semaines : « exécutez l’application Electron dans la machine virtuelle Mac, faites-en une capture d’écran, puis examinez-la pixel par pixel. Comparez-la à la version Swift. Ne vous arrêtez pas avant d’avoir terminé. »3

La raison est mécanique, et non morale : un modèle auquel on demande « avez-vous terminé ? » présente un biais d’autoévaluation positive, tandis qu’une transcription formulée avec assurance peut convaincre une condition de sortie évaluée par un modèle de conclure prématurément que le travail est « terminé ».11 Une vérification externe — une suite de tests, un compilateur, une comparaison pixel par pixel ou un nouveau modèle sans intérêt dans la réponse — constitue le seul signal capable d’y résister.

L’échelle d’autonomie

Les surfaces de loop dans Claude Code forment une échelle allant de « appuyez de nouveau sur Entrée » à « s’exécute sans vous ». Chaque niveau échange davantage d’autonomie contre une charge de vérification accrue :

Niveau Surface Règle de relance Règle d’arrêt Depuis
0 Un tour normal Vous appuyez sur Entrée La réponse se termine —
1 /goal Condition pas encore remplie Un modèle d’évaluation distinct confirme que la condition est remplie, ou la juge impossible v2.1.139
2 Stop hooks / plugin Ralph Le hook réinjecte le prompt à la sortie Chaîne --completion-promise ou limite --max-iterations plugin (officiel)
3 /loop + outils cron Horloge (intervalle fixe ou rythme adaptatif) Vous annulez ou le loop s’arrête de lui-même v2.1.71
4 Ralph headless (claude -p dans un loop shell) Le while du shell Contrôle externe dans le script pratique communautaire
5 Tâches planifiées dans le cloud (anciennement routines) Tâche cron, horaire ponctuel, appel API ou événement GitHub L’exécution se termine ; vous lisez la transcription version de recherche préliminaire, vers avril 2026

(La présentation par niveaux reprend la taxonomie publiée par pardel.dev en juillet 2026, la cartographie indépendante la plus claire du domaine.11)

Une option locale se situe entre les niveaux 3 et 5 : les tâches planifiées Desktop s’exécutent sur votre machine sans session ouverte, à des intervalles pouvant descendre à 1 minute lorsque Claude les définit (1 heure dans les formulaires), et la documentation les recommande « lorsque vous avez besoin d’accéder à des fichiers et à des outils locaux ».12

La discipline de cette échelle est la suivante : commencez au niveau le plus bas qui résout votre problème et ne montez que lorsque la vérification de ce niveau a fait ses preuves. Un /goal dont la condition ne peut pas être formulée sous une forme vérifiable n’est pas prêt à devenir une tâche planifiée dans le cloud.

Les surfaces de loop en détail

(Ce guide porte sur les surfaces de loop elles-mêmes. Le guide Claude Code constitue la référence complète de CLI — configuration, autorisations, hooks, MCP — tandis que le guide sur l’architecture des agents explique comment les composants d’un harness s’articulent ; les loops sont ce que vous exécutez par-dessus ces deux couches.)

/goal — le loop évaluateur-optimiseur

/goal <condition> maintient Claude au travail jusqu’à ce que la condition soit remplie : « Après chaque tour, un modèle vérifie si la condition est remplie. S’il juge qu’elle ne l’est pas encore, Claude commence un autre tour au lieu de vous rendre le contrôle. »9 En coulisses, « /goal est un wrapper autour d’un Stop hook fondé sur un prompt et limité à la session », si bien qu’il est indisponible partout où les hooks sont désactivés (disableAllHooks, ou allowManagedHooksOnly dans les paramètres gérés). L’évaluateur est le petit modèle rapide que vous avez configuré, et il renvoie l’un des trois verdicts suivants, chacun accompagné d’une courte raison :9

Verdict Conséquence
Pas encore remplie Claude continue de travailler et utilise la raison comme instruction pour le tour suivant
Remplie Claude Code efface le goal et consigne une entrée de réussite dans la transcription
Impossible L’évaluateur a jugé que la condition ne pourra jamais être satisfaite ; Claude Code efface le goal et consigne une entrée d’échec accompagnée de la raison

Il fonctionne également en mode headless : claude -p "/goal ..." exécute le loop jusqu’à son terme.

Conseils de conception : rendez la condition observable (« les tests réussissent », « l’endpoint renvoie 200 », « aucune erreur TypeScript ») plutôt qu’aspirationnelle (« le code est propre »). Un vérificateur vague ne donne aucune direction au loop — et une transcription formulée avec assurance peut amener une condition évaluée par un modèle à donner son accord. Associez donc /goal à un contrôle automatisé chaque fois qu’il en existe un.11 La documentation énonce clairement cette limite : l’évaluateur « n’exécute pas de commandes et ne lit pas de fichiers de lui-même ; formulez donc la condition comme quelque chose que la propre sortie de Claude peut démontrer ».9 Intégrez aussi la règle d’arrêt dans la condition : une clause telle que or stop after 20 turns est évaluée comme le reste, et une condition peut compter jusqu’à 4 000 caractères. Si Claude continue de répondre à l’évaluateur sans utiliser d’outil pendant plusieurs tours consécutifs, Claude Code arrête le loop et vous rend le contrôle, le goal restant défini.9

La gestion des échecs, renforcée une première fois dans la v2.1.234,34 couvre désormais toutes les manières dont un tour peut échouer :

Échec Réaction du goal
Une erreur que vous devez corriger : un échec d’authentification lorsque Claude Code gère ses propres identifiants, un solde de crédits épuisé, un dépassement de contexte que l’auto-compaction n’a pas pu résorber, ou un modèle indisponible S’efface, avec un avertissement qui commence par Goal cleared after an unrecoverable error
Un échec qui tend à se résorber de lui-même, comme un serveur surchargé ou une connexion interrompue (mode interactif, v2.1.269+) Réessaie automatiquement ; après trois tentatives, il se met en pause
Un échec qu’une nouvelle tentative ne ferait que reproduire : une limite de débit de l’API, une limite d’utilisation de claude.ai ou un hook qui a mis fin au tour (mode interactif, v2.1.269+) Se met en pause, et reprend à la réinitialisation de la limite d’utilisation si la session est configurée pour continuer automatiquement

Lorsqu’un hôte comme l’application de bureau ou une session cloud gère les identifiants, un échec d’authentification laisse le goal actif, car l’hôte rétablit lui-même l’accès. Et lorsque du travail en arrière-plan fait attendre un goal, Claude vérifie son état au bout de 30 minutes, de nouveau 1 heure plus tard, puis toutes les 2 heures, avec au plus trois vérifications d’inactivité entre deux de vos prompts (CLAUDE_CODE_GOAL_CHECKIN_MINUTES définit le premier intervalle ; 0 désactive les vérifications et les nouvelles tentatives automatiques).9

/loop — exécutions locales récurrentes

/loop [interval] <prompt> réexécute un prompt selon une planification : fixe (/loop 5m check the deploy), adaptative (Claude choisit le prochain délai, entre une minute et une heure, selon ce qu’il a observé) ou simplement /loop pour une passe de maintenance intégrée. Le mécanisme repose sur CronCreate/CronList/CronDelete (cron à 5 champs, 50 tâches par session, expiration après 7 jours) et sur l’outil Monitor, qui diffuse la sortie d’un script en arrière-plan au lieu de l’interroger périodiquement.12 Voici l’exemple de lancement de Cherny : « /loop surveille toutes mes PR. Corrige automatiquement les problèmes de build et, lorsque des commentaires arrivent, utilise un agent dans un worktree pour les traiter. »13 Pour remplacer le prompt de maintenance intégré, écrivez un fichier loop.md (.claude/loop.md dans le projet, qui est prioritaire, ou ~/.claude/loop.md) ; « les modifications de loop.md prennent effet à l’itération suivante », et le contenu au-delà de 25 000 octets est tronqué.12

La principale limite : /loop vit dans un processus Claude Code en cours d’exécution. « Les tâches ne se déclenchent que lorsque Claude Code est en cours d’exécution et inactif. » Quittez-le et elles cessent de se déclencher ; passez la session en arrière-plan et le loop continue de tourner sans terminal ; reprenez-la avec --resume ou --continue et les tâches planifiées avec CronCreate reviennent, mais pas un /loop à rythme adaptatif, qu’il faut donc relancer.12 Pour le travail qui doit survivre à la session, la documentation compare trois surfaces :12

Tâches planifiées dans le cloud (anciennement routines) Tâches planifiées Desktop /loop
S’exécute sur Le cloud, géré par Anthropic par défaut Votre machine Votre machine
Machine allumée requise Non Oui Oui
Session ouverte requise Non Non Oui
Persistance après redémarrage Oui Oui Restauré avec --resume, avec des exceptions
Intervalle minimal 1 heure 1 minute lorsque Claude le définit, 1 heure dans les formulaires 1 minute

Le travail qui doit s’exécuter machine éteinte, c’est précisément la raison d’être des tâches planifiées dans le cloud.

Le plugin Ralph — itérer jusqu’à tenir la promesse

Le plugin officiel ralph-loop de Anthropic transforme en produit la méthode de force brute favorite de la communauté. Il s’appelle ralph-loop dans le dépôt anthropics/claude-plugins-official depuis le 6 janvier 2026, date à laquelle Anthropic l’a renommé de ralph-wiggum en ralph-loop « conformément à un avis juridique ». Le 26 octobre 2026, le dépôt claude-code a supprimé sa propre copie obsolète de ralph-wiggum, et sa marketplace installe désormais ralph-loop depuis le dépôt officiel, de sorte que « les identifiants de plugin existants continuent de fonctionner ».14 Le mécanisme : un Stop hook intercepte la tentative de Claude de terminer la session et réinjecte le prompt, de sorte que le modèle itère en continu au sein d’une même session. /ralph-loop "<prompt>" --max-iterations <n> --completion-promise "<string>" le démarre ; /cancel-ralph l’interrompt. Le README indique explicitement que --max-iterations est « votre principal mécanisme de sécurité » — la correspondance exacte de la chaîne de fin peut échouer indéfiniment.14 Une limite du harness s’applique sous chaque loop fondé sur un Stop hook : « Si le hook bloque huit arrêts d’affilée sans appel d’outil entre eux, Claude Code passe outre le blocage suivant et met fin au tour » (CLAUDE_CODE_STOP_HOOK_BLOCK_CAP relève ce plafond).29 Cela met fin à un loop qui ne progresse plus ; cela n’arrête pas un loop Ralph qui continue d’appeler des outils, si bien que le plafond d’itérations reste indispensable.

Workflows dynamiques — Claude écrit le graph

Introduits avec Claude Code v2.1.154 (mai 2026) et détaillés dans la publication de lancement de Anthropic du 2 juin 2026, les workflows dynamiques représentent le plus grand saut conceptuel : « Claude peut désormais écrire son propre harness à la volée, conçu sur mesure pour la tâche à accomplir. »15 Vous décrivez la tâche, dites « utilisez un workflow » ou incluez le mot-clé ultracode ; Claude écrit un script d’orchestration JavaScript, dans lequel agent() lance un subagent avec des sorties facultatives conformes au schéma JSON, pipeline() en exécute un par élément d’une liste, parallel() en exécute un ensemble simultanément, et les await, loops et conditions ordinaires assurent le flux de contrôle ; un environnement d’exécution le lance ensuite en arrière-plan. /effort ultracode va plus loin : Claude « planifie un workflow pour chaque tâche substantielle de la session », et une telle session « atteint une limite de session ou hebdomadaire plus tôt que le même travail sans ce mode ».16 « Un workflow transfère le plan dans le code… Un script de workflow conserve lui-même le loop, les branchements et les résultats intermédiaires, si bien que le contexte de Claude ne contient que la réponse finale. »16

Limites et structure, selon la documentation :16

Limite Valeur
Agents simultanés Jusqu’à 16 par défaut, moins avec moins de processeurs ; CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS accepte de 1 à 256 (v2.1.269+)
Agents par exécution 1 000 (« pour éviter les loops incontrôlés »)
Éléments dans un seul appel parallel() ou pipeline() 4 096
Intervention de l’utilisateur en cours d’exécution Aucune

Les scripts enregistrés dans .claude/workflows/ deviennent des commandes slash réutilisables. Une exécution reprend à partir des résultats d’agents enregistrés lorsque Claude la relance, mais un agent en échec « est réexécuté, de même que chaque agent que le script lance après lui, y compris ceux qui avaient terminé », et une exécution que vous passez en arrière-plan ou quittez en cours de route « ne reprend pas d’elle-même ».16

La topologie caractéristique est dispersion / réfutation / convergence : des agents de recherche indépendants, suivis de vérificateurs contradictoires chargés de réfuter chaque résultat, le tout répété jusqu’à ce que les réponses résistent. Anthropic en livre désormais une instance : le workflow intégré /deep-research « répartit des recherches web sur une question selon plusieurs angles, récupère et recoupe les sources qu’il trouve, vote sur chaque affirmation et renvoie un rapport sourcé dont sont filtrées les affirmations qui n’ont pas résisté au recoupement », et lorsque ses vérificateurs ne peuvent pas contrôler une affirmation, « le rapport la signale comme non vérifiée au lieu de la compter comme réfutée ».16 Résultat phare présenté lors du lancement : le portage par Bun de sa base de code Zig de 535 496 lignes vers Rust — produisant une base de code Rust dépassant le million de lignes — en onze jours (du 3 au 14 mai 2026) grâce à 64 agents parallèles, selon le récit de Jarred Sumner.15

Équipes d’agents — le graph pair-à-pair

Derrière CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 (fonctionnalité ajoutée en version de recherche préliminaire dans la v2.1.32, février 2026 ; la documentation indique désormais : « Les équipes d’agents sont expérimentales et désactivées par défaut ») : un responsable d’équipe et des coéquipiers qui « travaillent indépendamment, chacun dans sa propre fenêtre de contexte, et communiquent directement entre eux ». On obtient ainsi un graph pair-à-pair plutôt qu’une arborescence de subagents, coordonné par une liste de tâches partagée avec dépendances, verrouillage des fichiers revendiqués et boîtes aux lettres propres à chaque agent. Des quality gates imposés par les hooks placent des contrôles automatisés entre le travail d’un coéquipier et son statut « terminé » : TaskCompleted avec code de sortie 2 bloque l’achèvement, et TeammateIdle avec code de sortie 2 maintient un coéquipier au travail.17 Deux comportements à connaître avant de l’activer : tant que les équipes d’agents sont activées, « un subagent que Claude nomme est lancé comme coéquipier, si bien que des équipes peuvent se former même si vous n’en avez pas demandé », et « un coéquipier ne peut pas approuver une demande d’autorisation ni donner son consentement à votre place ».17

Routines — des loops qui survivent à votre ordinateur portable

Une tâche planifiée dans le cloud (anciennement routine) est « une configuration Claude Code enregistrée : un prompt, un ou plusieurs dépôts et un ensemble de connecteurs, regroupés une seule fois puis exécutés automatiquement », qui s’exécute sur l’infrastructure cloud gérée par Anthropic ou dans l’environnement auto-hébergé de votre organisation.18 L’ancien nom subsiste là où le changer casserait quelque chose : l’adresse web (claude.ai/code/routines), l’alias /routines de /schedule et le chemin d’API /fire. Trois types de déclencheurs, qui peuvent être combinés : une planification (intervalle minimal de 1 heure pour une cadence récurrente, ou une exécution ponctuelle à une heure fixée), déclenchement API (POST .../routines/{id}/fire) et événements GitHub. Création via /schedule, l’application Desktop ou claude.ai/code/routines. La session d’une exécution démarre en mode Auto, sauf si celui-ci est indisponible ; un classificateur autorise ou bloque chaque action, et l’exécution s’interrompt pour attendre dans certains cas, par exemple une action qui demande une autorisation même en mode Auto (une règle ask) ou des blocages répétés. C’est précisément pourquoi la mise en garde de la documentation est essentielle : le résultat d’une exécution indique « comment la session s’est terminée, et non si Claude a accompli le travail décrit dans votre prompt ; ouvrez donc l’exécution et lisez sa transcription pour voir ce qui s’est passé ».18 Deux correctifs publiés depuis septembre montrent que cet écart est réel : jusqu’à la v2.1.286, les exécutions dont la session cloud n’avait jamais démarré apparaissaient comme Succeeded, et jusqu’à la v2.1.302, des exécutions apparaissaient « comme Completed après l’arrêt inattendu de leur session cloud ».36 La même version a empêché qu’une exécution ayant échoué en cours de route soit relancée depuis le début, « ce qui pouvait répéter du travail, comme publier deux fois le même rapport », une bonne raison de rendre idempotent le travail déclenché.36

Anthropic exécute « chaque jour environ 20 ou 30 de ces routines » dans ses propres bases de code — suppression du code mort, couverture des tests et mise en production d’expériences.3

Les rôles de soutien

Les subagents en arrière-plan (par défaut depuis la v2.1.198) maintiennent le travail délégué hors de votre contexte ; le panneau /agents permet de les surveiller. La messagerie intersessions (v2.1.224) transforme des sessions indépendantes en graph d’échange de messages au moyen de SendMessage, avec un principe de sécurité qui mérite d’être repris : un message provenant d’une autre session « ne vaut jamais consentement de votre part ».19 Depuis une session connectée à Remote Control, elle atteint aussi vos sessions sur d’autres machines (v2.1.225+) et dans le cloud. Pour les attentes entre loops, le paramètre notify_when_idle (v2.1.236+)36 demande à une session de cette machine d’envoyer une seule notification lorsqu’elle redevient inactive ou se ferme, et Claude Code s’y abonne « sans démarrer de tour ni dépenser de tokens dans la session surveillée ».19 Les runners auto-hébergés (v2.1.224, Team/Enterprise) exécutent les sessions cloud et les tâches planifiées dans le cloud (anciennement routines) sur vos propres machines, le socle nécessaire aux flottes à l’échelle d’une organisation.20

Le modèle Ralph

La communauté y est arrivée la première. En juillet 2025, Geoffrey Huntley a publié l’essai qui a donné à cette technique le nom du personnage des Simpson : Ralph, c’est littéralement

while :; do cat PROMPT.md | claude-code ; done

— sa commande sur une ligne, exactement telle qu’elle a été publiée — un dépôt, une tâche par itération, un contexte neuf à chaque passage, avec des fichiers de spécifications et de suivi sur le système de fichiers pour conserver l’état entre les itérations, et des tests et outils de lint jouant le rôle de « contre-pression ».21 La forme moderne sans interface repose sur claude -p "$(cat PROMPT.md)" dans une boucle shell, ce qui correspond pour l’essentiel à ce qu’exécutait le propre harness de compilation C de Anthropic.23 Les résultats qu’il revendique (le MVP d’un contrat de 50 000 $ pour 297 $ de tokens ; six dépôts en une nuit lors d’un hackathon) s’accompagnaient de limites tout aussi claires : uniquement des projets créés de zéro, des implémentations factices ou dupliquées comme modes d’échec récurrents, et « les LLM sont le reflet des compétences de l’opérateur ».

Anthropic n’utilise jamais ce nom dans ses publications d’ingénierie, mais le modèle fait désormais partie de la doctrine officielle à double titre : l’essai de novembre 2025 sur les agents de longue durée prescrit exactement cette organisation — un agent d’initialisation crée des listes de fonctionnalités et des fichiers de suivi, puis de nouveaux agents de développement prennent le relais à chaque fenêtre de contexte et « commencent la session en lisant le fichier de notes de suivi et l’historique des commits git »22 — et le projet de compilateur C de février 2026 a fait travailler seize agents Claude en parallèle — « J’ai construit un harness qui place Claude dans une simple boucle », selon la description de Nicholas Carlini — avec des verrous de tâches fondés sur des fichiers et git comme couche de synchronisation, produisant environ 100 000 lignes de Rust au fil d’environ 2 000 sessions pour quelque 20 000 $.23 La phrase de l’essai consacrée à la vérification résume toute la théorie du modèle : « le vérificateur de la tâche doit être presque parfait ».

Pourquoi un contexte neuf fait mieux qu’une longue session : l’efficacité diminue à mesure que le contexte d’une session se remplit — les praticiens s’accordent à situer le seuil de dérive autour de 100 000 tokens — et les résumés de compaction sont des reformulations avec perte d’information qui donnent aux erreurs l’apparence d’affirmations assurées.24 La conception de Ralph, qui associe un nouvel agent à chaque itération à des fichiers persistants, contourne ces deux problèmes. (Les boucles au sein d’une même session du plugin officiel sacrifient une partie de ces avantages au profit de la commodité ; pour les exécutions longues, la forme sans interface avec un état externe reste le modèle le plus solide.)

La mésaventure qui sert de mise en garde est tout aussi instructive : un praticien a lancé le plugin avec un prompt vague et max_iterations: 0 — ce qui signifie infini, et non désactivé — et Claude s’est posé la même question de clarification 1 966 fois, tandis que le hook Stop détournait chaque message suivant.25 Les plafonds d’itérations ne sont pas facultatifs.

Quand les boucles deviennent des graphes

Une boucle unique suppose que ses itérations sont indépendantes ou strictement séquentielles. Dès que le travail en parallèle comporte des dépendances — la tâche B a besoin du résultat de A, deux agents modifieraient le même fichier — les boucles sans coordination entrent en conflit, et une structure explicite devient nécessaire : une liste de tâches avec des tableaux de dépendances, un mécanisme de réservation des fichiers, des règles de fusion. Voilà le fond réel du débat entre boucles et graphes : des boucles pour un dépôt et un objectif ; des graphes quand le travail en parallèle exige un ordre d’exécution.26

Les options de graphes, par ordre croissant de besoins en infrastructure :

  1. Workflows dynamiques — les dépendances sont exprimées dans le flux de contrôle de JavaScript ; les barrières de synchronisation n’interviennent que lorsqu’une étape a réellement besoin de tous les résultats précédents. Les topologies citées par Anthropic : distribution puis synthèse, vérification contradictoire, génération puis filtrage, tournoi (« Lancez N agents qui tentent chacun la même tâche selon des approches différentes », puis comparez les résultats deux à deux), et boucle jusqu’à achèvement.15
  2. Équipes d’agents — une liste de tâches partagée avec suivi des dépendances ; un coéquipier lancé pendant que le responsable est en mode plan envoie son plan pour approbation, et Claude Code l’approuve automatiquement ; le responsable ne l’examine que si vous basculez en mode plan un coéquipier en cours d’exécution dans le même processus (Shift+Tab) ; le graphe est représenté par des données, pas par du code.17 Un comportement par défaut a changé dans ce modèle, d’abord dans la v2.1.233 :34 les outils de suivi des tâches (TaskCreate, TaskGet, TaskUpdate, TaskList, TodoWrite) sont désormais « disponibles par défaut uniquement sur Opus 4.7, Sonnet 4.6, Haiku 4.5 et les modèles antérieurs », un ensemble par défaut qui s’applique à partir de la v2.1.268.38 Les agents qui en sont privés « se coordonnent par messages plutôt qu’au moyen de la liste de tâches partagée »,17 si bien que, sur un modèle actuel dans une session locale ordinaire, la liste de tâches est absente à moins de l’activer ; les sessions en arrière-plan et les sessions cloud disposent des outils sur tous les modèles.38 Activez-les avec CLAUDE_CODE_ENABLE_TODO_TOOLS=1, --allowedTools TaskCreate ou une liste --tools qui les nomme. Une variable exportée n’atteint pas un coéquipier affiché dans un volet séparé ; pour lui donner les outils, lancez le responsable avec claude --settings '{"env":{"CLAUDE_CODE_ENABLE_TODO_TOOLS":"1"}}'.38
  3. Orchestrateurs externes — le passage à l’échelle proposé par la communauté : Gas Town de Steve Yegge fait travailler 20 à 30 instances de Claude Code sur des DAG de « beads » gérés dans git (75 000 lignes de Go en 17 jours, mais aussi, de son propre aveu, « un gouffre financier » exigeant un opérateur très compétent) ;27 claude-flow/Ruflo (environ 31 000 étoiles) organise les essaims selon une hiérarchie reine/ouvriers ; les moteurs de type LangGraph ajoutent une machine à états typée, avec Claude Code à l’intérieur des nœuds.

Cherny formalise lui-même cette trajectoire sous la forme de l’échelle des Étapes de l’adoption de l’IA, publiée par l’intermédiaire de Anthropic en juillet 2026 : Accès contrôlé (0 agent) → Assistance (~1) → Parallélisme (~10) → Autonomie supervisée (~100, où « la plupart des agents sont lancés par Claude, pas par des humains ») → Organisation native de l’IA (1 000+). Il l’accompagne de ce conseil : « à chaque étape… vous devez repérer et lever les prochains goulets d’étranglement, puis mettre en place les garde-fous suivants ».28

L’ingénierie de la vérification

Tout ce qui précède relève de la tuyauterie. Cette section, c’est le produit.

L’échelle de progression de Anthropic, tirée de la documentation actuelle sur les bonnes pratiques, part d’un conseil : « Donnez à Claude quelque chose qu’il peut exécuter et qui renvoie un verdict de réussite ou d’échec. Une fois qu’il en dispose, il peut continuer seul sans que vous ayez à le surveiller. » Les échelons vont ensuite de la décision de Claude à l’application par le harness : une ligne de prompt (run the auth tests after, and keep going until they pass) → une condition /goal qu’« un modèle distinct vérifie au regard de la conversation après chaque tour », ce qui « compte pour les longues exécutions en arrière-plan, où Claude termine parfois un tour par un résumé de progression alors que des éléments restent ouverts » → un hook Stop, « appliqué par Claude Code (le harness), de sorte que le tour ne se termine pas tant que la vérification des types n’a pas réussi ou que la limite de blocages n’est pas atteinte » → une revue « par quelqu’un qui n’a pas écrit le code », où /code-review « examine le diff dans un nouveau subagent qui n’a jamais vu votre conversation. Il n’est pas influencé par le raisonnement qui a produit le code ».29 L’exigence de preuve qui l’accompagne : « demandez à Claude des preuves : la commande qu’il a exécutée et sa sortie, ou la capture d’écran », car « pour une session que vous ne surveilliez pas, c’est aussi la seule preuve dont vous disposez ».29 La réfutation contradictoire, l’échelon sur lequel cette échelle se terminait auparavant, figure désormais dans la documentation des workflows, dont l’exemple de prompt demande à un workflow de « vérifier chaque résultat de manière contradictoire avant de le signaler ».16

La même documentation classe chaque instruction selon qu’elle relève de la décision de Claude ou de l’application par Claude Code. Trois de ses lignes correspondent aux règles d’arrêt, de budget et de fusion d’une boucle :29

Non déterministe (Claude décide) Déterministe (Claude Code applique)
Quand le travail est terminé Une demande de preuves, /goal, /code-review Tests, vérification des types, un hook Stop, CI
Combien il dépense Niveau d’effort, rythme propre à Claude --max-turns ou --max-budget-usd avec -p, une limite de dépenses que vous avez définie
Qui a le dernier mot Le résumé par Claude de ce qu’il a fait Protection de branche, une personne qui approuve la fusion

Une boucle sans surveillance a besoin d’une entrée de la colonne de droite dans chaque ligne ; la colonne de gauche est tout ce dont dispose une boucle quand personne n’en a écrit. La documentation abandonne aussi une habitude de prompt : des lignes comme « continue, boucle jusqu’à ce que ce soit fini, ne sois pas paresseux » sont « plus susceptibles de provoquer un excès de travail que de débloquer une impasse », et « pour les exécutions que personne ne surveille, /goal ou un hook Stop l’impose ».29

Les trois catégories de retours, tirées de l’essai Agent SDK : les retours fondés sur des règles (« des règles clairement définies pour un résultat, puis une explication des règles non respectées et des raisons de cet échec » — la meilleure forme), les retours visuels (captures d’écran, différences au niveau des pixels), et le LLM comme juge (grilles d’évaluation floues — selon Anthropic, « une méthode généralement peu robuste »).7 Privilégiez-les dans cet ordre ; un contrôle déterministe disponible vaut mieux qu’un juge qui donne son avis.

Conditions de convergence. L’analyse critique la plus incisive des boucles — celle de Yoko Li, publiée en août 2026 — ramène la convergence à quatre exigences : un état cible défini, un état actuel observable, des modifications locales précises et des règles d’arrêt extérieures au générateur. Le chiffre à retenir vient de son expérience instrumentée : 67 % des dépenses en tokens de la boucle n’ont produit aucune amélioration, car rien ne lui signalait que les gains suivaient désormais une courbe logarithmique.30 Les plafonds budgétaires ne servent pas seulement à maîtriser les coûts ; ils constituent une règle d’arrêt de dernier recours.

Intégrité des tests. Selon la doctrine de Anthropic sur les agents de longue durée : « Il est inacceptable de supprimer ou de modifier des tests, car cela pourrait conduire à des fonctionnalités manquantes ou défectueuses. »22 Les boucles exploitent les failles des spécifications — elles réussissent les tests visibles sans répondre à l’intention sous-jacente —, il faut donc protéger le vérificateur lui-même de l’agent qu’il évalue.

Évaluez les résultats, pas les chemins empruntés. Selon l’essai sur les évaluations : « Évaluez ce que l’agent a produit, pas le chemin qu’il a emprunté », utilisez des évaluateurs fondés sur du code lorsque les critères sont objectifs et des évaluateurs fondés sur des modèles pour les grilles d’appréciation, puis calibrez-les : « Vous ne saurez pas si vos évaluateurs fonctionnent bien sans lire les transcriptions et les notes de nombreux essais. »31

Une autre distinction échappe à la plupart des discussions : lorsque tous les contrôles d’une boucle sont déterministes, aucun modèle n’a sa place dans cette boucle. Un outil de surveillance des dérives qui compare des horodatages, un vérificateur de liens, un outil de surveillance des builds — ce sont des scripts shell exécutés à intervalles réguliers : zéro token, quelques secondes par exécution, une répétabilité parfaite. Réservez les boucles pilotées par un modèle aux itérations qui exigent du jugement. La boucle la moins coûteuse est celle qui n’appelle jamais de modèle.

Maîtriser les coûts et les risques

Le coût est l’objection la plus forte que la communauté oppose à l’ingénierie des boucles, et les retours d’incident lui donnent raison : un bug de création de subagents engloutissant 4 millions de tokens en cinq minutes ; des boucles nocturnes consommant des milliers de dollars ; des limites d’utilisation atteintes « bien plus vite que prévu ».32 L’un de ces obstacles a depuis évolué : à partir de la v2.1.234, une session reprend automatiquement lorsque la limite d’utilisation de claude.ai est réinitialisée (le paramètre autoContinueAtUsageLimit ; désactivation dans /config → « Continue automatically at usage limit »).3437 Le périmètre est étroit. « La reprise automatique est activée par défaut dans les sessions interactives connectées avec un abonnement claude.ai » ; Claude Code ne lance pas l’attente de lui-même pour « une réinitialisation à plus de 24 heures », comme une limite hebdomadaire ; quitter Claude Code met fin à l’attente ; et Claude Code « ne propose pas du tout l’attente » dans les « sessions en arrière-plan et exécutions -p », ce qui couvre Ralph headless et claude -p "/goal ...".37 Dans une session qui remplit ces conditions, les boucles suivent le mouvement : un /goal en pause reprend à la réinitialisation,9 et depuis la v2.1.271, une exécution de workflow attend la fin de la limite au lieu de faire échouer ses agents, deux fois au plus par exécution.16 Une boucle nocturne qui reste dans une session interactive ouverte peut désormais survivre au plafond ; celle qui tourne en headless ou dans une session en arrière-plan s’y arrête toujours. Cela rend les contrôles budgétaires ci-dessous encore plus importants. Voici la discipline qui s’est dégagée, chaque élément correspondant à un contrôle disponible :

Risque Contrôle
Itérations incontrôlées --max-iterations (Ralph), plafond de 1 000 agents par workflow, limites des tâches cron, plafond de 8 blocages du Stop hook sans appel d’outil entre eux ;29 tâches planifiées dans le cloud (anciennement routines) : 100 exécutions planifiées par heure et par compte, 30 exécutions « Run now » ou API par heure et par tâche18
Dépenses incontrôlées --max-budget-usd (arrête les subagents en arrière-plan au plafond, v2.1.217+ ; la v2.1.299 a corrigé un mod qui prolongeait une exécution headless au-delà de ce plafond),36 budgets par phase ; l’avertissement Large workflow (plus de 25 agents ou 1,5 million de tokens prévus) et workflowSizeGuideline, deux recommandations plutôt que des plafonds16
Élargissement des permissions sans surveillance Permissions soumises au classificateur du mode Auto ; connecteurs des tâches planifiées dans le cloud (tous les connecteurs connectés sont inclus par défaut, retirez donc ceux dont une tâche n’a pas besoin) ;18 exécution en sandbox
Échec silencieux Contrats de compte rendu à chaque exécution ; ouvrir l’exécution et lire la transcription18
Périmètre d’impact Worktrees et branches — jamais la copie de travail principale ; la PR comme limite

Cette dernière ligne mérite son propre paragraphe, car elle explique comment les praticiens qui poussent l’automatisation le plus loin maîtrisent les risques : limitez le périmètre d’impact à la pull request. Les agents permanents de Cherny en arrière-plan — l’un améliore continuellement l’architecture, l’autre traque les abstractions dupliquées — soumettent des PR sans déclenchement humain ;2 rien n’est fusionné sans revue. Une boucle permanente dont le pire scénario est « une branche non fusionnée » peut tourner à plein régime ; une boucle qui écrit sur main ne le peut pas. Les tâches planifiées dans le cloud en font le comportement par défaut : « Claude pousse son travail vers une branche préfixée par claude/, sauf si votre prompt lui demande de pousser vers une autre branche », et la protection de branche ou les rulesets GitHub déterminent où une exécution peut pousser.18 Faites évoluer les boucles progressivement : commencez par l’observation seule (des rapports, aucune écriture), établissez la confiance au fil d’exécutions sans histoire, puis passez aux propositions de modifications — en consignant la preuve de l’ordre d’exécution (« la purge ne s’exécute qu’après que la vérification a renvoyé le nouveau marqueur ») et une déclaration exhaustive du périmètre d’impact avant de mettre en place la planification. L’économie de cette progression est le sujet de Les boucles gagnent là où la vérification coûte peu : c’est le coût de la vérification, et non celui de la construction de la boucle, qui détermine ce qui peut fonctionner sans surveillance.

Aucune entrée de boucle ne vaut consentement. Quatre règles documentées concordent : un message provenant d’une autre session « ne vaut jamais consentement de votre part » ;19 un coéquipier « ne peut pas approuver une demande d’autorisation ni donner son consentement à votre place » ;17 le prompt déclenché d’une tâche planifiée dans le cloud « ne peut pas valoir approbation ou consentement pour des actions pendant l’exécution », et le texte envoyé avec un déclenchement API « arrive enveloppé dans un bloc <routine-fire-payload> qui le signale comme donnée non fiable » ;18 enfin, en mode Auto, le prompt qu’un script de workflow transmet à agent() « ne compte pas comme une demande de votre part », car « Claude Code le marque comme du texte calculé par le script ».16 Reprenez cette règle dans vos propres boucles : un texte produit par une machine est une donnée, et l’approbation vient d’une personne.

L’objection la plus profonde ne concerne pas le coût, mais la capacité de revue — les boucles produisent du code plus vite que les humains ne peuvent l’examiner sérieusement.33 Il n’existe pas de réponse astucieuse ; il faut simplement être honnête sur le périmètre : les boucles sans surveillance ont leur place là où la vérification peut être effectuée par une machine, et nulle part ailleurs. Si vous ne pouvez pas le vérifier, ne le livrez pas.

Ce qu’une étude contrôlée révèle sur les composants du harness

La plupart des conseils sur les harness, y compris ceux de ce guide, viennent de praticiens qui modifient un élément à la fois en production. Une étude de septembre 2026 menée par UMass Amherst, Emory, UNC Charlotte et Zoom l’a fait dans un cadre contrôlé : un harness conçu pour l’expérience « dont la boucle d’exécution reste fixe tandis que trois composants varient : la planification, l’espace d’action et la gestion du contexte », testé sur « 176 configurations appariées couvrant cinq stratégies de gestion du contexte, quatre budgets de fenêtre de contexte et des ablations ciblées de la planification et de l’espace d’action » sur SWE-Bench Verified et Terminal-Bench 2.1, avec quatre modèles à poids ouverts, trois tailles de Nemotron-3 et Mistral-Medium-3.5-128B.35 Ses quatre conclusions, selon les auteurs :

  • « La gestion du contexte devient de plus en plus utile à mesure que le budget de fenêtre de contexte se resserre, l’essentiel de son bénéfice venant de la prévention des échecs dus au dépassement du contexte. »
  • « Faire précéder la synthèse fondée sur LLM d’une suppression fondée sur des règles offre la meilleure efficacité globale parmi les stratégies de gestion du contexte, tandis que rendre le contenu supprimé récupérable ajoute des mécanismes que les modèles utilisent rarement et n’apporte aucun gain de précision. »
  • « La planification passe d’un soutien à la précision pour les modèles les moins performants à un moyen de réduire les coûts pour les plus performants, avec peu de changement de précision. »
  • « Les outils prédéfinis améliorent les performances des modèles qui maîtrisent moins bien bash, tandis que les modèles compétents en bash peuvent fonctionner efficacement avec une interface limitée à bash et réduire sensiblement les coûts, en particulier pour les tâches centrées sur la ligne de commande. »

À ma lecture, trois de ces conclusions concernent directement l’ingénierie des boucles. La gestion du contexte est une assurance contre les dépassements : une boucle de longue durée devrait prévoir un budget pour sa fenêtre et supprimer les sorties d’outils volumineuses avant de résumer quoi que ce soit, et elle peut se dispenser de mécanismes de récupération que le modèle n’utilisera pas. Pour un modèle performant, la planification est un réglage du coût plutôt qu’un levier de précision, ce qu’il est utile de savoir avant d’ajouter une phase de planification à une boucle qui utilise un tel modèle. Quant au résultat obtenu avec bash seul, il transpose la séparation exécution/modèle au niveau supérieur : lorsque l’acteur est compétent, des actions moins nombreuses et plus larges coûtent moins cher. Les réserves sont celles de l’étude elle-même. Quatre modèles, deux benchmarks et un harness construit pour l’expérience plutôt qu’un agent disponible : les résultats se transposent donc en orientations, pas en paramètres.35

Exploiter une flotte

L’aboutissement de l’ingénierie des boucles n’est pas une boucle unique ; c’est une flotte permanente. Voici à quoi ressemble la pratique lorsqu’elle se stabilise :

  • Des spécifications sous forme de fichiers. Chaque boucle est une spécification versionnée — nom, niveau, calendrier, objectif, vérificateur, outils autorisés, budget, délai maximal — conservée dans le dépôt qu’elle sert. Si vous avez saisi trois fois la même vérification manuelle, elle devient une spécification. Anthropic livre une version réduite de cette idée : un fichier loop.md remplace le prompt intégré du /loop sans argument, et ses modifications prennent effet à l’itération suivante.12
  • Deux niveaux, une promotion qui se mérite. Les boucles d’observation peuvent tout lire, n’écrivent que dans leur propre dossier de rapports et peuvent être planifiées immédiatement. Les boucles d’action modifient l’environnement et exigent une preuve de l’ordre d’exécution, une déclaration du périmètre d’impact et un vérificateur distinct du créateur — le tout consigné avant toute planification. Les boucles commencent par l’observation et doivent mériter leur promotion.
  • La séparation exécution/modèle. Les vérifications déterministes s’exécutent sous forme de scripts (zéro token, 1 à 2 secondes) ; les boucles utilisant un modèle sont réservées au jugement. Le contrôle quotidien d’une flotte peut ne rien coûter.
  • Des contrats de compte rendu. Une ligne par vérification, PASS|FAIL <check>: <reason>, ajoutée à un fichier de rapport daté. Si vous ne pouvez pas définir une ligne PASS compréhensible d’un coup d’œil, la boucle n’est pas prête. Une boucle de synthèse lit les rapports de la flotte pour que l’humain lise une page, pas trente.
  • Des références qui se maintiennent d’elles-mêmes. Les meilleurs dispositifs de surveillance des dérives déduisent leurs attentes de l’artefact qu’ils protègent — les horodatages consignés dans un guide, les empreintes d’un fichier de verrouillage — de sorte que la mise à jour de l’artefact met à jour la surveillance, sans seconde source de vérité à oublier.
  • Une planification qui tient dans la durée. Les flottes locales utilisent le planificateur du système d’exploitation (launchd, cron, timers systemd) pour appeler un script d’exécution, ou s’appuient sur les tâches planifiées Desktop lorsque la machine reste allumée ; les flottes cloud prennent la forme de tâches planifiées dans le cloud (anciennement routines). Les boucles liées à une session (/loop) servent au travail auquel vous assistez, ou à une session passée en arrière-plan.12

C’est la traduction concrète du « mon travail consiste à écrire des boucles » de Cherny : le travail humain se déplace vers la définition des contrôles, des vérificateurs et des budgets — et la lecture des rapports.

Les deux premières boucles à construire

Si vous démarrez une flotte de zéro, deux boucles se rentabilisent immédiatement — toutes deux éprouvées dans le harness de ce site :

La boucle de validation — un binôme créateur-vérificateur pour tout ce que vous publiez. Un évaluateur neuf (sans mémoire des cycles précédents) note l’artefact selon un seuil explicite ; vous traitez chaque point signalé ; un nouvel évaluateur le note à nouveau ; la boucle s’arrête au seuil ou à un nombre maximal de cycles. Deux observations issues de son utilisation sur une série de quinze articles : les corrections peuvent introduire de nouveaux défauts (une correction a attribué un chiffre à la mauvaise source, ce que l’évaluateur du cycle suivant a détecté), et les évaluateurs se trompent dans les deux sens — l’un a « corrigé » avec assurance une affirmation exacte, de sorte que les corrections précises sont vérifiées à la source avant d’être appliquées. Le vérificateur ne fait pas autorité ; c’est la source qui fait foi.

La boucle d’entretien — le point d’entrée dans le niveau d’action. Une petite correction objectivement vérifiable par exécution, sur une branche, des tests au vert avant l’ouverture de la PR, et aucune fusion par la boucle. Deux règles assurent sa sûreté : tout ce qui est ambigu est signalé, pas corrigé (la première exécution supervisée a correctement refusé de traiter un faux positif du détecteur), et un échec préexistant sur main est signalé comme tel, jamais intégré au diff de la boucle.

Un détail d’exploitation de flotte à reprendre : donnez aux boucles utilisant un modèle sans surveillance un bail de session — différez toute exécution tant qu’une session interactive est active dans le même dépôt. Deux processus qui écrivent dans une même copie de travail finiront par entrelacer leurs commits ; le bail fait céder la place à l’humain par construction.

FAQ

Qu’est-ce que l’ingénierie des boucles ?

C’est la pratique qui consiste à faire répéter des cycles de travail à des agents d’IA jusqu’à ce qu’une condition d’arrêt soit remplie, au lieu de leur donner des prompts tour par tour. Le travail d’ingénierie passe de la rédaction des prompts à la conception de la boucle : sa règle de relance (une condition, un calendrier, un événement), son état entre les itérations, son vérificateur et son budget. Anthropic a nommé cette discipline en juin 2026 ; dans Claude Code, elle se décline à travers /goal, /loop, le plugin Ralph, les tâches planifiées dans le cloud (anciennement routines) et les workflows dynamiques.

Qu’est-ce qu’une boucle Ralph ?

Un schéma d’autonomie par force brute nommé par Geoffrey Huntley en juillet 2025 : exécuter Claude Code dans une boucle shell while, en lui fournissant le même prompt avec un contexte neuf à chaque itération, les fichiers de progression et git conservant l’état entre les passages, tandis que les tests font office de frein. Anthropic propose un plugin officiel ralph-loop (renommé depuis ralph-wiggum en janvier 2026) qui réalise la boucle au sein de la session via un hook Stop, avec --max-iterations comme principal mécanisme de sécurité.

Comment exécuter Claude Code en boucle ?

Choisissez le niveau le plus bas qui convient : /goal <condition> pour itérer jusqu’à ce qu’un évaluateur distinct confirme une condition ; /loop <interval> <prompt> pour des exécutions récurrentes tant qu’une session Claude Code est en cours d’exécution ; /ralph-loop pour itérer sur une tâche jusqu’à l’émission d’une promesse d’achèvement ; /schedule pour créer une tâche planifiée dans le cloud qui s’exécute via cron sans votre machine. Sans interface interactive, claude -p dans une boucle shell avec une vérification externe reste la forme classique.

Les boucles remplacent-elles les prompts ?

Le prompt ne disparaît pas — il change de place. Vous l’écrivez une fois dans la spécification de la boucle, qui le relance ensuite ; de plus en plus souvent (workflows dynamiques, « c’est en fait un autre Claude qui rédige les prompts » selon Cherny), un agent orchestrateur rédige les prompts propres à chaque tâche. Ce qui remplace la rédaction des prompts comme savoir-faire humain, c’est la conception de la vérification : formuler des conditions qu’une machine ou un modèle au contexte neuf peut contrôler.

Quelle est la différence entre une boucle, une routine et un workflow dans Claude Code ?

Une boucle (/loop) relance un prompt selon un calendrier au sein d’une session Claude Code locale et cesse de se déclencher lorsque ce processus se termine ; une session passée en arrière-plan la maintient en marche. Une tâche planifiée dans le cloud (anciennement routine) reprend la même idée pour l’exécuter sur une infrastructure cloud : déclenchée par cron, API ou un événement GitHub, sans ordinateur portable requis. Un workflow est le graphe d’orchestration d’une seule exécution : un script JavaScript écrit par Claude qui crée et coordonne jusqu’à 1 000 subagents, avec des boucles et des branchements inscrits dans le code plutôt que dans le contexte.

Combien coûtent les boucles d’agents ?

La fourchette honnête va de « zéro à ruineux », et la variable déterminante est la conception. Les dispositifs de surveillance déterministes ne coûtent rien — ce sont des scripts planifiés. Les boucles utilisant un modèle sont facturées à l’itération : plafonnez-les (--max-iterations, --max-budget-usd), rendez les gains observables pour que la boucle puisse s’arrêter lorsqu’ils diminuent, et traitez chaque plafond comme une règle d’arrêt, pas comme une gêne. Les retours d’incident — des milliers de dollars en une nuit, 4 millions de tokens en quelques minutes — ont une cause commune : l’absence de condition d’arrêt externe.

Quand une boucle doit-elle devenir un graphe ?

Lorsque des dépendances apparaissent entre des travaux parallèles : une tâche a besoin de la sortie d’une autre, ou deux agents risquent de modifier les mêmes fichiers. Les boucles gèrent un dépôt et un objectif ; les graphes (workflows dynamiques, équipes d’agents, orchestrateurs externes) ajoutent l’ordonnancement des dépendances, la réservation des fichiers et une discipline de fusion. Ne passez aux graphes que lorsque des collisions apparaissent réellement — cette structure supplémentaire a un coût en observabilité et en mise en place.

Historique des modifications

Date Modification Source
2026-10-28 Version de référence mise à jour de v2.1.234 à v2.1.312 ; routines renommées, source d’installation de Ralph déplacée, échelle de vérification réécrite. Les routines sont désormais des tâches planifiées dans le cloud (« des tâches planifiées, anciennement routines », selon les termes de la documentation), l’ancien nom étant conservé là où l’URL, l’alias /routines et l’API /fire l’utilisent encore ; les exécutions démarrent en mode Auto sauf s’il est indisponible ; la citation sur le statut d’exécution, la branche par défaut, les connecteurs par défaut, les plafonds horaires et la règle de consentement du prompt déclenché proviennent de la documentation actuelle. Le plugin Ralph s’appelle ralph-loop dans anthropics/claude-plugins-official depuis le 6 janvier 2026 ; depuis le 26 octobre 2026, la marketplace claude-code l’installe depuis ce dépôt, et la note 14 renvoie au nouveau README. /goal : trois verdicts, quatre erreurs qui l’effacent, nouvelles tentatives et pauses (v2.1.269), calendrier de vérifications plafonné, limite d’un évaluateur qui ne lit que la conversation, condition de 4 000 caractères. /loop : règles d’arrière-plan et de reprise, loop.md, comparaison Cloud, Desktop et /loop. Workflows : les 16 agents simultanés sont désormais une valeur par défaut (de 1 à 256), 4 096 éléments par appel, ultracode, règles de réexécution à la reprise, /deep-research, attentes aux limites d’utilisation, avertissement Large workflow. Les équipes d’agents sont « expérimentales » ; le plan d’un coéquipier est approuvé automatiquement, sauf si vous basculez en mode plan un coéquipier en cours d’exécution dans le même processus, auquel cas le responsable l’examine ; TeammateIdle. Outils de tâches réécrits d’après la référence des outils : par défaut uniquement sur Opus 4.7, Sonnet 4.6, Haiku 4.5 et les modèles antérieurs, sur tous les modèles dans les sessions en arrière-plan et cloud. Reprise automatique à la réinitialisation d’une limite d’utilisation restreinte aux sessions interactives avec abonnement ; les sessions en arrière-plan et les exécutions -p s’arrêtent au plafond. L’échelle des bonnes pratiques, l’exigence de preuve et le tableau déterministe/non déterministe remplacent cinq citations qui ne figurent plus sur la page. La messagerie entre sessions atteint d’autres machines et des sessions cloud ; notify_when_idle. Uniquement dans l’historique des modifications, pour les opérateurs : une session reprise restaure un goal actif, et les tours d’un goal s’exécutent sans surveillance en mode Auto (en mode Manual, Claude demande toujours une confirmation avant les appels d’outils que vos paramètres n’autorisent pas déjà) ; ajoutez --output-format stream-json --verbose pour suivre la progression d’un goal headless ; arrêtez un /loop à intervalle fixe en demandant à Claude de l’annuler (Esc n’arrête qu’un loop à rythme adaptatif) ; une tâche récurrente peut démarrer avec un retard d’au plus la moitié de l’écart avec sa prochaine exécution, 30 minutes au maximum ; une tâche planifiée dans le cloud sans connexion GitHub saute des exécutions pendant 72 heures au plus, puis se désactive ; ~/.claude/workflows/ contient des workflows valables pour tous les projets ; /verify demande à Claude de construire et d’exécuter l’application, puis d’examiner le résultat. Éléments vérifiés et inchangés : la citation de /goal sur le nouveau modèle, les limites cron, Monitor, ScheduleWakeup {stop: true}, le plafond de 1 000 agents, la syntaxe de /ralph-loop et la citation sur le « principal mécanisme de sécurité ». 9, 12, 14, 16, 17, 18, 19, 29, 36, 37, 38
2026-09-21 Ajout de « Ce qu’une étude contrôlée révèle sur les composants d’un harness » à la section Maîtrise des coûts et sécurité : l’étude d’ablation par composant de Fan et al. (arXiv 2609.20804), ses quatre conclusions citées et mises en relation avec les budgets de dépassement de contexte, la planification comme levier de coût et la séparation exécution/modèle, ainsi que les réserves formulées dans l’étude. 35
2026-08-18 Version de référence mise à jour de v2.1.224 à v2.1.234, avec intégration de trois changements concernant les boucles. v2.1.234 : /goal se désactive automatiquement avec une notification en cas d’erreur irrécupérable pendant un tour et vérifie l’état des tâches en arrière-plan qui bloquent un objectif depuis au moins 30 minutes (CLAUDE_CODE_GOAL_CHECKIN_MINUTES, 0 pour désactiver) ; les sessions reprennent automatiquement lorsque la limite d’utilisation de claude.ai est réinitialisée (option dans /config) — le problème d’arrêt des boucles nocturnes au plafond d’utilisation, documenté dans ce guide, est désormais atténué avec l’authentification par abonnement. v2.1.233 : outils de tâches désactivés par défaut sur les modèles de génération actuelle (CLAUDE_CODE_ENABLE_TODO_TOOLS=1 les rétablit) ; la documentation des équipes d’agents confirme que les agents dépourvus d’outils de tâches « se coordonnent par messages plutôt que par la liste de tâches partagée » — réserve ajoutée au modèle d’équipes d’agents. Uniquement dans l’historique des modifications : création de subagents par bifurcation activée par défaut dans v2.1.232 (subagent_type: "fork" hérite de toute la conversation et du cache de prompts) et messagerie entre sessions par mention @. Éléments vérifiés et inchangés : limites cron, sémantique de Monitor/ScheduleWakeup, --max-budget-usd, toutes les références aux versions antérieures. 34
2026-08-08 Ajout de « Les deux premières boucles qui valent la peine d’être construites » (boucle de contrôle, boucle d’entretien) et de la note sur le bail de session à la section Gérer une flotte — retour d’expérience issu de la mise en place, pour ce site, du skill /gate et de la boucle pr-groundskeeper au niveau d’action (première proposition : PR #16). Revue ciblée validée avant publication. —
2026-08-07 Création du guide. Mécanismes de boucle à jour pour Claude Code v2.1.224 (routines en aperçu de recherche, workflows dynamiques, équipes d’agents, plugin Ralph, messagerie entre sessions, runners autohébergés) ; citations de Cherny vérifiées à partir des transcriptions primaires (Acquired, YC Startup School, Fortune, Platformer, Odd Lots, TechCrunch) ; attribution du terme « ingénierie des graphes » corrigée pour en reconnaître l’origine communautaire ; doctrine de vérification constituée à partir des articles d’ingénierie de Anthropic (novembre 2025 – juin 2026) et de l’analyse de convergence de Li (août 2026). 1–33


  1. Boris Cherny, entretien dans le podcast Acquired (« Acquired Unplugged », avec WorkOS), début juin 2026 — vidéo ; les points clés officiels de WorkOS (2 juin 2026) rendent ce passage ainsi : « Désormais, il ne soumet même plus de prompts directement à Claude. Il écrit des boucles — des workflows automatisés qui envoient des prompts à Claude et déterminent quoi construire ensuite. » La citation utilisée ici reprend la formulation de l’extrait largement diffusé et des synthèses contemporaines (par exemple, productmarketfit.tech, 8 juin 2026) — considérez-la comme une transcription légèrement condensée de l’extrait plutôt que comme une transcription officielle. Sa variante du même propos sur CNBC, rapportée par Business Insider (20 juin 2026) : « C’est un agent qui envoie des prompts à Claude. Je n’écris plus le prompt. » ↩↩

  2. Russell Brandom, « Le monde de l’IA se met aux boucles », TechCrunch, 22 juin 2026 — Cherny à Meta @Scale : « Il y a deux ans, nous écrivions le code source à la main… Et maintenant, nous arrivons au stade où des agents envoient des prompts à des agents qui écrivent ensuite le code » ; « Aussi considérable qu’ait été le passage du code source aux agents, les boucles représentent une étape tout aussi importante et tout aussi majeure » ; ses deux agents fonctionnant en permanence en arrière-plan (amélioration de l’architecture, recherche d’abstractions en double) soumettent des PR sans déclenchement humain. ↩↩

  3. Boris Cherny avec Diana Hu, « Construire Claude Code », YC Startup School, publié en juillet 2026 (texte issu de la copie de la transcription intégrale) — « Une boucle est essentiellement une tâche cron qui s’exécute localement pour Claude. Une routine, c’est la même chose, mais dans le cloud » ; les « 20 ou 30 routines de ce type qui tournent sur l’ensemble de nos bases de code » chez Anthropic ; « La vérification est probablement la chose la plus importante que les gens ne font pas correctement » ; la consigne de comparaison pixel par pixel entre Electron et Swift. ↩↩↩↩

  4. Casey Newton, entretien avec Boris Cherny, Platformer, 26 mai 2026 — « Chaque nuit, j’ai des centaines, parfois des milliers d’agents qui tournent pendant 5, 10, 20 heures » ; « Claude Code est écrit à 100 % par Claude Code depuis plus de six mois. » Voir aussi Bloomberg Odd Lots, 20 juillet 2026 : « 100 % de mon code est écrit par Claude Code depuis novembre dernier. » ↩↩

  5. Delba de Oliveira et Michael Segner, « Ingénierie des boucles : premiers pas avec les boucles », Anthropic, 30 juin 2026 — la définition, les quatre types de boucles (par tours, par objectifs, temporelles, proactives), « Les boucles qui écrivent du code ont besoin de boucles qui le vérifient » et « La qualité du résultat d’une boucle dépend du système qui l’entoure. » ↩

  6. Turing Post, « L’ingénierie des graphes existe-t-elle vraiment ? », FOD#159, 20 juillet 2026 — fait remonter le terme « ingénierie des graphes » à la publication de Peter Steinberger du 18 juillet et à sa diffusion par Hamel Husain, sans en attribuer la paternité à Cherny. L’attribution de « 85 % de nos ingénieurs » circule dans des publications tierces sur X (fin juillet 2026) sans lien vers une source primaire ; l’absence de confirmation résulte de la vérification menée pour ce guide (août 2026) à partir de l’entretien de YC Startup School, de Bloomberg Odd Lots et du compte rendu de Meta @Scale par TechCrunch. ↩

  7. Anthropic, « Construire des agents avec le Claude Agent SDK », 29 septembre 2025 — la boucle canonique (« recueillir le contexte → agir → vérifier le travail → recommencer ») et les trois catégories de vérification, les retours fondés sur des règles étant présentés comme la meilleure forme. ↩↩

  8. Anthropic, « Comment fonctionne la boucle d’agent », documentation de l’Agent SDK — déroulement des tours, arrêt de la boucle lorsqu’une réponse ne contient aucun appel d’outil, maxTurns/maxBudgetUsd (« Définir un budget est un bon choix par défaut pour les agents en production »). ↩

  9. Anthropic, documentation de /goal, consultée le 28 octobre 2026 : « Après chaque tour, un modèle vérifie si la condition est remplie » ; « l’achèvement est décidé par un nouveau modèle plutôt que par celui qui effectue le travail » ; le fonctionnement en wrapper autour d’un hook Stop et les trois verdicts (pas encore remplie, remplie, impossible) ; l’évaluateur « n’exécute pas de commandes et ne lit pas de fichiers de lui-même » ; la condition de 4 000 caractères et les clauses de tours ou de durée ; les quatre erreurs qui effacent un goal, les nouvelles tentatives et les pauses (v2.1.269+), et le calendrier des vérifications ; exécution sans interface via claude -p. ↩↩↩↩↩↩↩↩↩

  10. Anthropic, « Conception de harness pour le développement d’applications de longue durée », 24 mars 2026 — le trio planificateur–générateur–évaluateur, les réinitialisations de contexte avec transmissions structurées et « Chaque composant d’un harness encode une hypothèse sur ce que le modèle ne peut pas faire seul, et ces hypothèses méritent d’être mises à l’épreuve. » ↩

  11. pardel.dev, « Les boucles Claude : de la boucle while interne aux agents qui fonctionnent de manière autonome », 11 juillet 2026 — la classification en anneaux 0–5, quatre garde-fous (conditions de sortie vérifiables, permissions délimitées, itérations idempotentes, mesure des coûts) et le constat selon lequel la condition de /goal, évaluée par un modèle, peut être « convaincue » par une transcription au ton assuré. ↩↩↩

  12. Anthropic, documentation des tâches planifiées, consultée le 28 octobre 2026 : modes de /loop, plage adaptative d’une minute à une heure, loop.md, limites de CronCreate/CronList/CronDelete, outil Monitor, arrêt à l’initiative de l’agent via ScheduleWakeup {stop: true}, « Les tâches ne se déclenchent que lorsque Claude Code est en cours d’exécution et inactif », les règles d’arrière-plan et de reprise, et le tableau comparatif Cloud, Desktop et /loop. ↩↩↩↩↩↩↩↩

  13. Boris Cherny, publication sur X annonçant /loop, 7 mars 2026. ↩

  14. Anthropic, README du plugin ralph-loop, consulté le 28 octobre 2026 : fonctionnement du hook Stop, --max-iterations comme « principal mécanisme de sécurité », attribution à Huntley et périmètre limité aux tâches nécessitant une vérification approfondie. Le changement de nom correspond au commit 44328beed4 de claude-plugins-official, « Rename ralph-wiggum plugin to ralph-loop per legal guidance (#142) » (6 janvier 2026). Le dépôt claude-code a conservé une copie ralph-wiggum jusqu’au commit 10a5141d, « Install marketplace plugins from claude-plugins-official » (26 octobre 2026) : « ralph-wiggum est renommé ralph-loop, son nom dans le dépôt officiel », et la marketplace « les installe désormais depuis ce dépôt, de sorte que les identifiants de plugin existants continuent de fonctionner ». L’ancien chemin du README dans anthropics/claude-code renvoie désormais une erreur 404. ↩↩↩

  15. Thariq Shihipar et Sid Bidasaria, « Un harness pour chaque tâche : les workflows dynamiques dans Claude Code », Anthropic, 2 juin 2026 — « Claude peut désormais écrire son propre harness à la volée » ; décomposition/synthèse, vérification contradictoire, tournois. L’article de lancement évoque la réécriture de Bun et renvoie au fil X de Jarred Sumner sans fournir de chiffres ; les chiffres présentés ici — 535 496 lignes de Zig portées du 3 au 14 mai 2026 par 64 agents en parallèle, produisant une base de code Rust de plus d’un million de lignes — proviennent du récit de Sumner rapporté par The Register (14 mai 2026). Les taux de réussite aux tests annoncés varient selon les récits (de 99,8 % à 100 %) ; ce guide n’en reprend donc aucun. ↩↩↩

  16. Anthropic, documentation des workflows dynamiques, consultée le 28 octobre 2026 : « Un workflow transpose le plan dans le code » ; « Un script de workflow contient lui-même la boucle, les branchements et les résultats intermédiaires, de sorte que le contexte de Claude ne contient que la réponse finale » ; API agent()/pipeline()/parallel() ; ultracode ; le tableau des limites (16 agents simultanés par défaut, 4 096 éléments par appel, 1 000 par exécution) ; workflows enregistrés sous forme de commandes slash ; les agents réexécutés lors d’une reprise ; le workflow intégré /deep-research ; les attentes aux limites d’utilisation (v2.1.271+, autoContinueAtUsageLimit) ; l’avertissement Large workflow et la recommandation de taille ; les prompts d’agent() traités comme « du texte calculé par le script » en mode Auto. ↩↩↩↩↩↩↩↩↩↩↩

  17. Anthropic, documentation des équipes d’agents, consultée le 28 octobre 2026 : « Les équipes d’agents sont expérimentales et désactivées par défaut » ; communication entre pairs ; liste de tâches partagée avec dépendances et réservation des fichiers ; plans approuvés automatiquement, sauf si vous basculez en mode plan avec Shift+Tab un coéquipier en cours d’exécution dans le même processus, auquel cas le responsable les examine ; les hooks TaskCreated, TaskCompleted et TeammateIdle ; les subagents nommés lancés comme coéquipiers ; les messages des coéquipiers, qui ne valent jamais consentement. Le lancement correspond à l’entrée v2.1.32 du changelog (5 février 2026) : « Ajout de la fonctionnalité d’équipes d’agents en version de recherche préliminaire pour la collaboration multi-agents. » ↩↩↩↩↩↩

  18. Anthropic, « Automatiser le travail avec des tâches planifiées » (tâches planifiées dans le cloud, anciennement routines ; l’URL conserve l’ancien nom), consultée le 28 octobre 2026 : la définition, les déclencheurs, y compris les exécutions ponctuelles, les exécutions en mode Auto et les cas où elles s’interrompent pour attendre, l’enveloppe <routine-fire-payload> et la règle de consentement du prompt déclenché, les branches claude/, les connecteurs inclus par défaut, les limites horaires, les endroits où l’ancien nom apparaît encore, et « Ces résultats indiquent comment la session s’est terminée, et non si Claude a accompli le travail décrit dans votre prompt ; ouvrez donc l’exécution et lisez sa transcription pour voir ce qui s’est passé. » ↩↩↩↩↩↩↩↩

  19. Anthropic, documentation de la messagerie entre sessions, v2.1.224, consultée le 28 octobre 2026 : ListAgents/SendMessage, sockets de réception sur la même machine, sessions sur d’autres machines (v2.1.225+) et dans le cloud via Remote Control, notify_when_idle, et doctrine du consentement. ↩↩↩↩

  20. Anthropic, guide de démarrage des environnements autohébergés, bêta publique — claude self-hosted-runner, routage des routines, modèle de déploiement de l’orchestrateur. ↩

  21. Geoffrey Huntley, « Ralph Wiggum comme “ingénieur logiciel” », 14 juillet 2025, et « tout est une boucle ralph », 17 janvier 2026 — le modèle, les affirmations et les limites annoncées (projets créés de zéro uniquement, compétence de l’opérateur comme miroir). ↩

  22. Anthropic, « Des harness efficaces pour les agents de longue durée », 26 novembre 2025 — initialiseur et nouveaux agents de programmation s’appuyant sur des fichiers de suivi (« la compaction ne suffit pas »), et règle d’intégrité des tests. ↩↩

  23. Nicholas Carlini, « Construire un compilateur C avec une équipe d’instances de Claude en parallèle », Anthropic, 5 février 2026 — seize agents ; « J’ai construit un harness qui place Claude dans une simple boucle » ; verrous de tâches fondés sur des fichiers ; nécessité d’un vérificateur presque parfait ; environ 100 000 lignes / 2 000 sessions / 20 000 $. ↩↩

  24. Eva Khmelinskaya, « Faire fonctionner Claude Code de manière autonome toute la nuit », 18 mai 2026 — modes d’échec nocturnes (épuisement du contexte, compactions répétées et contre-productives, perte des règles) et correctifs (redirection des sorties, transmissions via STATUS.md, nouvelles sessions par phases avec /goal et budgets propres à chaque phase) ; Travis Sparks, « Tout le monde utilise mal les boucles Ralph », 4 février 2026 — doctrine du contexte neuf comparée aux boucles au sein d’une session, dérive au-delà d’environ 100 000 tokens. ↩

  25. Sean K, « J’ai accidentellement amené Claude à se poser la même question 1 966 fois », dev.to, 3 janvier 2026. ↩

  26. xr0am, « Ce qui manque aux boucles Ralph Wiggum », 24 janvier 2026 — collisions de dépendances comme signal qu’il faut passer à l’étape suivante ; Yash Thakker, « Graphes ou boucles », explainx.ai, 21 juillet 2026 — les quatre sens confondus dans le débat et le consensus qui se dessine. ↩

  27. Steve Yegge, « Bienvenue à Gas Town », 1 janvier 2026 — le plan de contrôle de 20 à 30 instances, les DAG de beads adossés à git, la production revendiquée et les réserves formulées par l’auteur lui-même. ↩

  28. Boris Cherny, « Les étapes de l’adoption de l’IA », publié via Anthropic, 16 juillet 2026 — la progression en cinq étapes et « à chaque étape… repérez et éliminez les prochains goulets d’étranglement, puis mettez en place les prochains garde-fous. » ↩

  29. Anthropic, bonnes pratiques pour Claude Code, consultée le 28 octobre 2026 : « Donnez à Claude quelque chose qu’il peut exécuter et qui renvoie un verdict de réussite ou d’échec » ; l’échelle en quatre échelons (prompt, /goal, hook Stop, /code-review) ; « demandez à Claude des preuves » ; le tableau des instructions déterministes et non déterministes ; le plafond de huit blocages du hook Stop et CLAUDE_CODE_STOP_HOOK_BLOCK_CAP ; l’anti-pattern « continue, boucle jusqu’à ce que ce soit fini ». ↩↩↩↩↩↩↩

  30. Yoko Li, « Savoir quand s’arrêter : l’art de faire converger une boucle », 6 août 2026 — les quatre conditions de convergence, l’expérience où 67 % des tokens sont gaspillés, l’exploitation des failles de la spécification et l’aveuglement aux coûts. ↩

  31. Anthropic, « Démystifier les évaluations des agents d’IA », 9 janvier 2026 — choix des évaluateurs, évaluation du résultat plutôt que du chemin suivi, pass@k comparé à pass^k et lecture des transcriptions comme moyen d’étalonnage. ↩

  32. techtrenches.dev, « La machine à sous qui code » (4 millions de tokens en cinq minutes) ; The Register, 5 janvier 2026, sur les limites d’utilisation ; analyses rétrospectives de la communauté recueillies sur dev.to et HN, janvier 2026. ↩

  33. Synthèse de l’accueil par la communauté : fils HN sur Gas Town (élément 46458936) et l’outillage Ralph (élément 46750937) — objections sur la capacité de revue et la maintenabilité (« Des montagnes de code que personne ne comprend ») ; publication de Steinberger de juin 2026 sur la « conception de boucles qui envoient des prompts à vos agents » (5,2 millions de vues, environ 61 % de réactions négatives selon l’analyse des réponses par explainx.ai). ↩↩

  34. Notes de version de Claude Code v2.1.233 (14 août) et v2.1.234 (17 août), ainsi que la documentation des équipes d’agents. Citation exacte de v2.1.234 : « /goal se désactive désormais automatiquement avec une notification lorsqu’un tour s’arrête sur une erreur irrécupérable (par exemple, une authentification révoquée, un solde de crédits épuisé ou un dépassement de contexte), au lieu de rester actif » ; « lorsque des tâches en arrière-plan font attendre un objectif pendant au moins 30 minutes, Claude vérifie désormais leur état au lieu d’attendre indéfiniment (définissez CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 pour désactiver ce comportement) » ; « Claude Code reprend désormais automatiquement votre session lorsque la limite d’utilisation de claude.ai est réinitialisée ; désactivez cette option dans /config ». Citation exacte de v2.1.233 : « Les outils de suivi des tâches et des choses à faire (TaskCreate/Get/Update/List, TodoWrite) ne sont plus disponibles sur Opus 4.8, Sonnet 5, Fable 5, Mythos 5 et les modèles plus récents ; définissez CLAUDE_CODE_ENABLE_TODO_TOOLS=1 pour les rétablir ». Citation exacte de la documentation des équipes d’agents : « Les agents sans les outils Task se coordonnent par messages plutôt que par la liste de tâches partagée. » Toutes ces sources ont été consultées le 18 août 2026. La page actuelle de /goal a depuis élargi ces deux comportements de /goal (quatre erreurs qui effacent le goal, un calendrier de vérifications plafonné, et 0 qui désactive désormais les vérifications et les nouvelles tentatives automatiques ; voir 9), et la page des workflows nomme le paramètre de limite d’utilisation autoContinueAtUsageLimit (voir 16). ↩↩↩↩

  35. Run-Ze Fan, Zihao Zhang, Simin Ma, Yebowen Hu, Shouju Wang, Kaiqiang Song, Fei Liu, Hamed Zamani et Xiaoyang Wang, « Une étude empirique de la conception de harness pour les agents de programmation », arXiv:2609.20804, soumis le 17 septembre 2026 (UMass Amherst, Emory University, UNC Charlotte ; travaux réalisés lors de stages chez Zoom Video Communications). Résumé cité ; stratégies et configurations tirées des sections 2.3 et 3.1. Modèles : Nemotron-3 30B, 120B et 550B, et Mistral-Medium-3.5-128B. Stratégies : T0 (aucune gestion du contexte), T1 (élision), T2 (élision et rappel), T3 (résumé), T4 (les trois), avec des budgets de 32k, 64k, 96k et 128k ; ablation de la planification et de l’espace d’action à 128k avec T4 ; 22 configurations par couple modèle/jeu d’évaluation. Discussion Hacker News à 224 points et 59 commentaires au 21 septembre 2026. ↩↩↩

  36. Anthropic, CHANGELOG de Claude Code, consulté le 28 octobre 2026. v2.1.286 (30 septembre) : « Correction des exécutions de routines dont la session cloud n’avait jamais démarré et qui apparaissaient comme Succeeded dans le volet Runs, sur la page de la routine et dans la barre latérale ; elles apparaissent désormais comme Failed. » v2.1.299 (14 octobre) : « Correction d’un mod qui soumet un prompt à la fin de chaque tour et prolongeait une exécution headless au-delà de --max-turns, de --max-budget-usd, d’une interruption ou de la fin de la conversation de l’hôte. » v2.1.302 (16 octobre) : « Correction des exécutions de routines qui apparaissaient comme Completed après l’arrêt inattendu de leur session cloud, et comme Cancelled lorsqu’elles étaient archivées avant d’avoir démarré, au lieu d’apparaître comme ayant échoué » et « Correction d’une exécution de routine planifiée ayant échoué en cours de route, qui était relancée depuis le début une heure ou plus tard, ce qui pouvait répéter du travail, comme publier deux fois le même rapport. » Version la plus récente au moment de la consultation : v2.1.312 (27 octobre 2026). v2.1.236 : « Ajout de notify_when_idle au SendMessage entre sessions : demander à une autre session Claude Code de cette machine d’envoyer une seule notification lorsqu’elle redevient inactive » (citation arrêtée à la proposition qui précède le tiret de l’entrée). ↩↩↩↩↩

  37. Anthropic, documentation du mode interactif, « Attendre la réinitialisation d’une limite d’utilisation », consultée le 28 octobre 2026 : « La reprise automatique est activée par défaut dans les sessions interactives connectées avec un abonnement claude.ai. Nécessite Claude Code v2.1.234 ou une version ultérieure. » ; l’attente prend fin lorsque « vous quittez Claude Code » ; elle n’est pas lancée d’elle-même pour « une réinitialisation à plus de 24 heures » ; elle n’est pas proposée dans les « sessions en arrière-plan et exécutions -p » ; et l’option de /config, Continue automatically at usage limit, avec le paramètre autoContinueAtUsageLimit. ↩↩↩

  38. Anthropic, référence des outils, « Disponibilité de l’outil Task », consultée le 28 octobre 2026 : les outils sont « disponibles par défaut uniquement sur Opus 4.7, Sonnet 4.6, Haiku 4.5 et les modèles antérieurs » ; les moyens de les activer (CLAUDE_CODE_ENABLE_TODO_TOOLS=1, --allowedTools, --tools) ; « Dans les sessions en arrière-plan et dans les sessions cloud, Claude Code fournit les mêmes outils sur tous les modèles, qu’ils soient listés ou non. » ; « L’ensemble par défaut décrit ici s’applique dans Claude Code v2.1.268 et les versions ultérieures. » ; et la méthode claude --settings pour les coéquipiers affichés dans des volets séparés. ↩↩↩↩