- SWE-agent corrige des bugs et des issues dans de vrais dépôts GitHub en transformant des modèles de langage (LMs) comme GPT-4 en agents d’ingénierie logicielle
- Il a résolu 12,29 % des issues sur l’ensemble du jeu de test SWE-bench, atteignant ainsi la meilleure performance sur l’ensemble du benchmark
Interface agent-ordinateur (ACI)
- Ces résultats ont été obtenus en concevant des commandes centrées sur le LM et des formats de retour qui permettent à l’agent d’explorer facilement le dépôt, de consulter, modifier et exécuter des fichiers de code.
- Cela est appelé interface agent-ordinateur (ACI), et le dépôt SWE-agent a été créé pour permettre d’itérer facilement sur le design d’ACI pour des agents de codage au niveau dépôt.
- Il est montré qu’un bon design d’ACI produit des résultats nettement meilleurs lors de l’utilisation d’agents.
Configuration
- Installer Docker et le lancer en local.
- Installer Miniconda et créer l’environnement
swe-agent avec conda env create -f environment.yml.
- L’activer avec
conda activate swe-agent.
- Exécuter
./setup.sh pour créer l’image Docker swe-agent.
- Créer un fichier
keys.cfg à la racine de ce dépôt et y renseigner les clés API requises ainsi que le token GitHub.
Utilisation
- Le pipeline SWE-agent comporte deux étapes. La première est une étape d’inférence qui prend une issue GitHub en entrée et renvoie une pull request visant à la résoudre.
- La deuxième étape n’est possible que pour les issues du benchmark SWE-bench, et consiste en une étape d’évaluation qui vérifie si la pull request générée résout réellement l’issue.
Évaluation
- Cette étape n’est possible que pour les issues du jeu SWE-bench.
- Pour évaluer la pull request générée, se déplacer dans le répertoire
evaluation/ puis exécuter ./run_eval.sh .
L’avis de GN⁺
- SWE-agent présente une approche innovante qui exploite les modèles de langage pour résoudre de vraies issues GitHub, élargissant ainsi les possibilités d’automatisation dans le processus de développement logiciel.
- Cette technologie a le potentiel de permettre aux développeurs de se libérer des tâches répétitives de correction de bugs afin de se concentrer sur des problèmes plus créatifs et plus complexes.
- En soulignant l’importance du design d’ACI, elle met aussi en avant le rôle essentiel de la conception d’interfaces optimisant l’interaction entre la machine et l’humain.
3 commentaires
Si ce genre d’agent travaille en posant aussi des questions comme ça aux développeurs, ça pourrait vraiment être très bien.
« J’ai transformé la méthode de reproduction décrite dans le bug report en code de test qui reproduit le problème. Tu peux jeter un œil à ce code pour me dire si j’ai bien compris ? »
« Plutôt que ce design, si on refactorise de telle et telle manière, je pense qu’on pourrait réduire le projet de 20 312 lignes de code au total ; do you approve? »
Voilà un projet open source séduisant.
Avis sur Hacker News
Commentaire sur les rapports de bug :
Commentaire sur le projet :
Commentaire sur la méthodologie utilisée :
Commentaire sur l’IA et les bug trackers :
Commentaire sur le benchmark SWEbench :
Commentaire sur la comparaison avec la démo :
Commentaire sur le travail de revue :
Commentaire sur les projets similaires :
Commentaire de suggestion aux auteurs :
Commentaire sur la contribution aux projets open source :