GPT-5 : Les agents de codage IA peuvent-ils s'auto-améliorer ?
Le concept d’auto-amélioration de l’IA évoque souvent des images de machines dépassant la compréhension humaine, une notion fréquemment associée aux préoccupations de sécurité de l’IA. Cependant, explorer comment les grands modèles linguistiques (LLM) pourraient améliorer leurs propres performances offre une perspective plus concrète. Cette enquête se penche sur l’« auto-amélioration en temps d’inférence », un scénario où les modèles, sans que leurs poids principaux ne soient mis à jour, pourraient augmenter leur efficacité sur des tâches spécifiques. Cela diffère de l’« auto-amélioration en temps d’entraînement », qui se concentre sur les avancées algorithmiques ou l’optimisation des données pendant l’entraînement du modèle. Pour la plupart des ingénieurs en IA, qui interagissent principalement avec les modèles en tant qu’utilisateurs plutôt qu’en tant qu’entraîneurs, la capacité des modèles à améliorer leur propre efficacité opérationnelle au moment de l’inférence présente un domaine d’étude convaincant.
L’idée centrale est de tirer parti des agents de codage comme conduits permettant aux LLM d’extraire de la valeur de leurs propres connaissances internes ou « espaces latents ». Pour explorer cela, un flux expérimental a été conçu : premièrement, le modèle a été invité à créer une suite d’outils qu’il pensait améliorer sa productivité ; ensuite, il a tenté une tâche sous supervision en utilisant ces outils ; enfin, il a réfléchi à la manière dont les outils pourraient être affinés. Ce processus a été principalement testé avec GPT-5 et comparé à Opus 4.
Les premières découvertes ont révélé que GPT-5 excellait dans la génération d’utilitaires pour développeurs. Cependant, un paradoxe significatif a émergé : le modèle refusait souvent d’utiliser les outils mêmes qu’il avait créés. Comme GPT-5 l’a déclaré candidement après une tâche : « Pour être honnête, je n’ai eu besoin d’aucun d’entre eux. » Cette observation s’est vérifiée lors de multiples tests, y compris des comparaisons avec d’autres modèles de pointe comme Gemini 2.5 Pro et GPT-4.1, où Opus 4 s’est constamment avéré être le seul performant comparable à GPT-5.
Deux outils spécifiques ont été initialement commandés par l’expérimentateur humain. Le premier était un gestionnaire de tâches avancé conçu pour des agents de codage parallèles. Étant donné que plusieurs instances d’IA opèrent souvent dans des environnements de développement distincts, un système robuste était nécessaire pour suivre les changements, gérer les dépendances et signaler les conflits potentiels – un défi pour les humains lisant de nombreuses requêtes de tirage. La solution de GPT-5 pour ce gestionnaire de tâches était remarquablement sophistiquée, incorporant la journalisation avant écriture (WAL) pour les écritures concurrentes, un graphe de dépendances pour la priorisation des tâches, et un flux d’événements en mode ajout uniquement pour maintenir tous les agents synchronisés avec des mots-clés comme impact_conflict
. Opus 4 a également produit un gestionnaire de tâches fonctionnel mais manquait des fonctionnalités complètes de notification et de synchronisation.
Le deuxième outil demandé était un « Guide des normes de qualité du code ». Celui-ci visait à formaliser les heuristiques de la base de code, en tirant parti d’outils existants comme ESLint pour le linting et la vérification de type, tout en permettant des règles personnalisées ou même des outils sur mesure pour des normes plus qualitatives (par exemple, assurer des contrôleurs légers ou des colonnes de base de données indexées). Le plan de GPT-5 basé sur Markdown pour ce guide a été jugé plus nuancé que celui d’Opus 4, offrant une approche approfondie pour analyser et structurer les règles de qualité du code à travers diverses bases de code.
La partie la plus perspicace de l’expérience consistait à demander aux modèles ce qu’ils pensaient avoir besoin pour être plus productifs. Après avoir reçu une description d’une tâche d’ingénierie logicielle, GPT-5 et Opus 4 ont proposé une gamme d’outils. GPT-5 a conceptualisé ses outils comme des utilitaires d’interface de ligne de commande légers, y compris doctor
pour les vérifications d’environnement, code-map
pour l’indexation de référentiel, csearch
pour la recherche de symboles et impact
pour afficher les tâches liées aux fichiers modifiés. Opus 4, en revanche, a suggéré des outils avec des noms plus descriptifs et anthropomorphes, tels que « Analyseur de Contexte », « Générateur de Tests Multiplateforme » et « Moteur de Reconnaissance de Modèles de Bugs », implémentés comme des scripts Python standards. Bien que les deux modèles aient convergé sur des directions fonctionnelles similaires, l’approche de GPT-5 était plus concise et axée sur l’utilitaire, tandis que celle d’Opus 4 semblait imprégner ses outils d’une portée plus large et plus orientée tâche.
Pour évaluer l’utilité pratique de ces outils auto-générés, une tâche complexe a été assignée : migrer une application monolithique Flask existante (smol-podcaster
) vers un backend FastAPI avec un frontend Next.js, complet avec TypeScript, un style Tailwind/ShadCN, une logique backend modularisée et des tests complets. GPT-5 et Opus 4, avec accès à leurs outils créés, ont presque réussi à achever la migration en une seule tentative, ne nécessitant qu’une assistance humaine mineure pour résoudre les problèmes de dépendances Python. Les applications résultantes étaient entièrement fonctionnelles, bien que GPT-5 ait conservé l’esthétique de conception originale, tandis qu’Opus 4 a introduit ses propres modifications de conception.
Crucialement, lorsqu’on leur a demandé s’ils avaient utilisé l’un de leurs outils personnalisés pendant cette migration exigeante, les deux modèles ont répondu par la négative, à l’exception des outils avec lesquels ils étaient déjà intrinsèquement familiers. GPT-5 a attribué cela au fait que les problèmes d’exécution/environnement étaient plus rapides à résoudre directement, et à un manque de « refactorisations ou diagnostics à l’échelle du dépôt qui auraient bénéficié d’outils personnalisés » lors de cette passe — une affirmation surprenante, étant donné la nature de la migration. Le raisonnement d’Opus 4 a apporté des éclaircissements supplémentaires : le modèle a efficacement communiqué qu’il avait construit les outils en se basant sur ses connaissances existantes, mais lorsqu’il a été confronté à la tâche réelle, il a trouvé plus efficace de simplement exploiter ses capacités inhérentes plutôt que d’invoquer des outils externes.
Cette observation s’aligne avec des discussions antérieures dans la communauté de l’IA, suggérant que les modèles peuvent rapidement apprendre à éviter les outils s’ils rencontrent des échecs précoces pendant leur processus opérationnel, ou qu’un « échafaudage » étendu pour les agents pourrait devenir inutile à mesure que les modèles évoluent. Bien que la tâche assignée ait été suffisamment difficile pour être un effort de plusieurs heures pour un humain, elle soulève la question de savoir si des tâches plus complexes pourraient contraindre les modèles à utiliser leurs outils personnalisés.
En conclusion, bien que les grands modèles linguistiques actuels démontrent une capacité remarquable à concevoir des outils de développement sophistiqués, leur propension à utiliser ces outils lors de tâches de codage complexes reste limitée. Cela suggère que pour atteindre une véritable « auto-amélioration en temps d’inférence » chez les agents de codage, il pourrait falloir plus que la simple création d’outils ; cela pourrait nécessiter des mécanismes d’application plus robustes ou des avancées supplémentaires dans la manière dont les modèles internalisent et intègrent de nouvelles capacités. Dans un avenir prévisible, une approche pragmatique implique de tirer parti des modèles pour affiner les outils de développement basés sur des règles (comme les règles ESLint ou les tests automatisés), améliorant ainsi les flux de travail pilotés par l’homme, plutôt que de compter uniquement sur les modèles pour adopter spontanément leurs propres créations pour l’auto-amélioration.