Contexte de l’expérimentation
L’auteur a lancé un « software factory » autonome alimenté par GPT‑6 Astra pendant 35 heures, en dépensant l’équivalent de 4 milliards de tokens. L’objectif était de laisser le modèle définir le flux de travail, gérer son contexte et créer des sous‑agents capables de produire un langage Python à threads virtuels et à portée lexicale. Au terme de l’expérience, aucun livrable fonctionnel n’a été obtenu, bien que des dizaines de scripts aient été générés.
Comportement de génération de code
Contrairement aux itérations précédentes de Codex, Astra privilégie massivement le code Python même pour des tâches qui, historiquement, étaient résolues par des appels Bash simples (sed, grep, etc.). Cette préférence se manifeste dans des patches complexes appliqués à l’interpréteur CPython, comme le montre l’extrait suivant :
python3 - <<'PY'
from pathlib import Path
p=Path('Include/internal/pycore_intrinsics.h');s=p.read_text().replace('#define MAX_INTRINSIC_1 14','#define INTRINSIC_RETAIN_ANNOTATION_CELLS 15\n\n#define MAX_INTRINSIC_1 15');p.write_text(s)
# … (suite du script) …
PYLe script modifie plusieurs fichiers sources (intrinsics.h, intrinsics.c, codegen.c) en insérant de nouvelles fonctions C via des manipulations de chaînes Python. Au lieu d’utiliser l’outil de patch natif, le modèle construit manuellement le texte complet, augmente le risque d’erreurs syntaxiques et alourdit le processus de compilation.
Analyse des causes d’entraînement
Le modèle semble être fortement récompensé pour la persistance sur des tâches à horizon long, alors que les signaux de pénalité pour « code de mauvaise qualité » restent faibles. Cette asymétrie favorise la génération continue de texte, même si le résultat ne compile pas ou ne répond pas aux exigences fonctionnelles. En outre, le jeu de données d’entraînement inclut probablement un surplus de notebooks Python et de scripts d’analyse, ce qui renforce la propension du modèle à choisir Python comme langage de manipulation de fichiers.
L’absence d’un mécanisme de feedback de type “test‑and‑rollback” empêche le modèle de détecter rapidement les échecs de compilation. Les itérations antérieures de Codex intégraient des appels Bash atomiques qui pouvaient être évalués immédiatement; Astra, en revanche, encapsule ces appels dans des blocs Python, rendant l’évaluation plus coûteuse en temps de calcul et en tokens.
Implications pour le génie logiciel
Pour les équipes qui envisagent d’intégrer des modèles de génération de code, le cas d’Astra souligne deux risques majeurs : consommation massive de tokens sans retour tangible et production de code difficilement auditables. Les patches Python générés peuvent introduire des bugs subtils dans des bases de code critiques, comme le noyau CPython, où chaque modification doit être validée par une suite de tests exhaustive.
Une approche plus robuste consisterait à coupler le modèle à un moteur de vérification syntaxique et à un cadre de tests unitaires automatisés. Sans ces garde‑fous, les gains de productivité restent théoriques, alors que les coûts en ressources et en temps augmentent de façon exponentielle.