← Derniers articles
💻 computer science

ProjAgent: Procedural Similarity Retrieval for Repository-Level Code Generation

ProjAgent est un système de génération de code au niveau du dépôt qui améliore les performances en récupérant des fonctions basées sur la similitude procédurale grâce à un flux de travail agentique et en affinant les sorties via un retour d'analyse statique, atteignant un Pass@1 de 41,14 % sur le benchmark REPOCOD.

Auteurs originaux : QiHong Chen, Aaron Imani, Iftekhar Ahmed

Publié 2026-07-10
📖 6 min de lecture🧠 Analyse approfondie

Auteurs originaux : QiHong Chen, Aaron Imani, Iftekhar Ahmed

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

Imaginez que vous essayez d'écrire un nouveau chapitre pour un roman de mystère massif de 10 000 pages. Vous connaissez le point d'intrigue que vous devez atteindre, mais vous ne connaissez pas les noms des personnages, les règles spécifiques de la ville, ni la façon dont le détective résout habituellement les crimes. Si vous vous contentez de deviner, vous risquez d'inventer un personnage qui n'existe pas ou de transgresser les lois de la ville, ruinant ainsi l'histoire. C'est exactement ce qui arrive lorsqu'une Intelligence Artificielle essaie d'écrire du code pour un gros projet de logiciel.

Pendant longtemps, les assistants IA ont essayé de trouver de l'aide en cherchant des « sosies ». Si vous demandiez une fonction pour calculer la température, l'IA chercherait d'autres codes qui utilisaient le mot « température » ou qui lui ressemblaient en surface. L'article soutient que c'est comme essayer de trouver une recette de gâteau simplement parce que l'autre recette mentionne aussi du « sucre ». Cela passe à côté de la véritable magie : comment la cuisine se déroule réellement.

Les auteurs, Qihong Chen, Aaron Imani et Iftekhar Ahmed, ont conçu un nouveau système appelé ProjAgent. Ils ont découvert que le code le plus utile n'est pas toujours celui qui ressemble de la même manière ; c'est le code qui pense de la même façon.

La « Pensée » vs le « Langage »

L'article suggère que le code possède deux couches : les mots qu'il utilise (comme les noms de variables et les commentaires) et les étapes réelles qu'il suit pour résoudre un problème (la logique).

Imaginez deux chefs. Le Chef A prépare une pizza, et le Chef B prépare une salade.

  • L'ancienne méthode (Recherche lexicale/sémantique) : Si vous demandez de l'aide pour faire une pizza, l'ancienne IA ignorerait le Chef B parce qu'il fait une salade. Elle ne chercherait que d'autres chefs de pizza.
  • La nouvelle méthode (ProjAgent) : ProjAgent réalise que les deux chefs doivent faire la même chose : découper les ingrédients, vérifier s'ils sont frais et les mettre dans un bol. Même si l'un fait une salade et l'autre une pizza, leurs étapes procédurales sont identiques. ProjAgent trouve le Chef B et lui dit : « Hé, regarde comment le Chef B vérifie si la laitue est fraîche ! Tu peux utiliser cette même logique pour vérifier si ta tomate est fraîche ! »

L'article exclut explicitement l'idée que la similitude de surface (regarder les mots) soit suffisante. Les auteurs soutiennent que s'appuyer uniquement sur les mots ou sur un sens simple passe souvent à côté des étapes cruciales du « mode d'emploi » car différents projets utilisent des noms différents pour les mêmes actions.

Comment fonctionne ProjAgent : L'Agent Détective

ProjAgent agit comme un super détective doté d'un outil spécial. Voici comment il résout le mystère :

  1. Décomposition : Il prend le nouveau code que vous voulez écrire et le décompose en petites étapes logiques, comme « vérifier si le nombre est négatif » ou « convertir les unités ».
  2. La recherche par la « Pensée » : Au lieu de simplement lire les mots, ProjAgent utilise une astuce spéciale pour regarder les « pensées cachées » du modèle d'IA. Il élimine le vocabulaire sophistiqué et ne regarde que la logique pure. Il trouve d'autres codes dans le projet qui effectuent exactement la même danse mentale, même s'ils sont écrits dans une partie totalement différente du code source.
  3. La traque de l'Agent : Si la première recherche ne trouve pas assez de résultats, un « agent » numérique (un petit robot d'IA) part en chasse dans les fichiers du projet. Il lit des fichiers, cherche des fonctions et demande : « Y a-t-il quelque chose ici qui pense comme ceci ? »
  4. Double vérification : Pour s'assurer de ne pas avoir été trompé, le système utilise un outil d'« analyse statique ». Considérez cela comme un correcteur orthographique pour la logique. Il vérifie si le code s'exécute réellement sans planter. Si l'IA commet une erreur, le système dit : « Oups, cela ne fonctionnera pas », et demande à l'IA d'essayer à nouveau. Cette boucle se répète jusqu'à 10 fois jusqu'à ce que le code soit solide.

Les Résultats : Est-ce que cela a fonctionné ?

Les auteurs ont testé ProjAgent sur un benchmark appelé REPOCOD, qui contient 980 problèmes de codage réels provenant de 11 différents projets de logiciels.

  • Le Score : ProjAgent a obtenu un score Pass@1 de 41,14 %. Cela signifie qu'au premier essai, il a écrit du code fonctionnel pour environ 41 problèmes sur 100.
  • La Comparaison : Cela a battu les meilleures méthodes précédentes. Les anciennes méthodes de « recherche dense » n'ont obtenu que 28,83 %, et la « recherche parcellaire » (recherche par mots-clés) a atteint 26,58 %. Même un système de haut niveau appelé SpecAgent n'a atteint que 34,52 %.
  • La Preuve : L'article suggère que le plus grand bond en avant provient de la découverte de ces étapes « procéduralement similaires ». Lorsque la recherche procédurale a été supprimée, le score est tombé à 25,76 %. Lorsqu'ils ont supprimé la recherche sémantique (la partie de correspondance des mots), il est tombé à 32,29 %. Cela prouve qu'il faut à la fois le « comment » et le « quoi » pour réussir.

Ce que l'article ne prétend pas

Il est important de savoir ce que cet article ne dit pas.

  • Il ne prétend pas avoir résolu tous les problèmes de codage. Le score est de 41,14 %, ce qui signifie qu'il échoue encore plus de la moitié du temps.
  • Il ne dit pas que cela fonctionne pour tous les langages de programmation. Les tests ont été effectués uniquement sur des projets Python.
  • Il ne prétend pas que l'« agent » est parfait. Les auteurs admettent que l'agent manque parfois de temps ou de mémoire et ne peut pas trouver le meilleur code, suggérant que de meilleurs outils d'exploration sont encore nécessaires.

L'essentiel

L'article suggère que pour écrire du bon code pour de grands projets, l'IA doit cesser de simplement chercher des mots correspondants et commencer à chercher des modèles de pensée. En trouvant du code qui résout les problèmes de la même manière, même si les mots sont totalement différents, ProjAgent aide l'IA à écrire des logiciels plus performants et plus fiables. C'est un pas en avant, mais le voyage vers la génération de code parfait est encore en cours.

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 →