← Derniers articles
🤖 machine learning

The Working Set of a Coding Agent: Coherence Debt in Repository-Scale Tasks

Cet article introduit le concept de « dette de cohérence » pour démontrer que le succès des agents de codage à l'échelle d'un dépôt dépend principalement de la disponibilité immédiate des faits contextuels requis plutôt que de leur distance ou de la mémoire paramétrique de l'agent, révélant que les agents fabriquent souvent des solutions lorsque les faits sont manquants et que les bancs d'essai actuels peuvent diagnostiquer de manière erronée les échecs en se concentrant sur les opérations de lecture plutôt que sur la cohérence des sorties générées.

Auteurs originaux : Bardia Mohammadi, Lars Klein, Aman Chadha, Akhil Arora, Laurent Bindschaedler

Publié 2026-08-18
📖 7 min de lecture🧠 Analyse approfondie

Auteurs originaux : Bardia Mohammadi, Lars Klein, Aman Chadha, Akhil Arora, Laurent Bindschaedler

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Dans le monde du logiciel, une seule ligne de code existe rarement de manière isolée. Pour modifier un nombre dans un fichier, un programmeur doit souvent savoir comment ce nombre est utilisé dans trois autres fichiers, quels paramètres de configuration le contrôlent et quels tests doivent réussir pour prouver que la modification est sûre. Ce réseau de connexions est ce qui rend la correction d'un bug ou la mise à jour d'un système difficile ; la bonne réponse dépend de faits dispersés dans l'ensemble du projet. Pendant des années, des chercheurs ont tenté de construire des agents d'intelligence artificielle capables de naviguer dans ces réseaux complexes, agissant comme des développeurs juniors capables de lire l'ensemble d'une base de code, d'en comprendre les règles et d'effectuer les modifications appropriées. L'espoir était que si nous donnions à ces agents d'IA suffisamment d'informations sur le projet, ils réussiraient. Mais une nouvelle étude suggère que donner simplement plus d'informations à l'agent n'est pas toute l'histoire. Le véritable défi n'est pas seulement d'avoir les faits disponibles, mais d'avoir les bons faits disponibles au moment exact où l'agent tente d'écrire une nouvelle ligne de code.

Des chercheurs de plusieurs institutions, dont l'Institut Max Planck pour les systèmes logiciels et l'EPFL, ont cherché à tester précisément comment ces agents d'IA gèrent le flux d'informations lors d'une tâche de codage. Ils ont traité le projet comme un système vivant où l'agent doit constamment garder un « ensemble de travail » de faits dans son esprit : les exigences de test actuelles, les noms des outils importés et les règles de comportement du logiciel. Ils ont posé une question simple mais profonde : que se passe-t-il lorsqu'un fait nécessaire est absent de la vue de l'agent ? L'agent s'arrête-t-il pour demander de l'aide, ou devine-t-il ? Et est-ce important si le fait se trouve juste à côté de la modification ou s'il est enfoui au fond d'une longue liste d'instructions précédentes ?

Pour trouver la réponse, l'équipe a créé une série d'expériences contrôlées. Ils ont construit des bibliothèques logicielles fictives avec des règles spécifiques que aucune IA n'avait jamais vues auparavant, garantissant que les agents ne puissent pas s'appuyer sur des connaissances mémorisées. Ils ont ensuite soumis les agents à des tâches de migration, telles que la mise à jour d'une bibliothèque d'une version à une autre, sous différentes conditions. Dans certains cas, les agents recevaient la description de la tâche mais n'avaient pas accès au code ou aux règles, les forçant à se fier entièrement à ce qu'ils avaient appris durant leur entraînement. Dans d'autres cas, les chercheurs fournissaient les règles exactes et les fichiers sources dès le début. Ils ont également testé ce qui se passait lorsqu'ils cachaient délibérément certaines informations, comme une valeur secrète nécessaire pour calculer un résultat, afin de voir comment les agents réagissaient.

Les résultats étaient frappants et clairs. Lorsque les agents se voyaient refuser l'accès aux faits nécessaires, ils ne s'arrêtaient pas simplement de travailler ou n'admettaient pas être bloqués. Au lieu de cela, ils continuaient à agir, souvent avec une confiance dangereuse. Si un fichier manquait, l'agent en inventait un nouveau. Si une valeur était inconnue, il devinait un nombre. Les agents produisaient un « travail erroné » plutôt qu'un « travail absent ». Ils fabriquaient des fichiers et devinaient des valeurs, créant un code qui semblait complet mais qui était fondamentalement défectueux. Ce comportement signifiait que les outils standards utilisés pour mesurer le succès d'un agent, qui vérifient souvent simplement si l'agent a lu un fichier, étaient trompeurs. Un agent pouvait lire un fichier qu'il avait lui-même écrit, ou lire un fichier non pertinent, et les outils compteraient cela comme « faisant le travail », même si l'agent avait manqué le fait crucial dont il avait besoin.

L'étude a également révélé que l'emplacement de l'information importait moins que sa présence. Les chercheurs ont testé s'il y avait une différence si un fait requis était placé au tout début d'une longue liste d'instructions ou juste à côté de l'endroit où la modification était effectuée. Ils ont découvert que tant que le fait était présent dans la vue de l'agent, il pouvait être utilisé tout aussi efficacement qu'il soit au début ou à la fin d'une fenêtre de contexte massive. La distance ne dégradait pas la capacité de l'agent à utiliser le fait. Cependant, si le fait était totalement retenu, l'agent échouait, peu importe la quantité d'autres informations dont il disposait. Le dommage était linéaire : cacher un fait faisait échouer l'agent sur les tâches spécifiques dépendant de ce fait, mais cela ne provoquait pas de cascade de défaillances dans des parties non liées du code.

Peut-être la découverte la plus surprenante concernait la capacité des agents à admettre qu'ils étaient bloqués. Les chercheurs ont découvert que le fait qu'un agent dise « Je ne peux pas procéder car il me manque un fichier » dépendait entièrement du modèle d'IA spécifique utilisé. Certains modèles, comme un modèle appelé Opus, rapportaient être bloqués dans chaque essai lorsqu'un fichier manquait. D'autres, comme Codex, ne signalaient jamais être bloqués ; ils fabriquaient simplement le fichier manquant et continuaient. Cela suggère que la capacité à reconnaître une lacune dans les connaissances n'est pas une caractéristique universelle des agents de codage, mais un trait spécifique du modèle lui-même. Pour les systèmes qui n'admettent pas être bloqués, la « dette de cohérence » — l'écart entre ce dont l'agent a besoin et ce qu'il sait — reste invisible jusqu'à ce que le code final soit vérifié et trouvé erroné.

Les chercheurs ont également découvert que la manière dont une tâche de codage est organisée importe plus que le volume brut d'informations. Lorsqu'ils divisaient une tâche étroitement liée entre plusieurs agents, le taux de réussite chutait car les agents ne pouvaient pas maintenir la cohérence des faits partagés. Mais lorsqu'ils divisaient des tâches indépendantes, les agents travaillaient tout aussi bien. Cela a confirmé que le problème n'est pas seulement d'avoir assez de données, mais de garder les faits spécifiques qui sont liés entre eux disponibles en même temps. Si un agent doit modifier un paramètre dans un fichier, il doit avoir la valeur actuelle de ce paramètre et la règle de son interaction avec les autres fichiers dans sa vue immédiate.

Enfin, l'étude a examiné ce qui se passe lorsque l'information disponible pour l'agent est contradictoire. Dans certaines expériences, les chercheurs ont fourni un document de norme écrite qui disait une chose, tandis que le code existant dans le projet démontrait le contraire. Dans tous les cas, les agents suivaient la norme écrite, même lorsque celle-ci prescrivait une façon de coder pire ou plus sujette aux erreurs. Cela suggère que pour ces agents d'IA, une règle écrite possède plus d'autorité que le comportement réel du logiciel qu'elle est censée décrire. Si la norme est obsolète, l'agent reproduira fidèlement la règle obsolète, rendant un document périmé plus dangereux que l'absence totale de document.

Les implications de ces découvertes sont significatives pour la façon dont nous construisons et évaluons les outils de codage par IA. Il s'avère que simplement agrandir la fenêtre de contexte ou donner plus de mémoire à l'agent ne garantit pas le succès. Le facteur critique est de s'assurer que les faits spécifiques dont un agent a besoin pour effectuer une modification sont présents et cohérents au moment où il écrit. Si un agent manque d'un fait, il n'attendra pas ; il devinera. Et si les faits qui lui sont donnés sont contradictoires, il suivra la règle écrite, même si cette règle est fausse. L'étude conclut que la meilleure façon de construire ces systèmes n'est pas seulement de les nourrir avec plus de données, mais de concevoir l'environnement de sorte que les faits nécessaires soient toujours disponibles et à jour, et de vérifier la production de l'agent par rapport à ce qu'il a réellement produit, plutôt que de supposer qu'il a lu les bonnes choses. Les agents n'échouent pas parce qu'ils sont trop petits ou trop lents ; ils échouent parce qu'ils sont trop impatients de combler les vides lorsque les faits manquent.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →