Bill Chen et Brian Fioca de l'équipe Applied AI d'OpenAI présentent une méthodologie pour construire des "Coding Agents" pérennes, capables de survivre aux cycles rapides d'évolution des modèles. Ils décomposent l'anatomie d'un agent en trois parties : l'Interface Utilisateur, le Modèle (l'intelligence brute), et le "Harness" (le harnais ou l'infrastructure d'intégration).
Le cœur de leur intervention se concentre sur la complexité sous-estimée du Harness. Construire un harnais robuste est difficile car il doit gérer l'adaptation aux "habitudes" spécifiques de chaque modèle (prompt engineering), la gestion de la latence, la compaction du contexte, l'intégration des outils (MCP), et surtout la sécurité (sandboxing). Ils soulignent que les modèles ont des "personnalités" ou des biais d'entraînement (comme la tendance à vouloir tout lire avant d'agir) qui doivent être gérés par le harnais pour être efficaces.
Pour résoudre ce problème, OpenAI positionne Codex non seulement comme un modèle, mais comme une solution "agent + harnais" intégrée. Codex (l'agent) gère nativement la complexité de l'interaction avec le système : exécution de commandes terminal, édition de fichiers, gestion de la mémoire et création d'outils à la volée. Cela en fait un "Computer Use Agent" pour le terminal, capable de réaliser des tâches allant du codage pur à l'administration système ou l'analyse de données (fichiers CSV, organisation de dossiers).
Ils identifient des patterns émergents pour les développeurs d'agents : 1. Harness comme couche d'abstraction : Utiliser un harnais robuste (comme le SDK Codex) permet de se concentrer sur la différenciation produit plutôt que sur la maintenance de l'infrastructure de bas niveau (prompting, tool calling). 2. Agents dans les Agents : Intégrer Codex via SDK comme un "sous-agent" capable d'exécuter des tâches techniques complexes au sein d'une application plus large. 3. Création d'outils dynamique : La capacité des agents à écrire leurs propres connecteurs (MCP) pour s'interfacer avec des API ou des systèmes sans intégration préalable.
En conclusion, ils invitent les développeurs à ne pas "réinventer la roue" du harnais à chaque fois, mais à s'appuyer sur des infrastructures existantes pour construire des expériences utilisateur plus riches et plus stables.