Aller au contenu
/03Ingénierie de boucle9 min

Ce qui fait converger une boucle d'agent

Les tâches coûteuses n'ont pas trop vérifié. Elles ont perdu la capacité d'agir. Sur 7 565 tours Qwen3.6 exécutés localement, la preuve conservée sépare les boucles productives d'une coûteuse spirale de reconstruction.

Les tâches coûteuses n’ont pas passé trop de tours à vérifier. Elles ont perdu la capacité d’agir.

Dans les tâches de 60 tours ou plus, la lecture est montée à 82,6 % des tours tandis que les écritures tombaient à 1 %. Trois quarts de l’ensemble des tours ont été consacrés à rouvrir un fichier déjà lu au cours de la même tâche. À l’inverse, les tâches bouclées en 20 tours ou moins ont consacré près de quatre fois plus de leur activité à exécuter des commandes et des vérifications.

Cette transition de l’action vers la réacquisition est le résultat distinctif de notre analyse de 7 565 tours d’agent capturés pendant une campagne récente de l’usine Solario. Nous appelons le comportement observé la spirale de lecture. Notre diagnostic de travail pour son mécanisme dominant est l’éviction de la surface de référence : la preuve nécessaire à l’action suivante sort du contexte conservé et doit être reconstruite.

Les tâches bornées montrent le profil sain. Avec un fichier cible clair, le modèle Qwen3.6 exécuté localement sur un H100 les a bouclées en 8 à 20 tours, à environ une minute par tâche. Il lisait une surface bornée, écrivait ou éditait, vérifiait en continu et clôturait la tâche.

Cette distinction compte parce que les explications habituelles pointent dans la mauvaise direction. Le corpus ne suggère pas que la vérification soit la taxe, qu’un budget de tours plus large soit la réponse, ni que les modèles à poids ouverts aient atteint un plafond général.

Il pointe plutôt vers un échec de rétention de l’ensemble de travail, qui devient visible comme une transition de l’action vers la réacquisition. Une télémétrie d’exécution complète nous a permis de voir cette transition, d’en mesurer le coût et d’identifier où doit se placer le prochain contrôle.

La pression de contexte et la compaction sont des problèmes connus de l’ingénierie des agents. L’apport est ici plus opérationnel : une signature de défaillance en production, un contraste mesuré entre tâches bornées et tâches enlisées, et des contrôles qui peuvent remonter en amont, dans la conception de la charge de travail.

Le dossier de production a rendu le problème visible

Le corpus contient 7 565 enregistrements appariés de requêtes et de réponses, issus d’une campagne de construction applicative les 24 et 25 août 2026. Solario a capturé les entrées et sorties de modèle, les appels d’outils, la taille des résultats, les traces de raisonnement, la consommation de tokens et les raisons d’achèvement dans un journal de débogage en ajout seul de 619 Mo.

L’analyse porte sur 4 844 tours d’implémentation et 1 917 tours de remédiation. Chaque tour a été rattaché à la tâche qui le portait, d’après le contrat d’exécution présent dans le contexte système.

Ce niveau de détail est important. La consommation agrégée de tokens peut nous dire qu’une tâche a été coûteuse. Elle ne peut pas nous dire ce que le modèle faisait pendant que le coût s’accumulait. Le dossier de production, si.

La distribution était fortement étalée à droite. Sur 56 tâches d’implémentation, la médiane était de 34 tours et la moyenne de 78,2. Un petit nombre de tâches a atteint 144 tours ou plus, l’une d’elles accumulant 791 tours sur l’ensemble de ses tentatives et relances.

Le coût d’un bloc suivait le nombre de ces tâches enlisées de bien plus près que le nombre total de tâches. Un bloc comptant beaucoup de tâches bornées pouvait rester efficace. Un bloc comptant une ou deux tâches à large ensemble de travail pouvait dominer la campagne.

Les boucles saines passent leurs tours à agir

Nous avons comparé les tâches bon marché, celles bouclées en 20 tours ou moins, aux tâches enlisées de 60 tours ou plus.

Action principale Tâches bon marché Tâches enlisées
Lire un fichier 48,2 % 82,6 %
Exécuter une commande 27,2 % 7,3 %
Éditer un fichier 3,3 % 2,3 %
Écrire un fichier 6,9 % 1,0 %
Clôturer la tâche 8,3 % 0,5 %

La boucle saine a un rythme reconnaissable :

  1. Lire la surface déclarée.
  2. Faire une modification bornée.
  3. Exécuter la vérification pertinente.
  4. Corriger le résultat si nécessaire.
  5. Clôturer au regard du contrat de tâche.

La vérification n’est pas la taxe. Les tâches bon marché ont consacré 27,2 % de leurs tours à exécuter des commandes, près de quatre fois la part observée chez les enlisées. Elles vérifiaient leur travail en permanence et bouclaient malgré tout rapidement.

Le profil d’enlisement se définit par la disparition de l’action. Les écritures tombent à 1 % des tours, les éditions à 2,3 % et les signaux de clôture à 0,5 %. La lecture s’étend jusqu’à remplir la boucle.

Les bonnes boucles d’agent ne minimisent pas la vérification. Elles préservent assez de contexte pour continuer à circuler entre la preuve et l’action.

Éviction de la surface de référence et spirale de lecture

Trois quarts de chaque tour d’enlisement ont été passés à relire un fichier que le modèle avait déjà lu au cours de la même tâche. Pour les tâches bon marché, les relectures représentaient 6,2 % des tours.

La répétition n’était pas arbitraire. Les fichiers les plus fréquemment relus constituaient la surface de référence du travail le plus difficile : implémentations de services, entités du domaine, câblage d’injection de dépendances et code d’intégration.

Les traces sont cohérentes avec une boucle de rétroaction :

  1. Le contexte de base, les fichiers de référence et la transcription approchent la limite effective de contexte.
  2. La compaction de la transcription retire le contenu des fichiers les plus anciens.
  3. Le modèle relit correctement ces fichiers pour récupérer son état de travail.
  4. La transcription grossit à nouveau.
  5. La compaction se déclenche encore et retire la même surface de référence.

Les tâches bon marché ont connu environ 11 compactions de transcription. Les traces d’enlisement en connaissaient couramment entre 100 et 139. Dans la tâche à 791 tours, le modèle a effectué 691 relectures et franchi 139 événements de compaction.

Les erreurs d’outil semblent alimenter la même boucle. Les enlisées portaient environ sept fois la densité d’erreurs d’outil des tâches bon marché. Les traces suggèrent qu’une action échouée renvoyait souvent le modèle vers la lecture pour se réancrer, augmentant la pression de contexte avant la compaction suivante.

Le raisonnement suivait le même schéma. Les enlisées généraient environ trois fois plus de texte de raisonnement par tour tout en effectuant moins d’actions effectives. Dans ce corpus, ce schéma est plus cohérent avec une reconstruction répétée de l’état qu’avec une profondeur productive.

Pourquoi la remédiation converge

Le même modèle s’est comporté différemment à l’intérieur de l’étape de remédiation de Solario.

La remédiation part d’un constat explicite et reçoit la preuve pertinente dans son contexte. La boucle n’a pas à redécouvrir le problème avant d’agir. Son mélange d’actions reflète cette différence :

  • 46,6 % des tours lisaient des fichiers, contre 73,7 % sur l’implémentation ;
  • 14,2 % éditaient des fichiers, contre 4,9 % ;
  • 5,8 % clôturaient, contre 1,4 %.

La remédiation relisait tout de même des chemins. Intégrer la preuve dans le contexte n’a pas éliminé la répétition. Cela a toutefois préservé assez de la définition du problème et de la surface pertinente pour que le modèle continue d’agir.

Cela conforte un principe d’usine plus large. Une boucle d’agent a d’autant plus de chances de converger que le travail arrive avec un objectif borné, la preuve nécessaire pour agir et une condition d’achèvement vérifiable indépendamment.

Davantage de tours ne peut pas fabriquer ces propriétés. Elles doivent être conçues dans la charge de travail.

Déplacer le contrôle plus tôt

La boucle de production contient déjà des contrôles pour plusieurs taxes courantes. Les intentions d’échantillonnage adaptent la posture de génération à la tâche. Des gardes de dégénérescence détectent l’effondrement de la sortie. Des classes de réessai distinguent les échecs récupérables des échecs terminaux. La remédiation reçoit un chemin financé pour revenir à la conformité.

Ces mécanismes sont apparus dans le corpus en train de faire le travail pour lequel ils ont été conçus. La spirale de lecture était la taxe dominante sans contrôle correspondant.

Les mesures désignent cinq changements concrets.

Conserver la surface de référence déclarée

Les fichiers déclarés par la tâche devraient survivre à la compaction de la transcription, soit comme contenu épinglé, soit comme résumé stable. Cela adresse directement la part de 75,1 % de relectures chez les enlisées.

Lire les signatures avant les corps

Les gros fichiers devraient d’abord exposer leurs symboles exportés, leur structure et les plages demandées. Le contenu complet reste disponible au besoin, mais il n’a plus à occuper l’ensemble de travail par défaut.

Promouvoir les lectures par lot

L’opération de lecture par lot disponible n’a représenté aucun tour observé. Une surface de tâche déclarée peut être pré-lue ou chargée en une seule opération, réduisant à la fois le surcoût d’appels d’outils et la fragmentation de la transcription.

Estimer l’ensemble de travail dès la Conception

La génération de tâches peut estimer la surface de référence probable à partir des fichiers déclarés, de leur taille et du fan-in des dépendances. Une tâche qui dépasse un budget de contexte défini peut être découpée avant d’atteindre le Build.

Cela convertit une pathologie d’exécution en contrôle de conception.

Amortir la rétroaction d’erreur

Après un appel d’outil échoué, la boucle devrait agir sur l’erreur retournée avant de rouvrir toute la surface de référence. Les relances existantes peuvent intervenir plus tôt, avant que la tâche n’atteigne la profondeur de spirale.

Les modèles à poids ouverts sont productifs dans la bonne boucle

Le résultat positif n’est pas seulement que nous avons trouvé un problème.

La plupart des tâches bornées ne sont jamais entrées dans la spirale. Qwen3.6 a travaillé efficacement sur du calcul local, utilisé des outils, vérifié ses modifications et clôturé rapidement des tâches claires. Dans cette campagne, la remédiation était nettement plus orientée vers l’action lorsque la preuve était assemblée autour d’un constat précis.

L’usine a aussi rendu le coût restant lisible. Parce que chaque action, chaque résultat et chaque transition étaient enregistrés, nous avons pu distinguer la vérification de la relecture, le raisonnement utile de la reconstruction, et le coût ordinaire d’une tâche des quelques boucles qui dominaient la campagne.

C’est ce que la gouvernance apporte à l’ingénierie des agents. Elle fait plus qu’arrêter une sortie invalide. Elle rend le système de production assez mesurable pour être amélioré.

Notre article sur les artefacts structurés et les contrats exécutables décrivait comment l’intention survit à la frontière entre étapes. Cette analyse en ajoute le pendant à l’exécution : la preuve dont une tâche a besoin doit survivre assez longtemps pour que l’agent puisse agir dessus.

Les boucles convergentes préservent la preuve dont elles ont besoin et continuent d’agir. Solario dispose désormais du dossier de production nécessaire pour concevoir en vue de ce résultat.

Note de méthode

Ceci est une analyse descriptive d’une seule campagne applicative, non une comparaison contrôlée entre modèles ou configurations de boucle. La capture de débogage commence après le début de la campagne : le premier bloc et la majeure partie du second ne sont donc pas représentés. Les totaux par tâche cumulent tentatives et relances, ce qui reflète le coût total pour l’usine mais pas la durée d’une tentative ininterrompue.

Un tour est un enregistrement apparié d’une requête et d’une réponse de modèle. Le tableau des actions attribue chaque tour une seule fois à la catégorie d’appel d’outil principale retenue par l’extracteur. Une relecture signifie que le même chemin de fichier avait déjà été lu à l’intérieur de la même tâche attribuée, tentatives et relances antérieures comprises. Une compaction est un événement enregistré de réduction de transcription ; dans la configuration diagnostiquée, la compaction conservait 11 messages à l’intérieur d’une fenêtre de contexte nominale de 65 k tokens. L’analyse observe une forte association entre compaction, relecture et effondrement de l’action. La boucle d’éviction est notre interprétation causale des traces, pas le résultat d’une intervention contrôlée.

Les seuils utilisés pour la comparaison, 20 tours ou moins pour les tâches bon marché et 60 ou plus pour les enlisées, décrivent ce corpus et devraient être éprouvés sur les campagnes suivantes. Avant de traiter ceci comme un résultat général, nous comptons publier le classifieur d’action principale exact, les distributions par tâche et les traces anonymisées dans le registre de preuves de Solario.

Solario · Point of View /03

← Tous les articles