L’agent Codex AI d’OpenAI, la dernière innovation de l’entreprise, introduit une approche nouvelle du codage – un environnement de "vibe-coding" alimenté par une interface de type ChatGPT. Bien que le concept puisse paraître initialement gadget, les capacités du nouvel agent Codex sont remarquablement impressionnantes.
OpenAI a qualifié Codex d’aperçu de recherche, indiquant qu’il est toujours en cours de développement actif. Actuellement, il est accessible aux abonnés ChatGPT Pro, Enterprise et Team-tier, avec des plans d’extension de la disponibilité aux utilisateurs Plus et Edu dans un avenir proche.
Selon l’annonce d’OpenAI, le nom Codex est associé à un outil de codage en évolution depuis 2021. Dans cette discussion, le terme "Codex" se réfère à la version nouvellement annoncée.
Codex réside sur les serveurs d’OpenAI et s’intègre aux référentiels GitHub. Les démonstrations suggèrent que Codex fonctionne comme un programmeur supplémentaire au sein d’une équipe.
Il peut être chargé de résoudre une série de bogues et d’exécuter la tâche en conséquence. Il sollicite également l’approbation des modifications de code, bien qu’il semble capable de modifier le code de manière autonome.
Codex peut analyser et modifier le code, identifier des problèmes spécifiques, identifier les domaines à améliorer et effectuer d’autres tâches de codage et de maintenance. Chaque tâche lance un nouvel environnement virtuel, permettant à l’IA de gérer tout, du concept et de la conception aux tests unitaires.
Un Changement de Paradigme dans le Codage
Cela marque un véritable changement de paradigme dans le codage. Auparavant, l’assistance au codage par l’IA impliquait principalement des fonctionnalités de saisie semi-automatique, générant automatiquement des lignes ou des blocs de code basés sur le code existant.
La technologie a progressé au point où l’IA peut écrire ou déboguer de petits segments de code. C’est l’aspect qui m’intéresse particulièrement concernant les tests de programmation de ZDNET.
Un autre rôle de l’IA est l’analyse de l’ensemble du système. Récemment, j’ai exploré un nouvel outil Deep Research qui peut déconstruire des bases de code entières et fournir des revues de code et des recommandations.
Codex atteint maintenant un point où des tâches de programmation entières peuvent être confiées à l’IA dans le cloud, de la même manière qu’on déléguerait des tâches à d’autres programmeurs d’une équipe ou à des programmeurs débutants qui apprennent la maintenance du code.
OpenAI décrit cela comme un "développement logiciel natif d’agent, où l’IA non seulement vous aide pendant que vous travaillez, mais prend en charge le travail de manière indépendante."
La vidéo de lancement a démontré la capacité de Codex à gérer plusieurs tâches simultanément, chacune opérant dans un environnement virtuel distinct et isolé.
Les programmeurs ont assigné des tâches à l’agent, qui a ensuite exécuté le travail de manière autonome. Une fois terminé, l’agent a fourni les résultats des tests et suggéré des modifications de code.
La démo présentait Codex effectuant des corrections de bogues, recherchant des fautes de frappe, offrant des suggestions de tâches et effectuant une refactorisation à l’échelle du projet (modification du code pour améliorer la structure sans modifier le comportement).
Les développeurs et concepteurs principaux sont familiers avec l’articulation des exigences et la révision du travail des autres. L’utilisation de Codex n’introduira pas de changements importants pour eux. Cependant, les développeurs qui manquent de compétences solides en matière d’articulation des exigences et de révision pourraient trouver la gestion de Codex un peu difficile.
Malgré cela, si l’outil fonctionne comme démontré, Codex permettra à de plus petites équipes et à des développeurs individuels d’en faire plus, de réduire les tâches répétitives et de répondre plus efficacement aux rapports de problèmes.
Pièges Potentiels et Stratégies d’Atténuation
Les premières expériences avec les capacités de codage de ChatGPT ont révélé une tendance à perdre la concentration ou à s’écarter de la direction voulue. Bien que cela ne soit pas catastrophique pour des blocs de code individuels, cela pourrait entraîner des conséquences imprévues et problématiques si un agent de codage est autorisé à fonctionner avec une supervision limitée.
Pour résoudre ce problème, OpenAI a formé Codex à respecter les instructions décrites dans un fichier AGENTS.md. Ce fichier, situé dans le dépôt, permet aux programmeurs et aux équipes de guider le comportement de Codex. Il peut inclure des instructions sur les conventions de dénomination, les règles de formatage et toute autre directive cohérente souhaitée tout au long du processus de codage. Il étend essentiellement les paramètres de personnalisation de ChatGPT à un environnement d’équipe centré sur le dépôt.
De plus, OpenAI a introduit une version de Codex appelée Codex CLI qui s’exécute localement sur la machine d’un développeur. Contrairement au Codex basé sur le cloud, qui fonctionne de manière asynchrone et fournit des rapports une fois terminé, la version locale fonctionne via la ligne de commande du programmeur et fonctionne de manière synchrone.
En substance, le programmeur entre une instruction et attend que le processus Codex CLI renvoie un résultat. Cela permet aux programmeurs de travailler hors ligne, en tirant parti du contexte local de leur machine de développement active.
Prototype de Recherche avec un Potentiel Prometteur
La démo était impressionnante, mais les développeurs ont souligné que ce qu’ils montraient et publiaient est un prototype de recherche. Bien qu’il offre ce qu’ils ont appelé des "moments magiques", il nécessite encore un développement important.
J’essaie de comprendre les implications spécifiques de cette technologie pour l’avenir du développement et mon propre processus de développement. Mon principal produit est un plugin WordPress open-source, avec des plugins add-on propriétaires. Codex pourrait potentiellement analyser le référentiel public pour le plugin central open-source.
Cependant, Codex pourrait-il gérer la relation entre un référentiel public et plusieurs référentiels privés dans le cadre d’un seul projet global ? Et comment se comporterait-il lorsque les tests impliquent non seulement mon code, mais aussi le lancement d’un écosystème supplémentaire complet – WordPress – pour évaluer les performances ?
En tant que programmeur solo, je reconnais les avantages potentiels d’un outil comme Codex. Même l’abonnement Pro à 200 $ par mois pourrait en valoir la peine. Embaucher un programmeur humain coûterait considérablement plus cher, en supposant que je puisse en tirer une valeur tangible et monétisable.
En tant que chef d’équipe et communicateur expérimenté, je me sens à l’aise de déléguer des tâches à quelque chose comme Codex. Ce n’est pas très différent de communiquer avec un membre de l’équipe sur Slack.
Le fait que Codex fournisse des recommandations, des versions préliminaires et attende mon approbation procure un sentiment de sécurité par rapport au simple fait de lui permettre de fonctionner librement dans mon code. Cela ouvre des possibilités intéressantes pour un nouveau cycle de vie de développement, où les humains définissent les objectifs, l’IA rédige des implémentations potentielles et les humains approuvent ou redirigent l’IA pour une autre itération.
Questions Sans Réponse et Implications Futures
Sur la base de mes expériences précédentes avec l’utilisation d’IA pour le codage, Codex pourrait potentiellement réduire le temps de maintenance et accélérer la livraison de correctifs aux utilisateurs. Cependant, son efficacité dans l’ajout de nouvelles fonctionnalités basées sur un document de spécifications reste floue. De même, la difficulté de modifier la fonctionnalité et les performances après la mise en œuvre de Codex reste à déterminer.
Il est à noter que le codage par l’IA évolue dans plusieurs entreprises à un rythme similaire. Je publierai bientôt un autre article sur l’agent de codage GitHub Copilot, qui partage certaines fonctionnalités avec Codex.
Dans cet article, j’ai exprimé des inquiétudes quant au fait que ces agents de codage pourraient déplacer les programmeurs débutants et débutants. Au-delà des implications pour les emplois humains, il y a aussi la question des opportunités de formation essentielles qui pourraient être perdues si nous déléguons une phase intermédiaire de la carrière d’un développeur à l’IA.
L’Industrie du Logiciel « Vers l’Inconnu »
Il y a une chanson dans La Reine des neiges II de Disney qui s’appelle « Vers l’inconnu », interprétée par Idina Menzel. La chanson reflète le conflit interne du personnage principal entre le maintien du statu quo et l’aventure « vers l’inconnu ».
Avec le développement de logiciels à base d’agents, au-delà du simple codage par l’IA, l’ensemble de l’industrie du logiciel s’engage dans un voyage « vers l’inconnu ». Au fur et à mesure que nous dépendons de plus en plus des systèmes basés sur l’IA pour développer nos logiciels, le nombre de mainteneurs qualifiés diminuera probablement. C’est acceptable tant que les IA continuent de fonctionner efficacement et restent accessibles. Cependant, permettons-nous à des compétences essentielles de s’atrophier et sacrifions-nous des emplois bien rémunérés pour la commodité de déléguer à une infrastructure basée sur le cloud et pas encore sensible ?
Le temps révélera les réponses, et espérons-le, cette révélation ne se produira pas lorsque nous serons à court de temps.
Envisageriez-vous de déléguer de vraies tâches de développement à un outil comme celui-ci ? Quel sera, selon vous, l’impact à long terme sur les équipes de développement ou les développeurs individuels ? Et êtes-vous préoccupé par la perte de compétences ou de rôles essentiels à mesure qu’une plus grande partie du cycle de vie du code est confiée à l’IA ?