For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Sous-agents

Utilisez des sous-agents dans ChatGPT et Codex et configurez vos propres agents Codex

ChatGPT Work et Codex peuvent lancer des agents spécialisés en parallèle, puis réunir leurs résultats dans une seule réponse. Ces workflows de sous-agents peuvent être particulièrement utiles pour les tâches complexes dont plusieurs volets peuvent avancer en parallèle, comme l’exploration du code source ou la mise en œuvre d’une fonctionnalité selon un plan en plusieurs étapes.

Dans les clients Codex locaux, vous pouvez aussi définir des agents personnalisés et adapter les paramètres du modèle et les instructions de chaque agent à sa tâche.

Disponibilité

Les versions actuelles de Codex activent par défaut les workflows de sous-agents. L’activité des sous-agents s’affiche dans l’application de bureau ChatGPT, la CLI Codex et l’extension pour IDE.

Chaque sous-agent effectue ses propres appels au modèle et aux outils. Un workflow de sous-agents consomme donc plus de tokens qu’une exécution comparable avec un seul agent.

Dans une discussion de l’application, demandez à Codex de confier les tâches indépendantes à des sous-agents. Les versions locales actuelles de Codex délèguent les tâches lorsque vous le demandez directement ou lorsque les instructions applicables d’un fichier AGENTS.md ou d’un skill le demandent. L’application affiche le fil de chaque sous-agent. Vous pouvez y consulter son travail et le résumé qu’il renvoie à la discussion principale.

Pourquoi utiliser des workflows de sous-agents ?

Même avec une grande fenêtre de contexte, un modèle a ses limites. C’est dans la discussion principale que vous précisez les exigences, les contraintes et les décisions. Si vous l’encombrez de résultats intermédiaires comme des notes d’exploration, des journaux de tests, des traces de pile ou des sorties de commandes, la session risque de perdre en fiabilité au fil des échanges.

On parle souvent de deux phénomènes :

  • Pollution du contexte : les informations utiles se retrouvent noyées dans les résultats intermédiaires.
  • Dégradation du contexte : les performances diminuent à mesure que la discussion se remplit de détails moins pertinents.

Pour en savoir plus, consultez l’article de Chroma sur la dégradation du contexte.

Les workflows de sous-agents permettent de traiter ces résultats intermédiaires en dehors du fil principal :

  • Gardez l’agent principal concentré sur les exigences, les décisions et les livrables finaux.
  • Lancez des sous-agents spécialisés en parallèle pour explorer le code, exécuter des tests ou analyser des journaux.
  • Demandez aux sous-agents de renvoyer des résumés plutôt que leurs résultats intermédiaires bruts.

Vous pouvez ainsi gagner du temps lorsque les tâches peuvent avancer indépendamment les unes des autres. Découper un travail de grande ampleur en tâches bien délimitées le rend aussi plus facile à mener. Par exemple, Codex peut décomposer l’analyse d’un document de plusieurs millions de tokens en questions plus ciblées et renvoyer les conclusions essentielles au fil principal.

Pour commencer, utilisez des agents en parallèle pour les tâches qui demandent surtout de lire et d’analyser, comme l’exploration, les tests, le triage ou la synthèse. Prenez davantage de précautions avec les workflows qui comportent beaucoup de modifications : si plusieurs agents modifient le code en même temps, leurs changements peuvent entrer en conflit et nécessiter davantage de coordination.

Terminologie

Codex utilise plusieurs termes liés aux workflows de sous-agents :

  • Workflow de sous-agents : Codex lance des agents en parallèle et combine leurs résultats.
  • Sous-agent : agent que Codex lance pour lui confier une tâche précise.
  • Fil d’agent : fil dans lequel un sous-agent effectue son travail. Les clients compatibles vous permettent d’ouvrir ces fils pour consulter l’avancement ou les résultats.

Déclenchement des workflows de sous-agents

Demandez explicitement à Codex d’utiliser des sous-agents ou de faire travailler des agents en parallèle. Codex peut aussi déléguer des tâches si les instructions applicables du projet ou d’un skill le demandent.

Pour déclencher vous-même un workflow, donnez une instruction directe comme « Lancez deux agents », « Répartissez ce travail entre des agents en parallèle » ou « Utilisez un agent par point ». Un workflow de sous-agents consomme plus de tokens qu’une exécution comparable avec un seul agent, car chaque sous-agent effectue ses propres appels au modèle et aux outils.

Dans votre prompt, précisez comment répartir le travail, si Codex doit attendre tous les agents avant de poursuivre et quel résumé ou résultat vous attendez.

Passez cette branche en revue avec des sous-agents travaillant en parallèle. Lancez un sous-agent pour examiner les risques de sécurité, un autre pour repérer les lacunes dans les tests et un troisième pour évaluer la maintenabilité du code. Attendez que les trois aient terminé, puis résumez leurs constats par catégorie en citant les fichiers concernés.

Choix du modèle et de l’effort de raisonnement

Adaptez le choix du modèle et les paramètres de raisonnement au rôle de chaque agent.

Si vous ne configurez ni le modèle du sous-agent ni model_reasoning_effort, le sous-agent hérite du modèle et de l’effort de raisonnement de l’agent parent. Si la demande de lancement ou un paramètre par défaut de [agents] spécifie un modèle sans qu’un effort de raisonnement soit demandé ou configuré, le sous-agent utilise l’effort par défaut de ce modèle. Pour trouver le bon équilibre entre intelligence, rapidité et coût pour chaque tâche, indiquez un modèle ou un effort de raisonnement dans votre prompt, configurez les valeurs par défaut de [agents] dans config.toml ou définissez model et model_reasoning_effort directement dans le fichier de l’agent personnalisé. Par exemple, utilisez gpt-6-luna pour une analyse rapide ou configurez gpt-6.1-sol avec un effort plus élevé pour les tâches qui exigent un raisonnement plus poussé.

Pour la plupart des tâches dans Codex, commencez par gpt-6.1-sol si le compte avec lequel vous êtes connecté ou votre espace de travail a accès à ce modèle. Sinon, choisissez un modèle auquel vous avez accès. Utilisez gpt-6-luna si vous recherchez une option plus rapide et moins coûteuse pour les tâches simples des sous-agents.

Choix du modèle

  • gpt-6.1-sol : commencez par ce modèle pour les agents chargés de tâches exigeantes. Utilisez-le pour les tâches aux contours incertains qui comportent plusieurs étapes et nécessitent de planifier le travail, d’utiliser des outils, de valider les résultats et de mener le travail à terme en tenant compte d’un contexte étendu.
  • gpt-6-luna : utilisez ce modèle pour les agents qui doivent traiter rapidement des tâches ciblées, bien définies, répétitives ou nombreuses.

Effort de raisonnement (model_reasoning_effort)

Pour GPT-6.1 Sol, utilisez un effort de raisonnement pris en charge par votre client et le modèle sélectionné. Si vous configurez explicitement le modèle, commencez par high pour GPT-6 Luna ou low pour GPT-6 Astra. Adaptez ensuite l’effort à la tâche en choisissant un niveau pris en charge par le modèle.

  • ultra : choisissez ce niveau pour le raisonnement le plus approfondi si le modèle sélectionné le prend en charge.
  • max et xhigh : utilisez ces niveaux pour les tâches de raisonnement particulièrement exigeantes si le modèle sélectionné les prend en charge.
  • high : utilisez ce niveau si l’agent doit suivre une logique complexe, vérifier des hypothèses ou examiner des cas limites, par exemple pour une revue de code ou une analyse de sécurité.
  • medium : ce niveau offre un équilibre entre rapidité et profondeur du raisonnement.
  • low : utilisez ce niveau pour une tâche simple où la rapidité prime.

Un effort de raisonnement plus élevé augmente le temps de réponse et la consommation de tokens, mais peut améliorer la qualité des résultats pour les tâches complexes. Pour en savoir plus, consultez les pages Modèles, Principes de configuration et Référence de configuration.

Orchestration et gestion des fils

ChatGPT ou Codex coordonne les agents : il lance les sous-agents, transmet les instructions complémentaires aux agents concernés, attend les résultats et ferme les fils des agents.

Lorsque plusieurs agents travaillent en parallèle, Codex attend que tous les résultats demandés soient disponibles, puis les rassemble dans une seule réponse.

Les versions locales actuelles de Codex lancent des agents lorsque vous le demandez explicitement ou lorsque les instructions applicables du projet ou d’un skill le demandent.

Pour voir comment cela fonctionne, essayez ce prompt sur votre projet :

Je souhaite examiner les points suivants pour la pull request en cours en comparant cette branche à main. Lancez un agent par point, attendez que tous aient terminé, puis résumez le résultat pour chaque point.
1. Problèmes de sécurité
2. Qualité du code
3. Bugs
4. Conditions de concurrence
5. Tests qui échouent de façon intermittente
6. Maintenabilité du code

Gestion des sous-agents

  • Dans le fil principal, ouvrez le fil d’un sous-agent à partir de l’activité affichée pour consulter son travail.
  • Demandez directement à Codex de donner de nouvelles instructions à un sous-agent en cours d’exécution, de l’arrêter ou de fermer les fils des sous-agents qui ont terminé leur travail.

Approbations et paramètres du bac à sable

Les sous-agents héritent de la politique de bac à sable en vigueur dans votre session.

Les sous-agents héritent du mode d’autorisation sélectionné sous la zone de saisie. Choisissez le mode d’autorisation du tour parent avant de demander à Codex de déléguer des tâches.

Réglez les paramètres de bac à sable et d’approbation dans la session parente. Les instructions d’un agent personnalisé peuvent lui demander de ne pas modifier les fichiers, mais elles ne créent pas de bac à sable distinct en lecture seule.

Agents personnalisés

Codex fournit les agents intégrés suivants :

  • default : agent généraliste utilisé par défaut.
  • worker : agent chargé de la mise en œuvre et des corrections.
  • explorer : agent qui explore le code source principalement en lisant les fichiers.

Pour définir vos propres agents, ajoutez des fichiers TOML autonomes dans ~/.codex/agents/ pour vos agents personnels ou dans .codex/agents/ pour les agents propres au projet.

Chaque fichier définit un agent personnalisé. Vous pouvez y modifier les paramètres du modèle et les instructions, ou désactiver certaines fonctionnalités prises en charge. Les agents personnalisés héritent des autorisations, du fournisseur et des serveurs MCP de l’agent parent. Leur fichier ne peut pas remplacer ces paramètres.

Chaque fichier d’agent personnalisé autonome doit définir les champs suivants :

  • name
  • description
  • developer_instructions

Si le fichier d’un agent personnalisé définit model ou model_reasoning_effort, la valeur du fichier est prioritaire. Avant d’appliquer le fichier, Codex détermine la valeur de chaque paramètre dans l’ordre suivant : la valeur indiquée au lancement, puis la valeur par défaut correspondante dans [agents], puis la valeur de l’agent parent. Si la demande de lancement ou une valeur par défaut de [agents] spécifie un modèle et qu’aucune des deux ne précise l’effort de raisonnement, Codex utilise l’effort par défaut du modèle. Un fichier d’agent personnalisé qui définit uniquement model conserve l’effort déterminé à l’étape précédente. Définissez aussi model_reasoning_effort dans le fichier si le modèle sélectionné ne prend pas en charge cet effort ou si vous souhaitez en utiliser un autre. Les agents personnalisés héritent des skills du parent et peuvent en désactiver individuellement avec skills.config.

Paramètres globaux

Les paramètres globaux des sous-agents se trouvent toujours dans la section [agents] de votre configuration.

Champ Type Obligatoire Rôle
agents.enabled booléen Non Active ou désactive les outils multi-agents.
agents.max_concurrent_threads_per_session nombre Non Limite le nombre de fils d’agents lancés qui peuvent être ouverts simultanément, hors fil principal.
agents.default_subagent_model chaîne Non Définit le modèle par défaut des agents lancés.
agents.default_subagent_reasoning_effort chaîne Non Définit l’effort de raisonnement par défaut des agents lancés.
agents.interrupt_message booléen Non Enregistre un message visible par le modèle lorsque le tour d’un agent est interrompu.

Remarques :

  • agents.enabled vaut true par défaut. Définissez-le sur false pour désactiver les outils multi-agents.
  • Si vous ne définissez pas agents.max_concurrent_threads_per_session, Codex choisit la valeur par défaut. Les configurations existantes peuvent continuer à utiliser l’ancien alias agents.max_threads.
  • Les valeurs indiquées au lancement ont priorité sur agents.default_subagent_model et agents.default_subagent_reasoning_effort.
  • agents.interrupt_message vaut true par défaut. Définissez-le sur false pour exclure du contexte de l’agent le message d’interruption destiné au modèle.
  • Si un agent personnalisé porte le même nom qu’un agent intégré comme explorer, l’agent personnalisé est prioritaire.

Schéma du fichier d’agent personnalisé

Champ Type Obligatoire Rôle
name chaîne Oui Nom que Codex utilise pour lancer l’agent ou le désigner.
description chaîne Oui Description destinée aux utilisateurs qui précise quand Codex doit faire appel à cet agent.
developer_instructions chaîne Oui Instructions principales qui définissent le comportement de l’agent.

Utilisez model, model_reasoning_effort, model_reasoning_summary et model_verbosity pour personnaliser le comportement du modèle. Consultez la référence de configuration pour connaître les valeurs acceptées.

Pour limiter les capacités d’un agent personnalisé, définissez les clés des fonctionnalités prises en charge sur false : features.shell_tool, features.apps, features.plugins, features.memories ou features.request_permissions_tool. Désactivez des skills individuellement avec skills.config ou désactivez les skills intégrés avec skills.bundled.enabled = false. Définissez skills.include_instructions = false pour omettre le bloc d’instructions des skills ajouté automatiquement. Les exigences imposées par la configuration gérée continuent de s’appliquer.

Les autres paramètres de session, notamment sandbox_mode, approval_policy, model_provider et mcp_servers, ne remplacent pas la configuration parente si vous les définissez dans le fichier d’un agent personnalisé. L’offre de service suit également la préférence de la session racine. Configurez les serveurs MCP dans la session parente pour que l’agent puisse les utiliser.

Codex identifie l’agent personnalisé par son champ name. Le plus simple est de donner au fichier le même nom qu’à l’agent, mais c’est le champ name qui fait foi.

Exemples d’agents personnalisés

Les agents personnalisés les plus efficaces ont un rôle précis et une méthode de travail bien définie. Attribuez à chacun une tâche claire, des outils adaptés et des instructions qui l’aident à rester dans son périmètre.

Les exemples utilisent GPT-6.1 Sol si le compte avec lequel vous êtes connecté ou votre espace de travail y a accès. Sinon, choisissez un modèle auquel vous avez accès.

Exemple 1 : revue de code d’une pull request

Cet exemple répartit la revue entre trois agents personnalisés spécialisés :

  • pr_explorer cartographie le code source et recueille des éléments concrets pour la revue.
  • reviewer recherche les erreurs de logique, les risques de sécurité et les lacunes dans les tests.
  • docs_researcher vérifie la documentation des frameworks ou des API à l’aide d’un serveur MCP dédié.

Configuration du projet (.codex/config.toml) :

[agents]
max_concurrent_threads_per_session = 8

[mcp_servers.openaiDeveloperDocs]
url = "https://developers.openai.com/mcp"

.codex/agents/pr-explorer.toml :

name = "pr_explorer"
description = "Read-only codebase explorer for gathering evidence before changes are proposed."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Stay in exploration mode.
Do not edit files.
Trace the real execution path, cite files and symbols, and avoid proposing fixes unless the parent agent asks for them.
Prefer fast search and targeted file reads over broad scans.
"""

.codex/agents/reviewer.toml :

name = "reviewer"
description = "PR reviewer focused on correctness, security, and missing tests."
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
developer_instructions = """
Review code like an owner.
Do not edit files.
Prioritize correctness, security, behavior regressions, and missing test coverage.
Lead with concrete findings, include reproduction steps when possible, and avoid style-only comments unless they hide a real bug.
"""

.codex/agents/docs-researcher.toml :

name = "docs_researcher"
description = "Documentation specialist that uses the docs MCP server to verify APIs and framework behavior."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Use the docs MCP server to confirm APIs, options, and version-specific behavior.
Return concise answers with links or exact references when available.
Do not make code changes.
"""

Cette configuration convient à des prompts comme celui-ci :

Passez en revue les modifications de cette branche par rapport à main. Demandez à pr_explorer de retracer les chemins d’exécution concernés, à reviewer d’identifier les risques concrets et à docs_researcher de vérifier les API du framework dont dépend le correctif.

Exemple 2 : débogage d’une intégration frontend

Cette répartition convient aux régressions d’interface, aux parcours qui échouent de façon intermittente dans le navigateur ou aux bugs d’intégration qui touchent à la fois le code de l’application et le produit en cours d’exécution.

Configuration du projet (.codex/config.toml) :

[agents]
max_concurrent_threads_per_session = 6

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
startup_timeout_sec = 20

.codex/agents/code-mapper.toml :

name = "code_mapper"
description = "Read-only codebase explorer for locating the relevant frontend and backend code paths."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Map the code that owns the failing UI flow.
Do not edit files.
Identify entry points, state transitions, and likely files before the worker starts editing.
"""

.codex/agents/browser-debugger.toml :

name = "browser_debugger"
description = "UI debugger that uses browser tooling to reproduce issues and capture evidence."
model = "gpt-6.1-sol"
model_reasoning_effort = "medium"
developer_instructions = """
Reproduce the issue in the browser, capture exact steps, and report what the UI actually does.
Use browser tooling for screenshots, console output, and network evidence.
Do not edit application code.
"""

.codex/agents/ui-fixer.toml :

name = "ui_fixer"
description = "Implementation-focused agent for small, targeted fixes after the issue is understood."
model = "gpt-6-luna"
model_reasoning_effort = "high"
developer_instructions = """
Own the fix once the issue is reproduced.
Make the smallest defensible change, keep unrelated files untouched, and validate only the behavior you changed.
"""

[[skills.config]]
path = "/Users/me/.agents/skills/docs-editor/SKILL.md"
enabled = false

Cette configuration convient à des prompts comme celui-ci :

Cherchez pourquoi l’enregistrement échoue dans la fenêtre modale des paramètres. Demandez à browser_debugger de reproduire le problème et à code_mapper de retracer le chemin d’exécution en cause. Une fois le mécanisme de l’échec compris, demandez à ui_fixer d’appliquer le plus petit correctif possible.