La marche implacable de l'intelligence artificielle remodèle les industries, et l'ingénierie logicielle est à l'avant-garde de cette transformation. Les outils alimentés par l'IA ne sont plus des concepts futuristes mais des assistants pratiques, augmentant les capacités des développeurs et rationalisant les flux de travail complexes. OpenAI, un nom de premier plan dans la recherche en IA, a récemment dévoilé sa dernière contribution à ce paysage en évolution : ChatGPT Codex, un agent d'ingénierie logicielle basé sur le cloud, conçu pour s'attaquer à une multitude de tâches de codage en parallèle. Cette nouvelle offre, initialement disponible pour les utilisateurs de ChatGPT Pro, Team et Enterprise, avec les versions Plus et Edu à l'horizon, promet de redéfinir la façon dont les développeurs interagissent avec leurs bases de code et construisent des logiciels.
Vous voulez une plateforme intégrée, tout-en-un, pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?
Apidog répond à toutes vos demandes et remplace Postman à un prix beaucoup plus abordable !
L'aube de l'ingénierie logicielle alimentée par l'IA : présentation de Codex

Imaginez un tableau de bord invitant : « Que devrions-nous coder ensuite ? » avec une zone d'invite, des sélecteurs de référentiel et de branche, et une liste de tâches, le tout sur un fond pastel sur le thème du code. C'est la porte d'entrée de Codex, un agent prêt à devenir une partie indispensable de la boîte à outils d'un développeur. Codex est conçu pour gérer un large éventail de tâches, de l'écriture de nouvelles fonctionnalités et de la réponse à des questions complexes sur une base de code à la correction de bogues et à la proposition de demandes d'extraction pour examen. Chaque tâche est traitée méticuleusement dans son propre environnement de bac à sable cloud, préchargé avec le référentiel spécifique, assurant l'isolement et la concentration.
À la base, Codex est alimenté par codex-1
, une version spécialisée du modèle o3
d'OpenAI, affinée pour les nuances de l'ingénierie logicielle. Les prouesses de ce modèle découlent d'un apprentissage par renforcement rigoureux, où il a été formé sur des tâches de codage réelles dans divers environnements. L'objectif était clair : générer du code qui non seulement fonctionne parfaitement, mais reflète également les préférences stylistiques humaines, adhère précisément aux instructions et peut exécuter des tests de manière itérative jusqu'à ce qu'un résultat positif soit obtenu. Le déploiement de Codex marque une étape majeure vers une assistance au codage plus intelligente et autonome.
Sous le capot : comment Codex fonctionne
L'accès à Codex est simple pour les utilisateurs de ChatGPT éligibles, avec une section dédiée dans la barre latérale. Les développeurs peuvent attribuer de nouvelles tâches de codage en tapant une invite et en lançant la commande « Code », ou poser des questions sur leur base de code en utilisant la fonction « Ask ».
La véritable puissance de Codex réside dans ses capacités de traitement parallèle. Chaque tâche est gérée indépendamment dans un bac à sable cloud séparé et isolé. Cet environnement est préchargé avec la base de code pertinente, ce qui permet à Codex de lire et de modifier des fichiers, d'exécuter des commandes (y compris des harnais de test, des linters et des vérificateurs de type) et de fonctionner sans interférence des autres tâches en cours. Les délais d'exécution des tâches varient, généralement de une à trente minutes selon la complexité, et les utilisateurs peuvent suivre les progrès en temps réel.
Un aspect crucial de Codex est son engagement envers un travail vérifiable. Une fois une tâche terminée, Codex valide ses modifications dans son environnement. Il ne se contente pas de présenter le code final ; il fournit des preuves vérifiables de ses actions grâce à des citations de journaux de terminaux et de résultats de tests. Cette transparence permet aux développeurs de retracer chaque étape effectuée lors de l'exécution de la tâche, favorisant la confiance et permettant un examen approfondi. Les utilisateurs peuvent ensuite décider de demander d'autres révisions, d'ouvrir une demande d'extraction GitHub ou d'intégrer directement les modifications dans leur environnement de développement local. De plus, l'environnement Codex peut être configuré pour refléter de près la configuration de développement réelle de l'utilisateur, garantissant la compatibilité et la pertinence.
Guider l'agent : le rôle d'AGENTS.md et des directives système
Pour améliorer encore son efficacité et adapter son comportement aux besoins spécifiques du projet, Codex peut être guidé par des fichiers AGENTS.md
placés dans un référentiel. Ces fichiers texte, un peu comme le familier README.md
, servent de canal de communication entre les développeurs humains et l'agent d'IA. Grâce à AGENTS.md
, les développeurs peuvent informer Codex sur la façon de naviguer dans la base de code, quelles commandes exécuter pour les tests et comment adhérer au mieux aux normes et pratiques de codage établies du projet. Comme pour les développeurs humains, les agents Codex fonctionnent de manière optimale lorsqu'ils sont dotés d'environnements de développement bien configurés, de configurations de tests fiables et d'une documentation claire.
Le message système sous-jacent pour codex-1
révèle également un ensemble explicite d'instructions qui régissent son comportement. Par exemple, lors de la modification de fichiers, Codex est invité à ne pas créer de nouvelles branches, à utiliser git pour valider les modifications (en réessayant en cas d'échec de la pré-validation) et à s'assurer que l'arborescence de travail est laissée dans un état propre. Il souligne que seul le code validé sera évalué et que les validations existantes ne doivent pas être modifiées.
La spécification AGENTS.md
est assez détaillée. Sa portée est l'arborescence de répertoires entière enracinée à son emplacement, et ses instructions ont priorité en fonction de la profondeur d'imbrication, bien que les invites directes de l'utilisateur puissent les remplacer. Une directive clé est que si AGENTS.md
inclut des vérifications programmatiques, Codex doit les exécuter toutes et s'efforcer de valider leur succès après toutes les modifications de code, même pour des modifications apparemment simples comme les mises à jour de la documentation. Les instructions de citation sont également rigoureuses, exigeant une référence précise des chemins de fichiers et des sorties de terminal pour tous les fichiers parcourus ou les commandes exécutées, garantissant une piste d'audit claire.

Mettre Codex à l'épreuve : performances et références
OpenAI rapporte que codex-1
démontre de solides performances lors des évaluations de codage et des références internes, même sans personnalisation approfondie via les fichiers AGENTS.md
ou l'échafaudage spécifique. Sur la référence SWE-Bench Verified, codex-1
a montré une progression de la précision pass@k de 67 % à k=1 à 75 % à k=8, surpassant o3-high
(qui a obtenu 70 % à k=8 sur un sous-ensemble légèrement différent). Sur les tâches d'ingénierie logicielle (SWE) internes d'OpenAI, un ensemble organisé de défis internes réels, codex-1
a atteint une précision de 70 %, ce qui est significativement supérieur à o1-high
(25 %), o4-mini-high
(40 %) et o3-high
(61 %). Ces tests ont été menés avec codex-1
à une longueur de contexte maximale de 192 000 jetons et un « effort de raisonnement » moyen, reflétant les paramètres disponibles dans le produit.
Construire avec confiance : sécurité, confiance et considérations éthiques


Codex est publié en tant qu'aperçu de la recherche, conformément à la stratégie de déploiement itératif d'OpenAI. Cette approche permet d'apprendre et d'affiner en fonction de l'utilisation réelle. La sécurité et la transparence étaient primordiales dans la conception de Codex. La capacité des utilisateurs à vérifier les résultats grâce à des citations, des journaux de terminaux et des résultats de tests est la pierre angulaire de cette philosophie, une protection qui devient de plus en plus vitale à mesure que les modèles d'IA gèrent de manière indépendante des tâches de codage plus complexes.
Face à l'incertitude ou aux échecs de tests, l'agent Codex est conçu pour communiquer explicitement ces problèmes, permettant aux utilisateurs de prendre des décisions éclairées. Cependant, OpenAI souligne qu'il reste essentiel que les utilisateurs examinent et valident manuellement tout le code généré par l'agent avant l'intégration et l'exécution.
La prise en compte du potentiel d'utilisation abusive, en particulier dans des domaines comme le développement de logiciels malveillants, est une préoccupation essentielle. Codex a été formé pour identifier et refuser précisément les demandes visant à créer des logiciels malveillants, tout en distinguant et en prenant en charge les tâches légitimes et avancées qui pourraient impliquer des techniques similaires (par exemple, l'ingénierie de noyau de bas niveau). Des cadres de politique améliorés et des évaluations de sécurité rigoureuses, détaillés dans un addendum à la carte système o3
, renforcent ces limites.
L'agent fonctionne entièrement dans un conteneur sécurisé et isolé dans le cloud. Pendant l'exécution des tâches, l'accès à Internet est désactivé, limitant les interactions uniquement au code explicitement fourni via les référentiels GitHub et les dépendances préinstallées configurées par l'utilisateur. Cela signifie que l'agent ne peut pas accéder aux sites Web externes, aux API ou à d'autres services, ce qui atténue considérablement les risques de sécurité.
Une touche humaine : s'aligner sur les préférences et les flux de travail des développeurs
Un objectif principal lors de la formation de codex-1
était d'aligner étroitement ses résultats sur les préférences et les normes de codage humaines. Par rapport à l'OpenAI o3
à usage général, codex-1
produit systématiquement des correctifs plus propres qui sont plus facilement examinables par les humains et plus faciles à intégrer dans les flux de travail standard. Ceci est démontré par plusieurs exemples de correctifs appliqués à des projets open source populaires :
Projet : Astropy (bibliothèque d'astronomie Python)
- Le bogue : La fonction
separability_matrix
calculait incorrectement la séparabilité pour les instancesCompoundModel
imbriquées. Par exemple, si un modèle composé commem.Linear1D(10) & m.Linear1D(5)
était imbriqué dans un autre, la matrice résultante indiquait à tort des dépendances là où il n'en existait aucune. - La solution de Codex :
- Une modification ciblée a été apportée à la fonction
_cstack
dansastropy/modeling/separable.py
. - Ce changement a correctement géré les dimensions et les valeurs de la matrice de droite lorsqu'elle représentait un tableau précalculé (c'est-à-dire un modèle imbriqué).
- Tests : Un test de régression précis a été ajouté à
test_separable.py
pour confirmer le correctif, en s'assurant que la sortie était la matrice de séparabilité en blocs diagonaux attendue pour les modèles imbriqués. - Comparaison : Ce correctif a été noté comme plus direct et moins verbeux qu'une solution potentielle de
o3
, qui avait inclus de nombreux commentaires explicatifs.
Projet : Matplotlib (bibliothèque de traçage Python)
- Le bogue : Un problème dans
mlab._spectral_helper
a provoqué une correction de fenêtre incorrecte en raison d'un appelnp.abs()
inutile. Cela a conduit à des résultats inexacts pour les fenêtres avec des valeurs négatives (par exemple, la fenêtreflattop
). - La solution de Codex :
- Les appels
np.abs()
ont été supprimés de(np.abs(window)**2).sum()
etnp.abs(window).sum()**2
. - Ceux-ci ont été remplacés par
(window.conjugate() * window).sum()
etwindow.sum()**2
respectivement. - Cette modification garantit que la mise à l'échelle utilise les valeurs réelles de la fenêtre, en préservant avec précision la puissance.
- Tests : Un nouveau test,
test_psd_windowarray_negative
, a été ajouté àlib/matplotlib/tests/test_mlab.py
pour vérifier spécifiquement cette correction à l'aide d'une fenêtre contenant des valeurs négatives.
Projet : Django (framework web Python)
- Le bogue : Les expressions de durée uniquement (par exemple,
F('estimated_time') + datetime.timedelta(1)
) ont échoué sur SQLite et MySQL, générant une erreurdecimal.InvalidOperation
. Cela était dû à des problèmes de conversion des valeurs de durée. - La solution de Codex :
- La méthode
convert_durationfield_value
dansdjango/db/backends/base/operations.py
a été affinée pour gérer de manière robuste divers types d'entrée pour la durée (tels queNone
,timedelta
,string
etint
). - La compilation des côtés pour
DurationExpression
dansdjango/db/models/expressions.py
a été ajustée, garantissant queformat_for_duration_arithmetic
est appliqué de manière plus sélective, principalement lorsqu'il est combiné avec des types de date/heure. - Tests : Un nouveau test,
test_durationfield_only_expression
, a été ajouté danstests/expressions/tests.py
pour valider ce correctif. - Comparaison : La solution
o3
pour ce problème Django a été décrite comme plus étendue dans sa logique de vérification et d'analyse des types dansconvert_durationfield_value
, offrant une approche très détaillée de la gestion des différentes représentations de chaînes et numériques des durées.
Projet : Expensify (ReportUtils.ts - TypeScript)
- Le problème : Les noms de salle des membres ne se mettaient pas à jour dans le navigateur de gauche (LHN) après avoir effacé le cache.
- Solution proposée par Codex (basée sur les différences fournies relatives à la mise en cache du nom du rapport) :
- La différence « Codex » a modifié la fonction
getCacheKey
pour inclurepolicyName
. Ce changement pourrait rendre les clés de cache plus spécifiques, empêchant potentiellement la stagnation si les noms de stratégie influencent les titres des salles. - Proposition alternative
OpenAI o3
: - La différence « OpenAI o3 » a suggéré une solution plus structurelle à l'invalidation du cache : s'assurer que le
reportNameCache
est effacé chaque fois queONYXKEYS.COLLECTION.POLICY
se met à jour. Cela résout directement les données obsolètes en actualisant de manière proactive le cache lorsque les informations de stratégie sous-jacentes (qui peuvent affecter les noms de salle) changent. - Aperçu : Cet exemple met en évidence la façon dont l'IA peut proposer différentes stratégies, de l'affinement des clés de cache à la mise en œuvre de mécanismes d'invalidation plus larges, pour s'attaquer à de tels problèmes.
Ces exemples illustrent collectivement la capacité de Codex à comprendre des problèmes complexes et à mettre en œuvre des solutions ciblées et efficaces, incluant fréquemment les cas de test nécessaires pour garantir l'exactitude.
Élargir la portée : mises à jour de la CLI Codex
En complément de l'agent basé sur le cloud, OpenAI a également mis à jour Codex CLI, un agent de codage léger et open source qui s'exécute directement dans le terminal. Une nouvelle version plus petite de codex-1
, nommée codex-mini-latest
(une version spécialisée de o4-mini
), est désormais le modèle par défaut dans Codex CLI. Il est optimisé pour les questions-réponses et l'édition de code à faible latence, conservant de solides capacités de suivi des instructions et de style.
La connexion d'un compte de développeur à Codex CLI a également été simplifiée. Au lieu de la génération manuelle de jetons d'API, les utilisateurs peuvent désormais se connecter avec leur compte ChatGPT et sélectionner leur organisation API, la CLI gérant la configuration automatique de la clé API. Les utilisateurs Plus et Pro qui se connectent de cette manière peuvent également échanger des crédits API gratuits.
Accès, abordabilité et aspirations : disponibilité, tarification et limitations
Codex est actuellement déployé auprès des utilisateurs de ChatGPT Pro, Enterprise et Team dans le monde entier, avec une prise en charge de Plus et Edu prévue prochainement. L'accès initial sera généreux et sans frais supplémentaires pendant plusieurs semaines, permettant aux utilisateurs d'explorer ses capacités. Par la suite, OpenAI introduira un accès limité en débit et des options de tarification flexibles pour une utilisation à la demande. Pour les développeurs utilisant codex-mini-latest
via l'API, le prix est de 1,50 $ par 1 million de jetons d'entrée et de 6 $ par 1 million de jetons de sortie, avec une remise de 75 % sur la mise en cache des invites.
En tant qu'aperçu de la recherche, Codex présente des limites. Il manque actuellement des fonctionnalités telles que les entrées d'images pour le développement frontal et la possibilité de corriger l'agent en cours de tâche. La délégation de tâches à un agent distant introduit également une latence par rapport à l'édition interactive, ce qui peut nécessiter un certain ajustement du flux de travail. OpenAI envisage que l'interaction avec les agents Codex ressemblera de plus en plus à une collaboration asynchrone avec des collègues humains.
La voie à suivre : l'avenir de l'IA dans l'ingénierie logicielle avec Codex
OpenAI imagine un avenir où les développeurs dirigent le travail qu'ils souhaitent posséder et délèguent le reste à des agents d'IA hautement compétents, ce qui conduit à une vitesse et une productivité accrues. Pour y parvenir, ils construisent une suite d'outils Codex prenant en charge à la fois la collaboration en temps réel et la délégation asynchrone. Bien que les outils d'appariement d'IA comme Codex CLI deviennent des normes de l'industrie, le flux de travail asynchrone et multi-agents introduit par Codex dans ChatGPT est considéré comme la future norme de facto pour la production de code de haute qualité.
En fin de compte, ces deux modes d'interaction, l'appariement en temps réel et la délégation de tâches, devraient converger. Les développeurs collaboreront avec des agents d'IA dans leurs IDE et leurs outils quotidiens pour les questions-réponses, les suggestions et le déchargement de tâches plus longues dans un flux de travail unifié. Les projets futurs incluent des flux de travail d'agents plus interactifs et flexibles, permettant aux développeurs de fournir des conseils en cours de tâche, de collaborer sur des stratégies de mise en œuvre et de recevoir des mises à jour de progression proactives. Des intégrations plus approfondies sont également prévues dans des outils tels que GitHub, Codex CLI, ChatGPT Desktop, les outils de suivi des problèmes et les systèmes CI.
L'ingénierie logicielle est l'une des premières industries à assister à des gains de productivité importants grâce à l'IA, ouvrant de nouvelles possibilités aux individus et aux petites équipes. Tout en étant optimiste quant à ces avancées, OpenAI collabore également avec des partenaires pour comprendre les implications plus larges de l'adoption généralisée d'agents sur les flux de travail des développeurs et le développement des compétences au sein de diverses populations.
Le lancement de ChatGPT Codex est bien plus qu'un simple nouvel outil ; c'est un aperçu d'un avenir où l'ingéniosité humaine et l'intelligence artificielle collaborent de manière plus transparente que jamais pour construire la prochaine génération de logiciels. Ce n'est que le début, et le potentiel de ce que les développeurs peuvent construire avec Codex est vaste et passionnant.