Loop Engineering

Concevoir la boucle dans laquelle un agent tourne, plutôt que d’écrire chaque prompt à la main.

Dernière mise à jour : 1 août 2026 · 11 min de lecture

agentsloop engineeringgraph engineeringCOGSméthodologie

Un matin, je tape une phrase dans mon agent et je pars me faire un café. Le temps de revenir, il a écrit du code, l’a testé, jeté les essais ratés, et me laisse deux ou trois choses à relire. Je n’ai pas écrit dix prompts. J’ai écrit une boucle. Le loop engineering, c’est concevoir cette boucle : décider ce que l’agent fait entre deux actions, quand il vérifie son travail, et comment il sait qu’il a fini.

De l’ingénierie de prompt à l’ingénierie de boucle

La bascule s’est faite en trois temps. En 2024, on écrivait de bons prompts, on était opérateur. En 2025, on lançait plusieurs agents en parallèle, on devenait manager. En 2026, les modèles sont devenus assez bons pour écrire leurs propres prompts, et le travail a encore remonté d’un cran : on conçoit le système qui fait tourner l’agent. La règle qui force ce changement est simple : si vous n’appuyez plus sur Entrée entre chaque étape, quelque chose d’autre doit décider quand le travail est assez bon.

Une boucle, concrètement

Avant, c’est vous qui étiez la boucle. Vous vous teniez entre chaque étape de l’agent : vous lisiez sa sortie, vous repériez l’erreur, vous décidiez de la suite, vous lui disiez de recommencer. Le loop engineering, c’est sortir de ce cycle-là et monter d’un cran, concevoir la piste sur laquelle l’agent court tout seul.

Voici la version la plus simple qui soit. Vous donnez à l’agent un objectif et une condition d’arrêt, et vous le laissez tourner :

Objectif : faire passer tous les tests.
Boucle : lance les tests, lis les échecs, corrige la cause la plus probable, relance.
On s’arrête quand : tous les tests sont verts, ou après 6 tours (et là, tu résumes ce qui reste).

C’est ça, une boucle. Et sur une tâche simple, ça marche vraiment. Débarrassée du jargon, elle tient en quatre gestes qui s’enchaînent et se répètent :

discover

aller chercher les vrais contrats & patterns

plan

le contrat + les conditions d’arrêt mesurables

execute

faire le travail, une tâche à 100 %

verify

vérifier, itérativement, pas à la fin

repeat: jusqu’à ce que la définition du « fini » soit atteinte

Mais pointez la même boucle vers quelque chose de plus flou, « améliore cette page », « fais des recherches sur ce sujet et rédige-les », et elle produit soit quelque chose d’excellent, soit, en silence, une coûteuse machine à médiocrité. Ce qui fait basculer d’un côté ou de l’autre, c’est la partie dont presque personne ne parle.

Le vérificateur est le goulot, pas le générateur

Une boucle, c’est un générateur branché sur un vérificateur : l’un produit, l’autre tranche si c’est au niveau. Et toute la différence se joue sur le second. Prenez la même tâche, deux fois, une fois sans barre, une fois avec :

Prise 1 : vérificateur faible

« Rends cette page d’accueil meilleure. » Comme « meilleure » n’est défini nulle part, l’agent réécrit le haut de page huit fois. Aucune version n’est clairement mieux. Tu as brûlé du budget, sans avancer d’un pouce.

Prise 2 : vérificateur fort

« Un seul bouton d’action, un titre de moins de douze mots, une page qui charge en moins d’une seconde. » Les huit essais se mettent à converger vers quelque chose de bon. La barre a changé. Le modèle est resté le même.

Le générateur, le modèle qui produit, est devenu abondant et bon marché : on peut le relancer cent fois sans y penser. Le vérificateur, lui, reste rare. C’est le renversement du métier :

Une boucle avec un « c’est assez bien ? » faible n’échoue pas bruyamment, elle réussit à produire de la médiocrité, avec confiance, des centaines de fois.

Et ça coûte cher, littéralement. Uber aurait plafonné ses ingénieurs à 1 500 $/mois d’outillage agent après avoir cramé son budget IA annuel en quatre mois. Une boucle sans barre ni plafond, c’est exactement ça : des jetons dépensés sans condition d’arrêt.

Écrire un bon vérificateur, c’est savoir précisément à quoi ressemble « du bon travail » pour votre problème. C’est ça, le vrai savoir-faire, et il ne se délègue pas au modèle : le générateur est interchangeable, votre définition du « bien », non. (Si vous avez fait du machine learning, c’est l’idée de la fonction de récompense : on ne dicte pas chaque geste à la machine, on définit ce qui compte comme réussi, et elle apprend à viser ça.) Une nuance, tout de même : tout ceci suppose que personne ne regarde la boucle tourner.

Quand un humain regarde, le vérificateur devient optionnel

Tout ce qui précède vaut quand la boucle tourne sans personne devant, une tâche planifiée, la nuit. Mais dès qu’un outil vous montre la boucle en train de tourner, et que vous êtes là, la donne change. Vous lisez, vous voyez le résultat, vous corrigez d’un geste, vous ajustez la barre, pendant que l’agent continue. Autrement dit, l’humain redevient le vérificateur, en direct. (C’est le parti pris de COGS, un agent de bureau qui rend la boucle visible au lieu de la lancer à l’aveugle.)

Quelqu’un d’habitué peut laisser une boucle tourner longtemps sans aucun vérificateur automatique, il jette un œil de temps en temps, corrige, relance. La définition du « fini » reste dans sa tête, et il l’applique au fil de l’eau.

C’est même parfois la seule bonne option. Pour tout ce qui demande du goût ou du jugement, « ce texte est-il bon ? », « cette interface est-elle élégante ? », « cette analyse tient-elle la route ? », aucune règle automatique ne capture vraiment le « correct ». Un humain tranche d’un coup d’œil, et mieux qu’un script. Chercher à automatiser la vérification du goût, c’est se compliquer la vie pour un résultat plus faible.

Rien de tout cela n’enlève sa force au vérificateur automatique : quand la réussite est simple à chiffrer (un test qui passe, un nombre à atteindre), il fait le tri tout seul et garde les coûts sous contrôle, indispensable quand personne ne regarde. Mais dès qu’un humain est dans la boucle, il devient un confort, pas une obligation. On peut très bien faire tourner une boucle longtemps sur le seul jugement humain.

Les boucles s’emboîtent

Cet humain qui regarde, en fait, tient sa propre boucle, plus lente que celle de l’agent. Andrew Ng en décrit trois, emboîtées comme des poupées russes. La plus rapide (quelques minutes) est celle de l’agent, qui itère tout seul. Autour, une boucle plus lente (des heures) : vous relisez, vous ajustez la barre, vous donnez une direction. Et tout autour, la plus lente (des jours, des semaines) : le monde réel, des vrais utilisateurs, des vrais résultats qui reviennent du terrain.

Boucle monde· jours / semaines · le retour du terrain (tests utilisateurs, mise en production, mesures)
Boucle humaine· heures · l’humain ajuste la barre et apporte ce que le modèle ignore
Boucle agent· minutes · discover→plan→execute→verify, à grande vitesse

Ce qui rend la boucle humaine irremplaçable, c’est que vous savez des choses que le modèle ignore : le contexte de votre métier, vos clients, ce qui compte vraiment. Aucun agent ne devine ça tout seul. Le rôle de l’humain, c’est d’apporter ce jugement-là, au bon moment, dans la bonne boucle.

Boucle ouverte vs boucle fermée

Toute boucle se situe entre deux pôles. Une boucle fermée : « refais ce rapport chaque lundi, dans ce format exact », les critères sont connus d’avance. Une boucle ouverte : « trouve un angle neuf pour ce lancement », on explore large. Choisir le bon pôle, puis écrire le vérificateur qui va avec : c’est ça, l’ingénierie.

Boucle ouverteBoucle fermée
Principeobjectif + conditions lâches, explore largecritères pré-épinglés, évalue chaque étape, stop explicite
Avantageoutput vraiment novateurbudget maîtrisé, prévisible, sûr à laisser tourner
Risquebrûle des tokens, dégénère vite en médiocriténe surprend pas, fait ce qui est spécifié, rien de plus
Vit ou meurt parle vérificateur (encore plus)le vérificateur

Et surtout : prenez l’outil le moins autonome qui fait le travail. L’autonomie est un moyen ; ce qui compte, c’est le résultat livré.

Du loop au graph : les boucles sont des nœuds

Une couche a poussé au-dessus du loop engineering : le graph engineering. L’idée : au lieu d’une seule boucle, on en relie plusieurs. Chaque nœud est une boucle qui produit quelque chose ; les liens entre nœuds décident lequel tourne ensuite, par exemple, « si le brouillon dépasse 500 mots, passe au nœud relecture, sinon publie ». Le loop, c’est l’artisanat d’un nœud ; le graph, l’art de les câbler.

Nœud A, boucle
{{ liquid }}
Nœud B, boucle
{{ liquid }}
Nœud C, boucle

Chaque nœud est une boucle (avec sa barre et sa condition d’arrêt). Les liens entre eux, écrits en liquid, décident quelle boucle tourne ensuite, selon l’état réel du travail.

Comment ça marche dans COGS

Jusqu’ici, tout ceci vaut pour n’importe quel outil de ce genre. Rendons-le concret avec COGS, un agent de bureau, dans la lignée de Claude Code, dont le parti pris est de montrer la boucle : on la voit tourner, on la met en pause, on l’édite à chaud. Voici comment les pièces s’assemblent :

La message playlist, le moteur

une petite liste de messages qui pilotent l’agent. Un ticker repose le message courant à chaque tour, uniquement quand l’agent est au repos ; un compteur max_loops borne le total. C’est la garantie déterministe contre la boucle qui ne s’arrête jamais.

Les variables liquid, le câblage

dans un message, {{ ma_variable }} est remplacé par sa valeur ; {{ une commande }} est exécutée au moment de l’envoi et sa sortie collée dans le message. On peut ainsi brancher la playlist sur l’état réel du dépôt et ré-injecter du contexte frais, c’est ce qui transforme une boucle en graphe (voir plus haut).

Le vérificateur déterministe

quand on en veut un automatique, ce sont de petites assertions (des « sidecars ») qui observent le vrai résultat à chaque étape, un test qui passe, un compteur, une page qui répond, plutôt qu’un second agent chargé de juger le premier.

Un écosystème connecté

l’agent pilote un vrai navigateur (il teste l’app comme un humain, va observer d’autres logiciels) et se branche à des intégrations tierces. La boucle n’est pas isolée : elle agit sur le monde réel.

Concrètement, un tour de vérification exécute une condition d’arrêt déterministe à même la playlist :

playlist.json, item VERIFY (liquid)
{
  "title": "VERIFY : la définition du « fini »",
  "text": "Point d'étape :\n\n{{ python plans/2026-08-01_.../stop_condition.py }}\n\nAgis sur la sortie."
}

# exit 0  → stdout collé comme message  (⏳ rappel de ce qui reste  |  ✅ bilan)
# exit ≠0 → la playlist AUTO-PAUSE       (🛑 blocage réel → l'humain)
playlist · GO / VERIFY
ticker

re-poste l'item quand l'agent est au repos · borné par max_loops

stop_condition.py
⏳ continue✅ au repos → humain🛑 auto-pause

La playlist tourne toute seule ; le stop-condition (déterministe) tranche à chaque tour VERIFY. Mais l'humain regarde et peut stopper à tout moment, la voie royale.

Tenir sur les longs scopes

Une boucle qui tourne dix minutes, n’importe quel outil la gère. Une boucle qui tourne des heures ou des jours, construire une app entière, dérouler un long process, bute sur deux murs : la mémoire de l’agent, et le fait de partir de zéro à chaque problème. Deux techniques les font tomber.

Écrire l’état sur disque, pas dans la tête de l’agent

La fenêtre de contexte d’un modèle est limitée : passé un seuil, elle se « compacte » (on résume l’historique, en perdant des détails), puis elle finit par repartir de zéro. Une boucle longue ne peut donc pas s’appuyer dessus pour se souvenir d’où elle en est. La parade : écrire l’état au fur et à mesure dans des fichiers, un plan, des étapes numérotées, un journal de ce qui a été fait. L’agent relit ces fichiers plutôt que sa mémoire volatile ; et un humain peut ouvrir le dossier et voir exactement ce qui s’est passé. (Chez nous, ce dossier structuré s’appelle une « initiative ».)

Chercher les patterns avant de construire

Un exemple : avant de dessiner le modèle de données d’un CRM, on ne demande pas à l’agent de l’inventer, on va lire comment l’industrie a déjà modélisé un CRM (les schémas standardisés existent), on les fusionne, on garde le meilleur, puison adapte. Le problème a presque toujours été résolu quelque part ; aller chercher la solution existante donne à l’agent un contexte énorme et évite de réinventer une roue carrée. C’est un réflexe, pas qu’une méthode de code, il vaut pour tout agent. (Chez nous, ce réflexe s’appelle le reality-driven design.)

Le point cardinal : l’agent ne s’arrête (presque) jamais lui-même

Un agent a toujours quelque chose à faire, même quand il déclare « c’est fini », il sous-estime presque toujours ce qui reste. L’auto-arrêt doit donc rester l’exception. À chaque tour de vérification, la condition d’arrêt recalcule la définition du « fini » et renvoie l’un de trois états :

⏳ pas fini (99 %)

un rappel court et à jour de ce qui reste à faire → renvoyé à l’agent comme message → il continue. C’est le garde-fou contre l’arrêt prématuré.

✅ fini (rare)

un bilan final ; la boucle se met au repos et attend la revue humaine, elle ne s’auto-termine jamais.

🛑 bloqué (exceptionnel)

un vrai blocage externe (décision produit, accès manquant) → l’agent consigne le blocage, la boucle s’auto-met en pause pour l’humain.

Et dans tous les cas, l’humain regarde de temps en temps et sait stopper la boucle lui-même : c’est la voie royale.

« Le loop engineering, c’est juste du buzz ? »

Depuis que le terme est devenu à la mode, les critiques ont pris du poids, et elles méritent d’être posées honnêtement, pas balayées :

  • « Ça brûle du budget la nuit. »
  • « Ça a quand même besoin des humains. »
  • « C’est juste une boucle for avec des étapes, rien de neuf. »

Presque toutes décrivent, en fait, ce qui se passe quand on saute le vérificateur. Une boucle sans barre brûle effectivement du budget ; une boucle avec une barre claire + un humain qui regarde fait l’inverse. Et oui, la mécanique n’a rien de neuf, c’est justement le point : le neuf, c’est que définir « fini » est devenu la compétence rare, pas l’écriture des prompts. Les deux choses sont vraies à la fois : le mot surfe une vague, et le fond en dessous est réel.


Écrire le vérificateur, c’est le nouveau prompt engineering

Bien menée, la démarche tient en quatre réflexes : définir « fini » de façon mesurable avant la première consigne ; fixer les critères à l’avance ; poser une limite de tours pour ne jamais tourner à l’infini ; et joindre le compte-rendu de ce que la boucle a fait à ce que vous rendez à l’humain. Le reste, générer, est devenu la partie facile.

Ta checklist de démarrage

  1. 1Prends la tâche répétable la moins risquée que tu as sous la main cette semaine.
  2. 2AVANT d’écrire la moindre instruction, écris ce que « fini » veut dire, en mesurable.
  3. 3Épingle les critères ; choisis boucle ouverte ou fermée.
  4. 4Pose une limite de tours (max_loops), jamais l’infini.
  5. 5Laisse tourner contre TA barre, pas celle du modèle ; regarde de temps en temps.
  6. 6Joins le compte-rendu de la boucle à ce que tu rends (le bilan du stop-condition).

Questions fréquentes

C’est quoi le loop engineering, en une phrase ?

Concevoir la boucle qu’un agent exécute, ce qu’il fait entre deux actions, quand il vérifie, comment il sait qu’il a fini, au lieu d’écrire chaque prompt à la main.

Quelle différence avec le prompt engineering ?

Le modèle écrit désormais ses propres prompts. La compétence rare a glissé : de « quoi taper » vers « définir ce que bon et fini veulent dire », puis laisser la boucle viser ça.

Faut-il forcément un vérificateur automatique ?

Non. Il est obligatoire quand personne ne regarde (une boucle qui tourne la nuit). Dès qu’un humain regarde, il devient le vérificateur, souvent meilleur, surtout pour les tâches de goût. Le script sert alors surtout à borner et à rappeler ce qui reste.

Loop engineering ou graph engineering ?

Le loop, c’est l’artisanat d’une boucle. Le graph, c’est relier plusieurs boucles (des nœuds) et décider laquelle tourne ensuite selon l’état réel du travail. L’un est la brique, l’autre le câblage.

Comment empêcher une boucle de tourner à l’infini ?

Une limite de tours dure (max_loops), une condition d’arrêt déterministe qui re-calcule « fini » à chaque tour, et, surtout, un humain qui regarde et sait stopper : c’est la voie royale.

Ça ne marche que pour coder ?

Non. Les exemples sont souvent du code parce que c’est là qu’on a le plus investi, mais les principes valent pour tout agent : rédaction, recherche, opérations, process métier.

Cet article s’appuie sur « Loop Engineering Guide (2026) » d’AI Builder Club, transposé sur notre stack COGS et enrichi de notre méthodologie (initiatives traçables, vérificateurs déterministes, Reality Driven Design).