Pour gérer vos consentements :

AutoDev : GPT-4 en agent autonome de développement logiciel

Vers des systèmes de développement logiciel totalement autonomes, tests et validations compris ? Microsoft y tend avec AutoDev.

Six de ses chercheurs ont développé ce framework qui s’inspire notamment d’Auto-GPT, de LATS et de Reflexion.

Auto-GPT associe GPT-3.5 et GPT-4 à un « bot compagnon » qui s’appuie sur eux pour réaliser les étapes nécessaires à l’accomplissement d’un objectif.
Le framework LATS (Language Agent Tree Search) exploite l’algorithme de recherche arborescente Monte-Carlo pour mutualiser les capacités de planification, de raisonnement et d’action de LLM.
La méthode Reflexion établit un système de « feedback linguistique » sans modification de poids : un agent réfléchit verbalement à partir de signaux et conserve cette réflexion dans une mémoire épisodique.

AutoDev synthétise ces éléments et les adapte au développement logiciel en les intégrant dans le flux des IDE. Il se compose de quatre grandes briques : un gestionnaire de conversation, une bibliothèque d’outils, un planificateur d’agents et un environnement d’évaluation.

AutoDev s’appuie sur Docker…

Les règles du système (nombre d’agents, responsabilités, commandes qui leur sont accessibles…) se configurent par des fichiers YAML.

Une fois l’objectif défini, le gestionnaire de conversation prend le relais. Il interprète les réponses que génèrent les agents, en extrayant commandes et arguments. Puis il les valide (syntaxe, sémantique, respect des permissions…) et, le cas échéant, invoque la bibliothèque d’outils pour déclencher les actions correspondantes.

Les résultats de l’évaluation (dans un environnement Docker) reviennent vers le gestionnaire de conversation. Celui-ci sélectionne les éléments importants, les résume éventuellement et ajoute un message structuré à la conversation, garantissant une forme d’explicabilité.

La boucle reprend jusqu’à ce que le gestionnaire détermine qu’il peut conclure la conversation. Cela peut se produire lorsqu’un agent signale que la tâche est accomplie. Mais aussi quand des problèmes sont détectés ou qu’on a atteint le nombre maximal d’itérations ou de tokens autorisé.

Le planificateur utilise trois algorithmes :

– Round-Robin (invocation séquentielle des agents, chacun pouvant exécuté un nombre prédéterminé d’opérations)
– Basé sur les tokens (un agent peut effectuer des opérations jusqu’à ce qu’il émette un token signifiant qu’il a accompli une tâche)
– Basé sur un ordre de priorité prédéfini

La bibliothèque d’outils donne accès à des commandes :

– D’édition (write, edit, insert, delete)
– De récupération (grep, find, ls)
– De build, run, test et validation
– D’opérations Git (commit, push, merge)
– De communication (talk pour envoyer des messages ; ask pour demander du feedback utilisateur)

… et sur GPT-4

L’évaluation des performances d’AutoDev s’est faite à partir du benchmark HumanEval. Celui-ci regroupe 164 problèmes contenant chacun une signature de fonction, un docstring et des tests unitaires (7,7 en moyenne).

Pour évaluer les performances en génération de code, on fournit à AutoDev un fichier contenant signature et docstring, l’objectif étant d’implémenter la méthode.
Pour la génération de tests, on enlève ceux du dataset et on demande à AutoDev de les recréer.

Les équipes de Microsoft ont opté pour une comparaison avec les méthodes LATS et Reflexion, en reprenant les données du leaderboard HumanEval. Ils y ont ajouté une baseline GPT-4 – issue du rapport technique d’OpenAI pour la partie code et déterminée à la main pour la partie test.

L’évaluation se fait avec une seule commande de communication : stop, avec laquelle un agent peut signaler qu’il a accompli une tâche. Donc sans feedback humain. Les résultats sont pris à la première tentative (Pass @1).

Combien ça coûte en tokens ?

La génération de code implique en moyenne 5,5 commandes, pour une conversation de 1656 tokens. Ces valeurs sont un peu plus élevées pour la génération de tests (environ 6,5 commandes et 1863 tokens).
Pour comparaison, la baseline GPT-4 consomme 200 tokens en génération de code et 373 en génération de tests. C’est l’environnement d’exécution qui entraîne les plus gros coûts de fonctionnement pour AutoDev. Exécuter les commandes CLI dans l’environnement utilisateur aurait économisé des ressources, mais les chercheurs ont privilégié la sécurité.

Le nombre un peu plus élevé d’actions nécessaires pour générer des tests tient, en particulier, à l’invocation de commandes indisponibles ou au format incorrect. La raison : une tendance des agents à mélanger langage naturel, code et commandes.

Vu la relative simplicité du dataset HumanEval, l’expérimentation s’est limitée à un seul agent GPT-4. On nous assure toutefois que « des résultats préliminaires indiquent l’impact positif d’une collaboration multiagents », Entre autres par l’implication d’un modèle réviseur, capable de suggérer des modifications au modèle développeur avant l’exécution de la validation.

En l’état, AutoDev s’utilise comme commande CLI, la conversation étant accessible dans VS Code. L’idée est d’intégrer complètement le système dans les IDE, sous forme de chatbot. Puis de viser l’intégration dans les pipelines CI/CD et les outils de révision de PR.

Illustration principale © Siqarus – Adobe Stock

Recent Posts

Science & Vie lance son Incubateur

Avis aux ingénieurs, inventeurs, startuppeurs...Lancé en partenariat avec l’INPI, l’accélérateur de startup 50partners, et les…

7 heures ago

À quoi s’attendre avec les PC Copilot+ ?

Les premiers « PC Copilot+ » arrivent sur le marché en juin. Tour d'horizon des…

8 heures ago

Slack défend sa politique d’exploitation de données

Attaqué sur son usage des données des clients pour l'entraînement d'IA, Slack tente de justifier…

15 heures ago

Ce qui change avec la version 2024 du référentiel d’écoconception de services numériques

Un an et demi après sa publication initiale, le RGESN est mis à jour. Tour…

1 jour ago

Microsoft x Mistral AI : l’Autorité britannique de la concurrence renonce à enquêter

Le régulateur britannique de la concurrence renonce à une enquête approfondie sur le partenariat de…

1 jour ago

MFA obligatoire sur Azure : ce que prépare Microsoft

À partir de juillet 2024, Microsoft imposera progressivement le MFA pour certains utilisateurs d'Azure. Aperçu…

2 jours ago