Le paysage du développement logiciel a connu un changement de paradigme avec l'avènement d'assistants dotés d'IA, comme GitHub Copilot. Cependant, les solutions existantes n'exploitent pas toutes les capacités potentielles disponibles dans un IDE, telles que la construction, les tests, l'exécution du code, les opérations git, etc. Par conséquent, elles sont contraintes par leurs capacités limitées, se concentrant principalement sur la suggestion d'extraits de code et la manipulation de fichiers au sein d'une interface basée sur le chat.
Pour combler cette lacune, Microsoft présente AutoDev, un cadre de développement logiciel entièrement automatisé et piloté par l'IA, conçu pour la planification et l'exécution autonomes de tâches complexes de génie logiciel. AutoDev permet aux utilisateurs de définir des objectifs complexes de génie logiciel, qui sont assignés aux agents IA autonomes d'AutoDev. Ces agents IA peuvent effectuer diverses opérations sur une base de code, y compris l'édition de fichiers, la récupération, les processus de construction, l'exécution, les tests et les opérations git.
Ils ont également accès aux fichiers, à la sortie du compilateur, aux journaux de construction et de test, aux outils d'analyse statique, etc. Cela permet aux agents d'intelligence artificielle d'exécuter des tâches de manière entièrement automatisée avec une compréhension complète des informations contextuelles requises. En outre, AutoDev établit un environnement de développement sécurisé en confinant toutes les opérations dans des conteneurs Docker. Ce cadre intègre des garde-fous pour assurer la confidentialité des utilisateurs et la sécurité des fichiers, permettant aux utilisateurs de définir des commandes et des opérations spécifiques autorisées ou restreintes au sein d'AutoDev.
Dans son évaluation, Microsoft a testé AutoDev sur l'ensemble de données HumanEval, obtenant des résultats prometteurs avec 91,5% et 87,8% de Pass@1 pour la génération de code et la génération de test respectivement, démontrant son efficacité dans l'automatisation des tâches de génie logiciel tout en maintenant un environnement de développement sécurisé et contrôlé par l'utilisateur.
AutoDev : Développement automatisé piloté par l'IA
Les assistants de codage IA dans les IDE, présentent des fonctionnalités limitées et manquent de conscience contextuelle. Souvent, ils n'exploitent pas toutes les capacités de l'IDE, telles que l'invocation de linters, de compilateurs ou l'exécution d'opérations en ligne de commande. Par conséquent, les développeurs doivent toujours valider manuellement la syntaxe et s'assurer de l'exactitude du code généré par l'IA, exécuter la base de code et inspecter les journaux d'erreurs.
AutoDev comble cette lacune en offrant aux agents IA autonomes la possibilité d'exécuter des actions telles que l'édition de fichiers, la récupération, la construction, le test et les commandes CLI directement dans le référentiel pour atteindre les objectifs définis par l'utilisateur, permettant ainsi la réalisation de tâches complexes de manière autonome.
AutoDev offre les caractéristiques clés suivantes :
- la possibilité de suivre et de gérer les conversations entre l'utilisateur et les agents d'intelligence artificielle grâce à un gestionnaire de conversations
- une bibliothèque d'outils personnalisés pour atteindre une variété d'objectifs liés au code et à l'ES
- la possibilité de programmer différents agents d'intelligence artificielle pour travailler en collaboration vers un objectif commun grâce à un planificateur d'agents
- la possibilité d'exécuter du code et d'effectuer des tests grâce à un environnement d'évaluation.
L'image suivante illustre un exemple de haut niveau du flux de travail d'AutoDev :
L'utilisateur définit un objectif (par exemple, tester une méthode spécifique). L'agent d'intelligence artificielle écrit les tests dans un nouveau fichier et lance la commande d'exécution des tests, le tout dans un environnement d'évaluation sécurisé. Les résultats de l'exécution des tests, y compris les journaux d'échec, sont ensuite intégrés à la conversation. L'agent d'intelligence artificielle analyse ces résultats, déclenche une commande d'extraction, incorpore les informations extraites en modifiant le fichier et relance l'exécution du test. Enfin, l'environnement fournit un retour d'information sur le succès de l'exécution du test et la réalisation de l'objectif de l'utilisateur.
L'ensemble du processus est orchestré par AutoDev de manière autonome, ne nécessitant aucune intervention du développeur au-delà de la définition de l'objectif initial. En revanche, avec les assistants de codage IA existants intégrés dans les IDE, les développeurs devraient exécuter manuellement les tests (par exemple, exécuter pytest), fournir des journaux d'échec à l'interface de discussion de l'IA, éventuellement identifier des informations contextuelles supplémentaires à intégrer, et répéter les actions de validation pour assurer le succès du test après que l'IA ait généré un code révisé.
Vue d'ensemble du Framework AutoDev
Conclusion
Pour résumer, AutoDev est un framework permettant aux agents d'intelligence artificielle d'interagir de manière autonome avec les référentiels, d'effectuer des actions et de s'attaquer à des tâches complexes d'ingénierie logicielle.
AutoDev transfère la responsabilité de l'extraction du contexte pertinent pour les tâches de génie logiciel et la validation du code généré par l'IA des utilisateurs (principalement les développeurs) aux agents d'IA eux-mêmes. Les agents sont désormais habilités à extraire le contexte par le biais d'actions de récupération et à valider leur code généré par le biais d'actions de construction, d'exécution, de test et de validation. Le rôle du développeur dans le cadre d'AutoDev passe des actions manuelles et de la validation des suggestions de l'IA à celui d'un superviseur qui surveille la collaboration multi-agents sur les tâches, avec la possibilité de fournir un retour d'information. Les développeurs peuvent suivre la progression d'AutoDev vers ses objectifs en observant la conversation en cours utilisée pour la communication entre les agents et le référentiel.
L'évaluation d'AutoDev sur le jeu de données HumanEval pour la génération de code et de test a montré des résultats impressionnants, atteignant un score Pass@1 de 91,5 pour la génération de code : le deuxième meilleur résultat sur le tableau de classement au moment de la rédaction, et le meilleur parmi les approches ne nécessitant pas de données d'entraînement supplémentaires. AutoDev a également excellé dans la génération de tests avec un score Pass@1 de 87,8%, atteignant une couverture de 99,3% des tests réussis.
Pour l'avenir, l'objectif de Microsoft est d'intégrer AutoDev dans les IDE sous la forme d'un chatbot et de l'incorporer dans les pipelines CI/CD et les plateformes d'évaluation des relations publiques.
Source : "AutoDev: Automated AI-Driven Development" (Microsoft)
Et vous ?
Quel est votre avis sur AutoDev ?
Pensez-vous qu'un framework comme AutoDev est crédible ou pertinent ?
Voir aussi :
GPT Pilot pourrait coder l'ensemble d'une application pendant que vous supervisez l'écriture du code, d'après son créateur
GPT-4 est capable d'améliorer ses performances de 30 % en utilisant un processus d'auto-réflexion, consistant à demander au modèle d'apprendre de ses erreurs pour pouvoir ensuite s'auto-corriger
L'utilisation de l'assistant d'IA GitHub Copilot pour la programmation entraîne une baisse de la qualité globale du code et une quantité importante de code redondant, selon une étude