3 points par GN⁺ 2026-01-24 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Codex CLI est conçu comme un agent capable d’effectuer des modifications logicielles de haute qualité de manière sûre et efficace dans un environnement local
  • Sa structure centrale, la boucle agent (agent loop), relie de façon cyclique l’entrée utilisateur, le raisonnement du modèle et les appels d’outils afin d’accomplir des tâches utiles
  • Lors de cette boucle, la composition des prompts, la gestion de la fenêtre de contexte et le cache de prompts jouent un rôle clé pour les performances et la stabilité
  • Codex communique avec le modèle via la Responses API ; chaque requête est constituée d’une charge utile JSON complète, ce qui maintient un fonctionnement sans état (stateless)
  • Cette architecture permet des fonctionnalités avancées comme Zero Data Retention (ZDR), le cache de prompts et la compaction automatique, et sert de base à la conception d’agents à grande échelle

Vue d’ensemble de la boucle agent de Codex

  • Codex CLI fonctionne autour d’une structure en boucle qui orchestre les interactions entre l’utilisateur, le modèle et les outils
    • il reçoit l’entrée de l’utilisateur et construit le prompt à transmettre au modèle
    • si le modèle génère une réponse ou demande un appel d’outil (tool call), l’agent l’exécute puis ajoute le résultat au prompt
    • lorsqu’aucun nouvel appel d’outil n’est demandé et que le modèle produit un message assistant, un tour se termine
  • Chaque tour fait partie d’une conversation ; les messages précédents ainsi que l’historique des appels d’outils sont tous inclus dans le prompt de la requête suivante
  • Comme la longueur du prompt est limitée par la fenêtre de contexte (context window) du modèle, Codex doit la gérer activement

Structure de communication entre Responses API et Codex

  • Codex CLI envoie des requêtes HTTP à la Responses API pour l’inférence du modèle
    • le point d’accès API varie selon la configuration et peut être utilisé avec OpenAI, ChatGPT, Azure ou des environnements locaux (LM Studio, Ollama, etc.)
  • Les requêtes API sont structurées sous forme de charge utile JSON, avec notamment les champs suivants
    • messages system/developer : définissent le contexte de base du modèle
    • instructions : liste des outils que le modèle peut appeler
    • tools : définitions des outils fournis par Codex CLI, la Responses API ou l’utilisateur (serveur MCP, etc.)
    • input : liste de messages incluant l’historique de la conversation et les informations d’environnement
  • Codex lit automatiquement la configuration ~/.codex/config.toml ainsi que des fichiers tels que AGENTS.md et skills dans le projet afin d’injecter les consignes utilisateur et les informations d’environnement

Composition des prompts et traitement des événements

  • Codex structure chaque message comme un objet JSON (type, role, content) puis l’envoie à la Responses API
  • Le serveur génère ensuite le prompt du modèle à partir de ce JSON et renvoie la réponse sous forme de flux SSE (Server-Sent Events)
    • l’événement response.output_text.delta est utilisé pour la sortie en streaming
    • l’événement response.output_item.added est ajouté au champ input de la requête suivante afin de poursuivre la boucle
  • Le système est conçu pour que l’ancien prompt soit un préfixe exact du nouveau, ce qui permet d’exploiter le cache de prompts (prompt caching)

Optimisation des performances : cache et architecture sans état

  • Codex n’utilise pas previous_response_id, ce qui lui permet de conserver une structure de requêtes entièrement sans état (stateless)
    • cela rend possible la prise en charge des clients Zero Data Retention (ZDR) et une minimisation de la conservation des données
  • Le cache de prompts réutilise le même préfixe pour linéariser le coût d’échantillonnage
    • un hit de cache ne se produit qu’en cas de correspondance exacte du préfixe du prompt
    • une modification de la liste d’outils, du modèle, des paramètres de sandbox ou du répertoire de travail provoque un cache miss
  • Les changements dynamiques des outils MCP peuvent faire perdre le cache ; Codex reflète donc ces changements en insérant de nouveaux messages

Gestion de la fenêtre de contexte et compaction automatique

  • Quand la conversation s’allonge, une compaction de la conversation est effectuée afin d’éviter de dépasser la fenêtre de contexte
    • au départ, un résumé manuel était réalisé via la commande /compact, mais aujourd’hui l’endpoint /responses/compact de la Responses API est utilisé automatiquement
    • cet endpoint renvoie des éléments de type=compaction ainsi qu’un encrypted_content chiffré afin de préserver la compréhension du modèle
  • Codex exécute automatiquement la compaction dès que auto_compact_limit est dépassé, afin d’assurer la continuité de la conversation

Conclusion et orientations à venir

  • La boucle agent de Codex constitue la structure centrale qui intègre inférence du modèle, appels d’outils, cache et gestion du contexte
  • Cette architecture permet une conception d’agents performante, sans état et centrée sur la sécurité
  • Les prochains articles aborderont plus en détail la structure interne de Codex, notamment l’architecture CLI, l’implémentation de l’usage des outils et le modèle de sandboxing

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.