Friends Stock - stock.adobe.com

OpenAI Codex devient un agent d’ingénierie logicielle

Le fournisseur de LLM lance la préversion de recherche de Codex, un agent asynchrone spécialisé dans l’accomplissement de tâches propre à un ingénieur logiciel. Selon OpenAI, Codex ne remplacera pas les assistants de programmation, mais les complète.

OpenAI ressort Codex du placard. Pour rappel, Codex est originellement un grand modèle de langage spécialisé dans la génération de code. Il propulsait GitHub Copilot avant que la filiale de Microsoft laisse le choix à ses utilisateurs du LLM sous-jacent.

Désormais, Codex n’est plus seulement un LLM, mais également un agent disponible en préversion de recherche depuis ChatGPT Pro, Team et Enterprise.

Plus spécifiquement, il s’agit d’un agent spécialisé en ingénierie logicielle propulsé par une architecture « cloud native ». Codex pourrait « concevoir des fonctionnalités, répondre à des questions sur la base de code, résoudre des bugs, et proposer des pull requests à revoir ». Une variante locale de l’agent sera infusée dans les terminaux de développement à l’aide du projet Codex CLI, encore expérimental. Codex CLI interagit avec les API d’OpenAI et d’autres fournisseurs (Gemini, Groq, xAI), mais peut aussi prendre en charge Ollama.

Chacune de ces tâches associées à un environnement sandbox isolé auquel il faut associer le dépôt de code correspondant sur GitHub.

Ces sandbox dépendent de codex-universal, une image Docker contenant les paquets nécessaires à l’exécution des langages de programmation (Python, Node.js, Rust, Go, Swift, Ruby, JavaScript, Java, C++).

Depuis ChatGPT, Codex peut exécuter plusieurs tâches en parallèle à partir des « mots-prompts » « Ask » et « Code ». Ask est le terme pour les explications, le brainstorming et l’audit (détecter des failles ou des vulnérabilités). Code sert à enclencher le refactoring, la rédaction de tests ou la correction de bugs.

« Codex peut lire et éditer des fichiers, ainsi qu’exécuter des commandes, y compris des batteries de tests, des linters et des vérificateurs de type », explique le fournisseur de LLM. « L’exécution d’une tâche prend généralement entre 1 et 30 minutes, en fonction de sa complexité, et vous pouvez suivre la progression de Codex en temps réel ».

L’agent cite les logs des sandbox et les résultats de tests comme élément d’audit de son travail. Ces résultats peuvent être ensuite revu, sujet à révisions, faire l’objet d’un pull request dans GitHub ou placer dans une copie locale d’un dépôt. En cas de problème, l’agent rapporterait « explicitement » – en langage naturel – les difficultés qu’il a rencontrées. Il rapporte plus spécifiquement des « incertitudes », des erreurs ou l’absence de dépendances nécessaires à l’exécution d’une tâche.

Un fichier nommé AGENTS.md permet de renseigner à Codex la manière de naviguer dans la base de code, de répondre aux standards de l’entreprise et les commandes à effectuer pour exécuter les tests. Codex peut agir sans modifier ce fichier, mais les résultats sont meilleurs après ajustement.

Codex-1, un modèle de raisonnement qui surpasse o3 et o1 en programmation

Sous le capot, ces instructions sont transmises à codex-1, une variante du modèle de raisonnement OpenAI o3, affiné pour l’occasion. Pour entraîner le modèle, OpenAI a lancé une phase d’apprentissage par renforcement à partir de données issues d’environnements de développement réels. Le fournisseur dit avoir cherché à obtenir des réponses proches du « style humain » et des pull requests qui respectent les instructions de départ. Les tests réalisés en interne tendent à démontrer que codex-1 surpasse o3-high et o1-high sur les tâches de raisonnement liées à la programmation. Du fait de cette capacité de raisonnement et du temps nécessaire à l’exécution du code dans les sandbox, Codex répondrait en moyenne en huit à dix minutes.

Codex CLI a le droit à codex-mini-latest, une variante d’o4-mini conçu pour répondre plus rapidement tout en suivant les instructions.

En matière de gestion des accès, OpenAI assure que Codex n’écrit pas dans un dépôt GitHub sans permission. L’agent dispose de deux autorisations : cloner un dépôt de code et y pousser des pull requests. L’accès à Codex via ChatGPT se fait après authentification et les dépôts de code associés par l’utilisateur le sont au niveau de l’espace de travail de l’assistant IA. En clair, des développeurs peuvent utiliser Codex sur le même dépôt de code à condition qu’ils aient l’accès au repo et à l’espace de travail ChatGPT.

Codex : des limitations pour éviter les hallucinations

Selon OpenAI, Codex est déjà utilisé par les ingénieurs d’OpenAI au quotidien pour effectuer des « tâches clairement délimitées », comme rédiger, revoir, refaire ou renommer des tests. L’agent serait également utilisé pour rédiger des brouillons de la documentation, connecter des composants ou préparer les fondations à l’ajout de nouvelles fonctionnalités. « Les équipes prennent de nouvelles habitudes : elles trient des appels au moment de l’astreinte, elles planifient des tâches au début de la journée et délestent des tâches en arrière-plan […] ».

Outre les startups Temporal, Superhuman et Kodiak, OpenAI a réussi à embarquer dans Cisco dans le développement de ce produit.

De fait, l’intégration de Codex dans les IDE n’est pas finalisée. L’agent ne prend en charge que GitHub et il faudra probablement ajuster les images Docker pour différents environnements. De même, il y a toute une grammaire à apprendre pour que Codex fonctionne correctement. OpenAI recommande de formuler des indications claires, de fournir de la documentation complète, de cibler un seul package contenant un « petit » nombre de fichiers (environ 100), de transmettre les logs et les traces correspondant à une erreur, et de diviser les pull requests en tâches spécifiques au lieu de fournir une grande liste de changements à effectuer.

« Cela ne fonctionne pas à tous les coups, c’est pour cela que c’est une préversion de recherche », explique un chercheur d’OpenAI dans une vidéo de présentation. L’ensemble des ingénieurs qui ont testé le produit ont toutefois obtenu des résultats suffisamment convaincants pour le rendre disponible.

Les agents IA et les assistants de programmation voués à converger

La planification des tâches abordée plus haut découle à la fois de choix et de contraintes techniques. Puisque les modèles de raisonnement ont besoin de temps pour répondre à une demande d’un usager, OpenAI propose d’exécuter des tâches en parallèle. Et elle encourage les premiers utilisateurs de Codex à faire de même, en modifiant au passage leur routine matinale. « Lancez les tâches avant votre trajet ou votre café du matin, et revenez avec des résultats frais et prêts à être examinés », peut-on lire dans la documentation. Codex nécessite donc « un certain temps d’adaptation », car il ne se comporte pas comme un assistant. Les outils comme Codex CLI, GitHub Copilot, GitLab Duo, Tabnine, Amazon Q Developer ou encore Windsurf (ex-Codeium, en cours d’acquisition par OpenAI) retournent des résultats plus rapidement et permettent d’éditer de manière interactive le code.

C’est un des points inscrits sur la feuille de route de l’éditeur qui travaille sur cet agent depuis plus de deux ans. Il veut faire en sorte que les agents Codex traitent des tâches plus conséquentes de manière asynchrone, comme peut l’être un échange entre plusieurs membres d’une équipe de développement. En même temps, il proposera des outils pour des échanges en « temps réel » avec les modèles sous-jacents.

« À plus ou moins long terme, nous voyons ces deux modes d’interaction – couplage en temps réel et délégation de tâches – converger », écrivent les responsables d’OpenAI. « Les développeurs collaboreront avec des agents d’IA à travers leurs IDE et leurs outils quotidiens pour poser des questions, obtenir des suggestions et se décharger de tâches plus longues, le tout dans un flux de travail unifié ».

Dans cette logique, les agents et les modèles de raisonnement pourraient gérer les tâches asynchrones, tandis que les LLM plus traditionnels connectés aux IDE se chargeraient des tâches synchrones.

OpenAI veut également prendre en charge des fonctions spécifiques au développement d’UX, comme le fait de charger une image et de la retranscrire en éléments de code, comme des structures HTML et des feuilles CSS ou du code JavaScript. Une fonctionnalité que Figma promeut déjà. L’éditeur se penche par ailleurs sur un moyen de corriger ou de guider plus finement l’agent pendant qu’il exécute une tâche.

Pour l’instant, Codex n’est pas soumis à une limite d’utilisation ni à une facturation supplémentaire.

« Nous déploierons un accès avec des limites d’utilisation et des options de tarification flexibles qui vous permettront de vous procurer des crédits supplémentaires à la demande », avance OpenAI. « Nous prévoyons d’étendre prochainement l’accès aux utilisateurs Plus et Edu ».

Codex-mini-lastet, lui, est facturé 1,5 dollar pour un million de tokens en entrée, et 6 dollars pour 1 million de tokens en sortie. La mise en cache des entrées coûte 0,37 dollar pour un million de tokens.

Pour approfondir sur IA appliquée, GenAI, IA infusée