Comment les agents IA changent le développement de logiciels
Nous voulons connaître votre avis ! Répondez à notre rapide enquête sur l’IA et partagez vos idées sur l’état actuel de l’IA, la manière dont vous la mettez en œuvre et ce que vous attendez de l’avenir. En savoir plus
L’ingénierie logicielle fait partie des nombreux domaines qui évoluent avec les progrès rapides des grands modèles de langage (LLM). En quelques années, les LLM sont passés d’outils avancés de saisie semi-automatique de code à des agents d’IA capables de concevoir des logiciels, d’implémenter et de corriger des modules entiers et d’aider les ingénieurs logiciels à devenir plus productifs.
Comme beaucoup d’autres choses autour des LLM, une partie de l’enthousiasme suscité par les agents d’ingénierie logicielle alimentés par l’IA n’est pas fondée. Mais il y a aussi une véritable valeur à saisir, et les développeurs qui apprendront à utiliser la nouvelle génération d’outils d’IA seront capables de faire beaucoup plus en moins de temps.
Assistants de codage IA
Les LLM modifient l’expérience de codage de trois manières principales. La première est l’utilisation directe de modèles de frontière comme assistants. Les développeurs utilisent ChatGPT, Claude et d’autres interfaces de chatbot comme assistants de codage. Les modèles deviennent de plus en plus efficaces pour générer du code à partir de descriptions textuelles, améliorer un extrait de code que vous leur fournissez ou vous aider à déboguer du code.
Reconnaissant le cas d’utilisation pour le développement de logiciels, les fournisseurs de modèles ajoutent de nouvelles fonctionnalités pour améliorer l’expérience du développeur dans l’interface du chatbot. Par exemple, la nouvelle fonctionnalité Artifacts de Claude vous permet de visualiser et d’exécuter le code au fur et à mesure que vous l’utilisez avec le modèle.
Compte à rebours pour VB Transform 2024
Rejoignez les chefs d’entreprise à San Francisco du 9 au 11 juillet pour notre événement phare sur l’IA. Connectez-vous avec vos pairs, explorez les opportunités et les défis de l’IA générative et apprenez à intégrer les applications d’IA dans votre secteur. Inscrivez-vous maintenant
Les assistants de codage IA sont des outils plus avancés qui sont ajoutés aux environnements de développement intégrés (IDE) sous forme de plug-ins. Ces outils peuvent utiliser vos fichiers de projet et votre base de code comme contexte pour fournir des réponses plus précises et accomplir des tâches plus complexes.
Microsoft a été la première entreprise à se lancer dans ce domaine avec GitHub Copilot, lancé un an avant ChatGPT. Il s’agissait au départ d’un outil permettant d’écrire des extraits de code dans votre éditeur de code. Il a depuis évolué vers un assistant complet qui peut vous aider dans diverses tâches dans l’environnement de développement.
L’assistant de codage Q d’Amazon fournit des fonctionnalités similaires dans l’environnement de codage, notamment la saisie semi-automatique du code, les agents de conception et la migration du code entre différents langages de programmation.
Quelques startups ont également fait leur entrée dans ce domaine, notamment Tabnine, qui affirme avoir des millions d’utilisateurs et que les développeurs l’utilisent pour écrire 30 à 40 % de leur code. Parmi les autres acteurs figurent Replit, qui fournit un environnement de codage alimenté par son propre LLM, et Codeium, un assistant de codage IA qui peut s’intégrer à des dizaines d’IDE.
Agents d’ingénierie logicielle
La troisième façon dont les LLM changent le développement logiciel est par le biais des cadres d’agents. Fondamentalement, les agents d’IA sont plusieurs LLM qui reçoivent différentes invites système et sont chargés de travailler ensemble pour mener à bien un projet. Par exemple, un agent peut être un concepteur qui fournit un plan de haut niveau pour réaliser une tâche, comme la recherche de ressources qui fournissent des informations, la création de modules puis leur exécution sur une plateforme cloud. Un autre agent peut fournir une analyse plus détaillée de chacune de ces étapes. Un troisième agent peut être chargé d’écrire du code pour une tâche spécifique et de l’envoyer à un autre agent qui examine le code pour en vérifier la qualité et le renvoie pour correction. Enfin, un autre agent peut rassembler tous les éléments, les compiler, les tester et les approuver pour le lancement.
En théorie, les agents d’ingénierie logicielle peuvent recevoir une description d’un projet et le mener à bien de bout en bout. Par exemple, en mars, la start-up d’IA Cognition a annoncé Devin, présenté comme le premier ingénieur logiciel IA. Devin utilise des agents LLM et plusieurs outils tels qu’un navigateur, un IDE et un compilateur pour collecter des ressources, raisonner sur la tâche, écrire du code et évaluer le résultat. L’utilisateur peut suivre le processus de raisonnement et observer la progression de Devin dans son travail. Plusieurs démonstrations publiées par Cognition AI ont montré Devin en train d’accomplir différentes tâches, notamment un travail UpWork pour un projet de vision par ordinateur. Cela a donné l’impression que les agents IA pourraient bientôt remplacer les ingénieurs logiciels.
Devin n’est pas open source et n’est toujours pas ouvert au public. Mais il a inspiré d’autres projets, comme OpenDevin, un agent d’ingénierie logicielle open source doté de capacités similaires. Et d’autres agents de développement logiciel tels que GPT-engineer existent depuis plusieurs mois avec des démonstrations impressionnantes.
Hype ou réalité ?
Plusieurs études montrent que les assistants d’IA tels que GitHub Copilot augmentent la productivité des développeurs et les aident à rester concentrés sur leurs tâches au lieu de chercher sur le Web des solutions à leurs problèmes. ChatGPT et Claude sont également devenus des outils réguliers pour les développeurs afin de rédiger des idées de conception de logiciels, de préparer des versions initiales de code et d’acquérir de nouvelles compétences en codage.
Cependant, l’enthousiasme et le battage médiatique autour des assistants de développement de logiciels IA sont en partie injustifiés et ont attiré l’attention d’ingénieurs chevronnés. Par exemple, plusieurs vidéos montrent que les démonstrations en conserve de Devin ne sont pas ce qu’elles ont été présentées, et que les agents IA sont loin d’effectuer l’ensemble des tâches d’un ingénieur logiciel de niveau intermédiaire ou senior.
Certains craignent également que des outils tels que Copilot puissent produire du code non sécurisé qui aurait pu apparaître dans leurs données d’entraînement ou dans la base de code des utilisateurs. Les fournisseurs de ces outils s’efforcent en permanence d’ajouter des mesures de protection qui empêchent les modèles de générer du code non sécurisé. Il existe également un risque de cécité à l’automatisation, où les développeurs s’habituent trop à accepter le code généré par l’IA sans l’examiner. Cela peut donner lieu à un code imprévisible qui prend ensuite plus de temps à déboguer.
Ce qui est sûr, c’est que l’IA est loin de remplacer les développeurs de logiciels. Cependant, nous n’en sommes qu’aux prémices des assistants de codage IA, et il est indéniable que l’utilisation des LLM dans le développement de logiciels présente un grand intérêt. À mesure que l’IA s’implante dans de nouveaux domaines, la demande de développeurs de logiciels augmente également. À mesure que les outils et les modèles mûrissent, nous pouvons nous attendre à davantage de gains de productivité dans l’ingénierie logicielle.
La prochaine conférence VB Transform 2024 explorera plus en détail ces thèmes avec des panels d’experts discutant de l’avenir interfonctionnel de l’IA, avec la participation de leaders. Nous espérons vous y voir nombreux !