J’ai passé l’essentiel de ma carrière d’ingénieur logiciel à répéter les mêmes gestes pour déployer et exploiter des logiciels, ou à écrire des logiciels qui le feraient à ma place.

À mon arrivée chez OpenAI, j’ai rejoint l’équipe chargée de l’infrastructure cloud. Je mettais en service de nouveaux clusters Kubernetes pour les équipes applicatives. Je passais une semaine à préparer un lot de clusters, le temps de résoudre les problèmes de liaisons privées, de quotas et de configuration Terraform. Dès que ces clusters étaient prêts, je passais au lot suivant.
J’ai ensuite rejoint l’équipe API, où j’évaluais nos derniers modèles. Je réglais des problèmes liés aux outils de notation, aux quotas, à la configuration et à PyTorch. Une fois les évaluations terminées avec succès et le modèle lancé, je recommençais avec le modèle suivant.
Aujourd’hui, Codex m’aide à accomplir ces tâches répétitives. Je développe toujours des logiciels, avec l’aide de Codex pour être précis. Mais au lieu d’automatiser chaque tâche séparément, je développe Runme pour :
- Rassembler et organiser les éléments de contexte utiles à un workflow.
- Préserver les étapes de vérification et d’approbation nécessaires.
- Améliorer les prochaines exécutions de Codex grâce aux enseignements des précédentes.
Évaluer des modèles avec Codex
Chez OpenAI, chaque fois que nous lançons un modèle ou une fonctionnalité, nous procédons à des évaluations pour vérifier que tout fonctionne comme prévu. Pour lancer une évaluation, je crée un notebook Runme et j’y décris brièvement l’objectif :
# Objectif : évaluer le modèle actuel
- Examinez une exécution précédente pour comprendre le workflow.
- Rédigez un plan détaillé dans ce notebook.
- Attendez que j’aie examiné et approuvé le plan avant de commencer.
- Consignez les commandes que vous exécutez, leur sortie et votre interprétation des résultats.
Je demande ensuite à Codex de prendre pour objectif le contenu de cette cellule du notebook :
Dans le notebook Runme ouvert dans le navigateur, lisez la cellule qui décrit l’objectif.
Prenez son contenu comme objectif, rédigez votre plan dans le notebook et attendez mon approbation avant de commencer.
Codex lit le notebook et le met à jour au fil du travail. Quand le plan est prêt, je le relis et le modifie si nécessaire. Souvent, c’est en aidant Codex à trancher que je suis le plus utile : quel système d’évaluation utiliser ? Faut-il provisionner une nouvelle infrastructure ou les ressources existantes suffisent-elles ?
Je suis l’avancement du travail de Codex, parfois depuis mon téléphone, et il m’arrive de lui donner un coup de pouce lorsqu’il bloque. Si un quota est épuisé et empêche de provisionner un environnement de développement, je peux par exemple suggérer de réutiliser un environnement existant ou de chercher une autre solution déjà approuvée.
Au bout du compte, le notebook retrace les étapes nécessaires pour mener la tâche à bien, y compris les pistes qui n’ont rien donné. Avant de terminer, je consigne avec Codex les décisions qui, autrement, se perdraient dans la conversation : pourquoi nous avons retenu telle option, quelle approche privilégier désormais et ce qu’il faudrait faire différemment la prochaine fois.

Travailler avec Codex dans des notebooks
Le projet Runme est une application web open source qui permet de créer des notebooks avec Codex. Comme Jupyter et Colab, Runme prend en charge Markdown, les cellules de code et HTML. On peut ainsi réunir dans un même document des consignes, des commandes, des résultats, des tableaux et des graphiques.
Les notebooks peuvent être enregistrés directement dans Google Drive. Mes collègues peuvent ainsi retrouver et partager les documents produits avec un outil qu’ils connaissent déjà, sans avoir à utiliser un dépôt de documents supplémentaire.
Pour chaque notebook, Runme crée aussi un fichier d’index Markdown nommé *.index.md. Google Drive peut indexer ce fichier. Un agent retrouve ainsi plus facilement d’anciens notebooks lorsqu’il cherche des exemples, des précisions sur les conditions d’exécution ou le résultat d’une exécution antérieure.
Les agents interagissent avec Runme via WebMCP. À son chargement, l’application enregistre des outils côté navigateur qui permettent à un agent de :
- Lire les consignes d’utilisation de Runme et de ses notebooks.
- Exécuter des programmes JavaScript de portée limitée pour lire ou modifier le contenu d’un notebook.
- Consulter la documentation de l’application.
Ce choix d’architecture est important, car Runme s’exécute côté client et est distribué sous forme de site web statique. Ajouter un serveur uniquement pour exposer un point de terminaison MCP classique nécessiterait une infrastructure supplémentaire, compliquerait l’exploitation et changerait l’endroit où les données des notebooks sont traitées. Avec WebMCP, l’application peut rendre ses fonctionnalités accessibles directement depuis le navigateur.
Rassembler et organiser le contexte utile
Chaque évaluation est l’occasion de documenter la façon dont j’ai procédé et de faciliter la suivante. À mesure que le workflow s’améliore, les éléments de contexte qu’il fournit gagnent en pertinence. Codex peut à son tour s’y appuyer pour s’acquitter plus efficacement de la tâche la prochaine fois.
Une bonne partie des informations utiles à un agent existe déjà dans notre travail quotidien. Encore faut-il les retrouver dans l’historique du terminal, les échanges sur Slack, les procédures d’exploitation, les documents et les tableaux de bord. L’utilité de la documentation est facile à démontrer. La difficulté, c’est de pouvoir la rédiger au fil du travail sans que cela demande trop d’efforts.
Runme réunit dans un même document l’intention de départ, les actions, les décisions et les résultats. Un objectif persistant aide Codex à rester concentré sur la tâche. La révision automatique des demandes d’approbation peut examiner les actions qui s’y prêtent tout en respectant les limites des autorisations en vigueur.
C’est toujours moi qui décide quand un plan est prêt et quand un choix important demande une appréciation humaine. Codex exécute les tâches répétitives et consigne ce qui s’est passé avec plus de précision que je ne l’aurais fait moi-même. Comme le notebook se partage facilement, ces connaissances pratiques sont accessibles au-delà de l’historique de discussion d’une seule personne.
Retrouver un peu de temps pour moi
J’ai passé une bonne partie de ma carrière à chercher les mots magiques qui feraient faire à des machines capricieuses ce que j’attendais d’elles. L’infrastructure cloud et Kubernetes étaient censés simplifier le déploiement et l’exploitation des logiciels. On s’est aussi retrouvé avec une profusion d’outils, comme l’illustre bien la cartographie de la CNCF. Résoudre un problème en crée souvent un autre : il faut choisir les outils nécessaires, apprendre à s’en servir et les faire fonctionner.
Ce qui me plaît dans Codex, c’est qu’il peut m’aider dans ces tâches d’exploitation répétitives tout en me laissant prendre part aux décisions importantes.
Avec un peu de chance, je récupérerai un peu de ce temps pour aller jouer avec mes chiens.