24 24
25Claude utilise la description de chaque sous-agent pour décider quand déléguer les tâches. Lorsque vous créez un sous-agent, écrivez une description claire pour que Claude sache quand l'utiliser.25Claude utilise la description de chaque sous-agent pour décider quand déléguer les tâches. Lorsque vous créez un sous-agent, écrivez une description claire pour que Claude sache quand l'utiliser.
26 26
27Claude Code inclut plusieurs sous-agents intégrés comme **Explore**, **Plan** et **general-purpose**. Vous pouvez également créer des sous-agents personnalisés pour gérer des tâches spécifiques.27Claude Code inclut plusieurs sous-agents intégrés comme Explore, Plan et general-purpose. Vous pouvez également créer des sous-agents personnalisés pour gérer des tâches spécifiques.
28 28
29<h2 id="built-in-subagents">29<h2 id="built-in-subagents">
30 Sous-agents intégrés30 Sous-agents intégrés
38 <Tab title="Explore">38 <Tab title="Explore">
39 Un agent rapide et en lecture seule optimisé pour la recherche et l'analyse de bases de code.39 Un agent rapide et en lecture seule optimisé pour la recherche et l'analyse de bases de code.
40 40
41 * **Modèle** : Haiku (rapide, faible latence)41 * **Modèle** : hérité de la conversation principale, limité à Opus sur l'API Claude, donc Explore ne s'exécute jamais sur un modèle plus coûteux que celui que vous avez déjà choisi pour la session
42 * **Outils** : Outils en lecture seule (accès refusé aux outils Write et Edit)42 * **Outils** : outils en lecture seule ; Write et Edit sont refusés
43 * **Objectif** : Découverte de fichiers, recherche de code, exploration de base de code43 * **Objectif** : découverte de fichiers, recherche de code, exploration de base de code
44
45 {/* min-version: 2.1.198 */}À partir de la v2.1.198, Explore hérite du modèle de la conversation principale au lieu de toujours s'exécuter sur Haiku. Sur l'API Claude, le modèle hérité est limité à Opus : une conversation principale sur un niveau supérieur exécute Explore sur Opus, et une conversation principale sur Sonnet ou Haiku exécute Explore sur ce même modèle. Sur tout autre fournisseur, tel que [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform on AWS](/fr/third-party-integrations), Explore hérite directement du modèle de la conversation principale.
46
47 Un [sous-agent utilisateur ou projet](#choose-the-subagent-scope) nommé `Explore` remplace le sous-agent intégré et conserve son propre champ `model`, donc définissez-en un avec `model: haiku` pour maintenir l'exploration sur un modèle moins coûteux.
44 48
45 Claude délègue à Explore lorsqu'il doit rechercher ou comprendre une base de code sans apporter de modifications. Cela garde les résultats d'exploration en dehors du contexte de votre conversation principale.49 Claude délègue à Explore lorsqu'il doit rechercher ou comprendre une base de code sans apporter de modifications. Cela garde les résultats d'exploration en dehors du contexte de votre conversation principale.
46 50
50 <Tab title="Plan">54 <Tab title="Plan">
51 Un agent de recherche utilisé pendant le [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode) pour rassembler le contexte avant de présenter un plan.55 Un agent de recherche utilisé pendant le [mode plan](/fr/permission-modes#analyze-before-you-edit-with-plan-mode) pour rassembler le contexte avant de présenter un plan.
52 56
53 * **Modèle** : Hérité de la conversation principale57 * **Modèle** : hérité de la conversation principale
54 * **Outils** : Outils en lecture seule (accès refusé aux outils Write et Edit)58 * **Outils** : outils en lecture seule ; Write et Edit sont refusés
55 * **Objectif** : Recherche de base de code pour la planification59 * **Objectif** : recherche de base de code pour la planification
56 60
57 Lorsque vous êtes en mode plan et que Claude doit comprendre votre base de code, il délègue la recherche au sous-agent Plan afin que la sortie d'exploration reste dans une fenêtre de contexte séparée tandis que la conversation principale reste en lecture seule.61 Lorsque vous êtes en mode plan et que Claude doit comprendre votre base de code, il délègue la recherche au sous-agent Plan afin que la sortie d'exploration reste dans une fenêtre de contexte séparée tandis que la conversation principale reste en lecture seule.
58 </Tab>62 </Tab>
60 <Tab title="General-purpose">64 <Tab title="General-purpose">
61 Un agent capable pour les tâches complexes et multi-étapes qui nécessitent à la fois l'exploration et l'action.65 Un agent capable pour les tâches complexes et multi-étapes qui nécessitent à la fois l'exploration et l'action.
62 66
63 * **Modèle** : Hérité de la conversation principale67 * **Modèle** : hérité de la conversation principale
64 * **Outils** : Tous les outils68 * **Outils** : tous les outils
65 * **Objectif** : Recherche complexe, opérations multi-étapes, modifications de code69 * **Objectif** : recherche complexe, opérations multi-étapes, modifications de code
66 70
67 Claude délègue à general-purpose lorsque la tâche nécessite à la fois l'exploration et la modification, un raisonnement complexe pour interpréter les résultats, ou plusieurs étapes dépendantes.71 Claude délègue à general-purpose lorsque la tâche nécessite à la fois l'exploration et la modification, un raisonnement complexe pour interpréter les résultats, ou plusieurs étapes dépendantes.
68 </Tab>72 </Tab>
77 </Tab>81 </Tab>
78</Tabs>82</Tabs>
79 83
80Les sous-agents intégrés sont toujours enregistrés dans les sessions interactives. Pour blocker un type intégré spécifique, ajoutez-le à `permissions.deny` comme indiqué dans [Désactiver des sous-agents spécifiques](#disable-specific-subagents). Pour empêcher Claude de déléguer à un sous-agent, refusez l'outil `Agent` lui-même avec [`permissions.deny`](/fr/permissions#tool-specific-permission-rules). En [mode non-interactif](/fr/headless) et le [SDK Agent](/fr/agent-sdk/overview), définissez [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/fr/env-vars) pour supprimer tous les types intégrés et fournir uniquement les vôtres.84Les sous-agents intégrés sont enregistrés par défaut dans les sessions interactives. Pour les restreindre :
85
86* Pour bloquer un type intégré spécifique, ajoutez-le à `permissions.deny` comme indiqué dans [Désactiver des sous-agents spécifiques](#disable-specific-subagents).
87* Pour empêcher Claude de déléguer à un sous-agent, refusez l'outil `Agent` lui-même avec [`permissions.deny`](/fr/permissions#tool-specific-permission-rules).
88* {/* min-version: 2.1.198 */}Pour supprimer uniquement les sous-agents intégrés `Explore` et `Plan`, définissez [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/fr/env-vars). Claude lit et explore les fichiers directement au lieu de déléguer à ces sous-agents. Nécessite Claude Code v2.1.198 ou version ultérieure.
89* En [mode non-interactif](/fr/headless) et le [SDK Agent](/fr/agent-sdk/overview), définissez [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/fr/env-vars) pour supprimer tous les types intégrés et fournir uniquement les vôtres.
81 90
82Au-delà de ces sous-agents intégrés, vous pouvez créer les vôtres avec des invites personnalisées, des restrictions d'outils, des modes de permission, des hooks et des skills. Les sections suivantes montrent comment commencer et personnaliser les sous-agents.91Au-delà de ces sous-agents intégrés, vous pouvez créer les vôtres avec des invites personnalisées, des restrictions d'outils, des modes de permission, des hooks et des skills. Les sections suivantes montrent comment commencer et personnaliser les sous-agents.
83 92
85 Démarrage rapide : créer votre premier sous-agent94 Démarrage rapide : créer votre premier sous-agent
86</h2>95</h2>
87 96
88Les sous-agents sont définis dans des fichiers Markdown avec du frontmatter YAML. Vous pouvez les [créer manuellement](#write-subagent-files) ou utiliser la commande `/agents`.97Les sous-agents sont des fichiers Markdown avec du frontmatter YAML. Pour en créer un, demandez à Claude de l'écrire pour vous, ou [écrivez le fichier vous-même](#write-subagent-files).
89 98
90Cette procédure pas à pas vous guide dans la création d'un sous-agent au niveau utilisateur avec la commande `/agents`. Le sous-agent examine le code et suggère des améliorations pour la base de code.99{/* min-version: 2.1.198 */}À partir de la v2.1.198, la commande `/agents` n'ouvre plus l'assistant de création interactif ; l'exécuter affiche un rappel pour demander à Claude ou modifier `.claude/agents/` directement. Les fichiers de sous-agents, les champs de frontmatter, et les emplacements `.claude/agents/` et `~/.claude/agents/` restent inchangés ; seul l'assistant terminal est supprimé.
100
101Cette procédure pas à pas crée un sous-agent au niveau utilisateur qui examine le code et suggère des améliorations.
91 102
92<Steps>103<Steps>
93 <Step title="Ouvrir l'interface des sous-agents">104 <Step title="Demander à Claude de créer le sous-agent">
94 Dans Claude Code, exécutez :105 Dans Claude Code, décrivez le sous-agent que vous souhaitez et où l'enregistrer :
95 106
96 ```text wrap theme={null}107 ```text wrap theme={null}
97 /agents108 Create a personal code-improver subagent in ~/.claude/agents/ that scans
109 files and suggests improvements for readability, performance, and best
110 practices. It should explain each issue, show the current code, and
111 provide an improved version. Make it read-only and have it use Sonnet.
98 ```112 ```
99 </Step>
100 113
101 <Step title="Choisir un emplacement">114 Claude écrit le fichier avec un `name`, une `description`, une liste `tools`, un `model`, et une invite système.
102 Basculez vers l'onglet **Library**, sélectionnez **Create new agent**, puis choisissez **Personal**. Cela enregistre le sous-agent dans `~/.claude/agents/` pour qu'il soit disponible dans tous vos projets.
103 </Step>115 </Step>
104 116
105 <Step title="Générer avec Claude">117 <Step title="Examiner le fichier">
106 Sélectionnez **Generate with Claude**. Lorsque vous y êtes invité, décrivez le sous-agent :118 Ouvrez `~/.claude/agents/code-improver.md` et confirmez que le frontmatter correspond à ce que vous avez demandé. Le résultat ressemble à ceci :
107 119
108 ```text wrap theme={null}120 ```markdown theme={null}
109 A code improvement agent that scans files and suggests improvements121 ---
110 for readability, performance, and best practices. It should explain122 name: code-improver
111 each issue, show the current code, and provide an improved version.123 description: Scans files and suggests improvements for readability, performance, and best practices. Use after writing or modifying code.
124 tools: Read, Grep, Glob
125 model: sonnet
126 ---
127
128 You are a code improvement specialist. For each issue you find, explain
129 the problem, show the current code, and provide an improved version.
112 ```130 ```
113 131
114 Claude génère l'identifiant, la description et l'invite système pour vous.132 Parce que le fichier se trouve dans `~/.claude/agents/`, le sous-agent est disponible dans chaque projet sur votre machine. Pour le limiter à un seul projet, déplacez-le vers le répertoire `.claude/agents/` de ce projet. [Choisir la portée du sous-agent](#choose-the-subagent-scope) compare les deux.
115 </Step>
116
117 <Step title="Sélectionner les outils">
118 Pour un examinateur en lecture seule, désélectionnez tout sauf **Read-only tools**. Si vous gardez tous les outils sélectionnés, le sous-agent hérite de tous les outils disponibles pour la conversation principale.
119 </Step>133 </Step>
120 134
121 <Step title="Sélectionner le modèle">135 <Step title="L'essayer">
122 Choisissez le modèle que le sous-agent utilise. Pour cet exemple d'agent, sélectionnez **Sonnet**, qui équilibre la capacité et la vitesse pour analyser les modèles de code.136 Demandez à Claude de déléguer au nouveau sous-agent :
123 </Step>
124
125 <Step title="Choisir une couleur">
126 Choisissez une couleur de fond pour le sous-agent. Cela vous aide à identifier quel sous-agent s'exécute dans l'interface utilisateur.
127 </Step>
128
129 <Step title="Configurer la mémoire">
130 Sélectionnez **User scope** pour donner au sous-agent un [répertoire de mémoire persistante](#enable-persistent-memory) à `~/.claude/agent-memory/`. Le sous-agent utilise ceci pour accumuler des insights dans les conversations, comme les modèles de base de code et les problèmes récurrents. Sélectionnez **None** si vous ne souhaitez pas que le sous-agent persiste les apprentissages.
131 </Step>
132
133 <Step title="Enregistrer et essayer">
134 Examinez le résumé de la configuration. Appuyez sur `s` ou `Entrée` pour enregistrer, ou appuyez sur `e` pour enregistrer et modifier le fichier dans votre éditeur. Le sous-agent est disponible immédiatement. Essayez-le :
135 137
136 ```text wrap theme={null}138 ```text wrap theme={null}
137 Use the code-improver agent to suggest improvements in this project139 Use the code-improver agent to suggest improvements in this project
138 ```140 ```
139 141
140 Claude délègue à votre nouveau sous-agent, qui analyse la base de code et retourne les suggestions d'amélioration.142 Claude délègue à votre nouveau sous-agent, qui analyse la base de code et retourne les suggestions d'amélioration.
143
144 Si Claude ne trouve pas le nouveau sous-agent, redémarrez Claude Code et réessayez. Cela se produit uniquement lorsque `~/.claude/agents/` n'existait pas avant le démarrage de la session, car une session en cours ne détecte pas un répertoire `agents` nouvellement créé.
141 </Step>145 </Step>
142</Steps>146</Steps>
143 147
144Vous avez maintenant un sous-agent que vous pouvez utiliser dans n'importe quel projet sur votre machine pour analyser les bases de code et suggérer des améliorations.148Vous avez maintenant un sous-agent que vous pouvez utiliser dans n'importe quel projet sur votre machine pour analyser les bases de code et suggérer des améliorations.
145 149
146Vous pouvez également créer des sous-agents manuellement en tant que fichiers Markdown, les définir via des drapeaux CLI ou les distribuer via des plugins. Les sections suivantes couvrent toutes les options de configuration.150Vous pouvez également écrire des fichiers de sous-agents à la main, les définir via des drapeaux CLI, ou les distribuer via des plugins. Les sections suivantes couvrent toutes les options de configuration.
151
152<Note>
153 Sur Claude Code v2.1.197 et antérieur, `/agents` ouvre un assistant interactif avec un onglet **Running** qui liste les sous-agents actifs et un onglet **Library** pour les créer, les modifier et les supprimer. {/* max-version: 2.1.197 */}
154</Note>
147 155
148<h2 id="configure-subagents">156<h2 id="configure-subagents">
149 Configurer les sous-agents157 Configurer les sous-agents
150</h2>158</h2>
151 159
152<h3 id="use-the-/agents-command">160La localisation d'un fichier de sous-agent détermine qui y a accès, et son frontmatter détermine ce qu'il peut faire. Cette section couvre l'emplacement des fichiers de sous-agent et chaque champ qu'ils prennent en charge.
153 Utiliser la commande /agents
154</h3>
155
156La commande `/agents` ouvre une interface à onglets pour gérer les sous-agents. L'onglet **Running** affiche les sous-agents en direct et récemment terminés et vous permet de les ouvrir ou de les arrêter. L'onglet **Library** vous permet de :
157
158* Afficher tous les sous-agents disponibles (intégrés, utilisateur, projet et plugin)
159* Créer de nouveaux sous-agents avec une configuration guidée ou une génération Claude
160* Modifier la configuration des sous-agents existants et l'accès aux outils
161* Supprimer les sous-agents personnalisés
162* Voir quels sous-agents sont actifs en cas de doublons
163
164C'est la méthode recommandée pour créer et gérer les sous-agents. Pour la création manuelle ou l'automatisation, vous pouvez également ajouter des fichiers de sous-agent directement.
165 161
166<h3 id="choose-the-subagent-scope">162<h3 id="choose-the-subagent-scope">
167 Choisir la portée du sous-agent163 Choisir la portée du sous-agent
168</h3>164</h3>
169 165
170Les sous-agents sont des fichiers Markdown avec du frontmatter YAML. Stockez-les dans différents emplacements selon la portée. Lorsque plusieurs sous-agents partagent le même nom, Claude Code utilise celui de l'emplacement de priorité plus élevée.166Stockez les fichiers de sous-agent dans différents emplacements selon la portée. Lorsque plusieurs sous-agents partagent le même nom, Claude Code utilise celui de l'emplacement de priorité plus élevée.
171 167
172| Emplacement | Portée | Priorité | Comment créer |168| Emplacement | Portée | Priorité | Comment créer |
173| :----------------------------- | :---------------------------- | :----------------- | :------------------------------------------- |169| :----------------------------- | :---------------------------- | :----------------- | :-------------------------------------------------- |
174| Paramètres gérés | À l'échelle de l'organisation | 1 (la plus élevée) | Déployé via [paramètres gérés](/fr/settings) |170| Paramètres gérés | À l'échelle de l'organisation | 1 (la plus élevée) | Déployé via [paramètres gérés](/fr/settings) |
175| Drapeau CLI `--agents` | Session actuelle | 2 | Passer JSON lors du lancement de Claude Code |171| Drapeau CLI `--agents` | Session actuelle | 2 | Passer JSON lors du lancement de Claude Code |
176| `.claude/agents/` | Projet actuel | 3 | Interactif ou manuel |172| `.claude/agents/` | Projet actuel | 3 | Demander à Claude, ou créer le fichier manuellement |
177| `~/.claude/agents/` | Tous vos projets | 4 | Interactif ou manuel |173| `~/.claude/agents/` | Tous vos projets | 4 | Demander à Claude, ou créer le fichier manuellement |
178| Répertoire `agents/` du plugin | Où le plugin est activé | 5 (la plus basse) | Installé avec les [plugins](/fr/plugins) |174| Répertoire `agents/` du plugin | Où le plugin est activé | 5 (la plus basse) | Installé avec les [plugins](/fr/plugins) |
179 175
180**Les sous-agents de projet** (`.claude/agents/`) sont idéaux pour les sous-agents spécifiques à une base de code. Enregistrez-les dans le contrôle de version pour que votre équipe puisse les utiliser et les améliorer de manière collaborative.176**Les sous-agents de projet** (`.claude/agents/`) sont idéaux pour les sous-agents spécifiques à une base de code. Enregistrez-les dans le contrôle de version pour que votre équipe puisse les utiliser et les améliorer de manière collaborative.
185 181
186**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.182**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.
187 183
188Claude Code analyse `.claude/agents/` et `~/.claude/agents/` de manière récursive, vous pouvez donc organiser les définitions dans des sous-dossiers tels que `agents/review/` ou `agents/research/`. Le chemin du sous-répertoire n'affecte pas la façon dont un sous-agent est identifié ou invoqué, car l'identité provient uniquement du champ frontmatter `name`. Gardez les valeurs `name` uniques dans tout l'arborescence : si deux fichiers dans une même portée déclarent le même nom, Claude Code en charge un seul. {/* min-version: 2.1.196 */}À partir de la v2.1.196, l'exécution de `/doctor` signale les noms d'agents en doublon dans la même portée et affiche quelle définition est active.184Claude Code analyse `.claude/agents/` et `~/.claude/agents/` de manière récursive, vous pouvez donc organiser les définitions dans des sous-dossiers tels que `agents/review/` ou `agents/research/`. Le chemin du sous-répertoire n'affecte pas la façon dont un sous-agent est identifié ou invoqué, car l'identité provient uniquement du champ frontmatter `name`.
185
186Gardez les valeurs `name` uniques dans tout l'arborescence : si deux fichiers dans une même portée déclarent le même nom, Claude Code en charge un seul. {/* min-version: 2.1.196 */}À partir de la v2.1.196, l'exécution de `/doctor` signale les noms d'agents en doublon dans la même portée et affiche quelle définition est active.
189 187
190Les répertoires `agents/` des plugins sont également analysés de manière récursive. Contrairement aux portées de projet et utilisateur, un sous-dossier à l'intérieur du répertoire `agents/` d'un plugin devient partie de l'[identifiant limité](#invoke-subagents-explicitly) : un fichier à `agents/review/security.md` dans le plugin `my-plugin` s'enregistre comme `my-plugin:review:security`.188Les répertoires `agents/` des plugins sont également analysés de manière récursive. Contrairement aux portées de projet et utilisateur, un sous-dossier à l'intérieur du répertoire `agents/` d'un plugin devient partie de l'[identifiant limité](#invoke-subagents-explicitly) : un fichier à `agents/review/security.md` dans le plugin `my-plugin` s'enregistre comme `my-plugin:review:security`.
191 189
233 231
234**Les sous-agents gérés** sont déployés par les administrateurs de l'organisation. Placez les fichiers markdown dans `.claude/agents/` à l'intérieur du [répertoire des paramètres gérés](/fr/settings#settings-files), en utilisant le même format de frontmatter que les sous-agents de projet et utilisateur. Les définitions gérées prennent précédence sur les sous-agents de projet et utilisateur portant le même nom.232**Les sous-agents gérés** sont déployés par les administrateurs de l'organisation. Placez les fichiers markdown dans `.claude/agents/` à l'intérieur du [répertoire des paramètres gérés](/fr/settings#settings-files), en utilisant le même format de frontmatter que les sous-agents de projet et utilisateur. Les définitions gérées prennent précédence sur les sous-agents de projet et utilisateur portant le même nom.
235 233
236**Les sous-agents de plugin** proviennent des [plugins](/fr/plugins) que vous avez installés. Ils apparaissent dans `/agents` aux côtés de vos sous-agents personnalisés. Consultez la [référence des composants de plugin](/fr/plugins-reference#agents) pour plus de détails sur la création de sous-agents de plugin.234**Les sous-agents de plugin** proviennent des [plugins](/fr/plugins) que vous avez installés. Ils se chargent aux côtés de vos sous-agents personnalisés et apparaissent dans la saisie semi-automatique @-mention sous leur nom limité. Consultez la [référence des composants de plugin](/fr/plugins-reference#agents) pour plus de détails sur la création de sous-agents de plugin.
237 235
238<Note>236<Note>
239 Pour des raisons de sécurité, les sous-agents de plugin ne prennent pas en charge les champs frontmatter `hooks`, `mcpServers` ou `permissionMode`. Ces champs sont ignorés lors du chargement des agents à partir d'un plugin. Si vous en avez besoin, copiez le fichier d'agent dans `.claude/agents/` ou `~/.claude/agents/`. Vous pouvez également ajouter des règles à [`permissions.allow`](/fr/settings#permission-settings) dans `settings.json` ou `settings.local.json`, mais ces règles s'appliquent à l'ensemble de la session, pas seulement au sous-agent du plugin.237 Pour des raisons de sécurité, les sous-agents de plugin ne prennent pas en charge les champs frontmatter `hooks`, `mcpServers` ou `permissionMode`. Ces champs sont ignorés lors du chargement des agents à partir d'un plugin. Si vous en avez besoin, copiez le fichier d'agent dans `.claude/agents/` ou `~/.claude/agents/`. Vous pouvez également ajouter des règles à [`permissions.allow`](/fr/settings#permission-settings) dans `settings.json` ou `settings.local.json`, mais ces règles s'appliquent à l'ensemble de la session, pas seulement au sous-agent du plugin.
248Les fichiers de sous-agent utilisent du frontmatter YAML pour la configuration, suivi de l'invite système en Markdown :246Les fichiers de sous-agent utilisent du frontmatter YAML pour la configuration, suivi de l'invite système en Markdown :
249 247
250<Note>248<Note>
251 Les sous-agents sont chargés au démarrage de la session. Si vous ajoutez ou modifiez un fichier de sous-agent directement sur le disque, redémarrez votre session pour le charger. Les sous-agents créés via l'interface `/agents` prennent effet immédiatement sans redémarrage.249 Claude Code surveille `~/.claude/agents/` et `.claude/agents/`. Lorsque vous ajoutez ou modifiez un fichier de sous-agent sur le disque, ou demandez à Claude d'en écrire un pour vous, Claude Code détecte le changement en quelques secondes et la prochaine délégation utilise la définition mise à jour, sans redémarrage nécessaire.
250
251 Deux cas nécessitent toujours un redémarrage :
252
253 * L'observateur couvre uniquement les répertoires qui existaient au démarrage de la session, donc après la création du premier fichier d'agent d'une portée dans un nouveau répertoire `agents`, redémarrez pour le charger.
254 * Les sessions démarrées avec `--disable-slash-commands` ne surveillent pas du tout ces répertoires.
252</Note>255</Note>
253 256
254```markdown theme={null}257```markdown theme={null}
263specific, actionable feedback on quality, security, and best practices.266specific, actionable feedback on quality, security, and best practices.
264```267```
265 268
266Le frontmatter définit les métadonnées et la configuration du sous-agent. Le corps devient l'invite système qui guide le comportement du sous-agent. Les sous-agents reçoivent uniquement cette invite système (plus les détails d'environnement de base comme le répertoire de travail), pas l'invite système complète de Claude Code.269Le frontmatter définit les métadonnées et la configuration du sous-agent. Le corps devient l'invite système qui guide le comportement du sous-agent. Les sous-agents reçoivent uniquement cette invite système plus les détails d'environnement de base comme le répertoire de travail, pas l'invite système complète de Claude Code.
267 270
268Un sous-agent démarre dans le répertoire de travail actuel de la conversation principale. Au sein d'un sous-agent, les commandes `cd` ne persistent pas entre les appels d'outils Bash ou PowerShell et n'affectent pas le répertoire de travail de la conversation principale. Pour donner au sous-agent une copie isolée du référentiel à la place, définissez [`isolation: worktree`](#supported-frontmatter-fields).271Un sous-agent démarre dans le répertoire de travail actuel de la conversation principale. Au sein d'un sous-agent, les commandes `cd` ne persistent pas entre les appels d'outils Bash ou PowerShell et n'affectent pas le répertoire de travail de la conversation principale. Pour donner au sous-agent une copie isolée du référentiel à la place, définissez [`isolation: worktree`](#supported-frontmatter-fields).
269 272
286| `mcpServers` | Non | [Serveurs MCP](/fr/mcp) disponibles pour ce sous-agent. Chaque entrée est soit un nom de serveur référençant un serveur déjà configuré (par exemple, `"slack"`) soit une définition en ligne avec le nom du serveur comme clé et une [configuration de serveur MCP](/fr/mcp#installing-mcp-servers) complète comme valeur. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |289| `mcpServers` | Non | [Serveurs MCP](/fr/mcp) disponibles pour ce sous-agent. Chaque entrée est soit un nom de serveur référençant un serveur déjà configuré (par exemple, `"slack"`) soit une définition en ligne avec le nom du serveur comme clé et une [configuration de serveur MCP](/fr/mcp#installing-mcp-servers) complète comme valeur. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |
287| `hooks` | Non | [Hooks de cycle de vie](#define-hooks-for-subagents) limités à ce sous-agent. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |290| `hooks` | Non | [Hooks de cycle de vie](#define-hooks-for-subagents) limités à ce sous-agent. Ignoré pour les [sous-agents de plugin](#choose-the-subagent-scope) |
288| `memory` | Non | [Portée de la mémoire persistante](#enable-persistent-memory) : `user`, `project` ou `local`. Active l'apprentissage entre sessions |291| `memory` | Non | [Portée de la mémoire persistante](#enable-persistent-memory) : `user`, `project` ou `local`. Active l'apprentissage entre sessions |
289| `background` | Non | Définir sur `true` pour toujours exécuter ce sous-agent en tant que [tâche d'arrière-plan](#run-subagents-in-foreground-or-background). Par défaut : `false` |292| `background` | Non | Définir sur `true` pour toujours exécuter ce sous-agent en tant que [tâche d'arrière-plan](#run-subagents-in-foreground-or-background), même lorsque Claude a besoin de son résultat immédiatement. Lorsque non défini, Claude choisit, et {/* min-version: 2.1.198 */}à partir de la v2.1.198 il exécute les sous-agents en arrière-plan par défaut |
290| `effort` | Non | Niveau d'effort lorsque ce sous-agent est actif. Remplace le niveau d'effort de la session. Par défaut : hérite de la session. Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle |293| `effort` | Non | Niveau d'effort lorsque ce sous-agent est actif. Remplace le niveau d'effort de la session. Par défaut : hérite de la session. Options : `low`, `medium`, `high`, `xhigh`, `max` ; les niveaux disponibles dépendent du modèle |
291| `isolation` | Non | Définir sur `worktree` pour exécuter le sous-agent dans un [git worktree](/fr/worktrees) temporaire, ce qui lui donne une copie isolée du référentiel branchée par défaut à partir de votre [branche par défaut](/fr/worktrees#choose-the-base-branch) plutôt que du `HEAD` de la session parent. Le worktree est automatiquement nettoyé si le sous-agent n'apporte aucune modification |294| `isolation` | Non | Définir sur `worktree` pour exécuter le sous-agent dans un [git worktree](/fr/worktrees) temporaire, ce qui lui donne une copie isolée du référentiel branchée par défaut à partir de votre [branche par défaut](/fr/worktrees#choose-the-base-branch) plutôt que du `HEAD` de la session parent. Le worktree est automatiquement nettoyé si le sous-agent n'apporte aucune modification |
292| `color` | Non | Couleur d'affichage pour le sous-agent dans la liste des tâches et la transcription. Accepte `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` ou `cyan` |295| `color` | Non | Couleur d'affichage pour le sous-agent dans la liste des tâches et la transcription. Accepte `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` ou `cyan` |
312 315
313{/* min-version: 2.1.196 */}À partir de la v2.1.196, définir `CLAUDE_CODE_SUBAGENT_MODEL` sur `inherit` est identique à le laisser non défini : la résolution continue avec le paramètre `model` par invocation, puis le frontmatter. Dans les versions antérieures, `inherit` forçait les sous-agents sur le modèle de la conversation principale et ignorait ces deux sources.316{/* min-version: 2.1.196 */}À partir de la v2.1.196, définir `CLAUDE_CODE_SUBAGENT_MODEL` sur `inherit` est identique à le laisser non défini : la résolution continue avec le paramètre `model` par invocation, puis le frontmatter. Dans les versions antérieures, `inherit` forçait les sous-agents sur le modèle de la conversation principale et ignorait ces deux sources.
314 317
315La variable d'environnement, le paramètre par invocation et les valeurs du frontmatter sont vérifiés par rapport à la liste blanche [`availableModels`](/fr/model-config#restrict-model-selection) de votre organisation. Une valeur qui se résout en un modèle exclu n'est pas utilisée et le sous-agent s'exécute sur le modèle hérité à la place.318Claude Code vérifie la variable d'environnement, le paramètre par invocation et les valeurs du frontmatter par rapport à la liste blanche [`availableModels`](/fr/model-config#restrict-model-selection) de votre organisation. Une valeur qui se résout en un modèle exclu n'est pas utilisée et le sous-agent s'exécute sur le modèle hérité à la place.
319
320{/* min-version: 2.1.198 */}À partir de la v2.1.198, les sous-agents héritent également de la configuration [extended thinking](/fr/model-config#extended-thinking) de la conversation principale : si la réflexion est activée dans votre session, elle est activée pour le sous-agent, et si elle est désactivée, elle reste désactivée. Il n'y a pas de paramètre de réflexion par sous-agent. Avant la v2.1.198, les sous-agents s'exécutaient avec la réflexion étendue désactivée indépendamment du paramètre de la conversation principale.
316 321
317<h3 id="control-subagent-capabilities">322<h3 id="control-subagent-capabilities">
318 Contrôler les capacités des sous-agents323 Contrôler les capacités des sous-agents
390 395
391Si `Agent` est complètement omis de la liste `tools`, l'agent ne peut générer aucun sous-agent.396Si `Agent` est complètement omis de la liste `tools`, l'agent ne peut générer aucun sous-agent.
392 397
393L'outil `Agent(agent_type)` avec syntaxe de liste blanche s'applique uniquement à un agent s'exécutant en tant que thread principal avec `claude --agent`. Dans une définition de sous-agent, lister `Agent` dans `tools` permet à ce sous-agent de [générer des sous-agents imbriqués](#spawn-nested-subagents), mais toute liste de types à l'intérieur des parenthèses est ignorée.398La syntaxe de liste blanche `Agent(agent_type)` s'applique uniquement à un agent s'exécutant en tant que thread principal avec `claude --agent`. Dans une définition de sous-agent, lister `Agent` dans `tools` permet à ce sous-agent de [générer des sous-agents imbriqués](#spawn-nested-subagents), mais toute liste de types à l'intérieur des parenthèses est ignorée.
394 399
395<h4 id="scope-mcp-servers-to-a-subagent">400<h4 id="scope-mcp-servers-to-a-subagent">
396 Limiter les serveurs MCP à un sous-agent401 Limiter les serveurs MCP à un sous-agent
426Use the Playwright tools to navigate, screenshot, and interact with pages.431Use the Playwright tools to navigate, screenshot, and interact with pages.
427```432```
428 433
429Les définitions en ligne utilisent le même schéma que les entrées de serveur `.mcp.json` (`stdio`, `http`, `sse`, `ws`), indexées par le nom du serveur.434Les définitions en ligne utilisent le même schéma que les entrées de serveur `.mcp.json`, indexées par le nom du serveur, et prennent en charge les types `stdio`, `http`, `sse` et `ws`.
430 435
431Pour garder un serveur MCP en dehors de la conversation principale et éviter que ses descriptions d'outils ne consomment du contexte, définissez-le en ligne ici plutôt que dans `.mcp.json`. Le sous-agent obtient les outils ; la conversation parent ne les obtient pas.436Pour garder un serveur MCP en dehors de la conversation principale et éviter que ses descriptions d'outils ne consomment du contexte, définissez-le en ligne ici plutôt que dans `.mcp.json`. Le sous-agent obtient les outils ; la conversation parent ne les obtient pas.
432 437
522 Conseils de mémoire persistante527 Conseils de mémoire persistante
523</h5>528</h5>
524 529
525* `project` est la portée par défaut recommandée. Elle rend les connaissances du sous-agent partageables via le contrôle de version. Utilisez `user` lorsque les connaissances du sous-agent sont largement applicables dans les projets, ou `local` lorsque les connaissances ne doivent pas être enregistrées dans le contrôle de version.530* `project` est la portée par défaut recommandée. Elle rend les connaissances du sous-agent partageables via le contrôle de version.
526* Demandez au sous-agent de consulter sa mémoire avant de commencer le travail : « Examinez cette PR et consultez votre mémoire pour les modèles que vous avez vus auparavant. »531* Demandez au sous-agent de consulter sa mémoire avant de commencer le travail : « Examinez cette PR et consultez votre mémoire pour les modèles que vous avez vus auparavant. »
527* Demandez au sous-agent de mettre à jour sa mémoire après avoir terminé une tâche : « Maintenant que vous avez terminé, enregistrez ce que vous avez appris dans votre mémoire. » Au fil du temps, cela crée une base de connaissances qui rend le sous-agent plus efficace.532* Demandez au sous-agent de mettre à jour sa mémoire après avoir terminé une tâche : « Maintenant que vous avez terminé, enregistrez ce que vous avez appris dans votre mémoire. » Au fil du temps, cela crée une base de connaissances qui rend le sous-agent plus efficace.
528* Incluez les instructions de mémoire directement dans le fichier markdown du sous-agent pour qu'il maintienne proactivement sa propre base de connaissances :533* Incluez les instructions de mémoire directement dans le fichier markdown du sous-agent pour qu'il maintienne proactivement sa propre base de connaissances :
770* **Les sous-agents au premier plan** bloquent la conversation principale jusqu'à la fin. Les invites de permission vous sont transmises au fur et à mesure qu'elles se produisent.775* **Les sous-agents au premier plan** bloquent la conversation principale jusqu'à la fin. Les invites de permission vous sont transmises au fur et à mesure qu'elles se produisent.
771* **Les sous-agents en arrière-plan** s'exécutent simultanément pendant que vous continuez à travailler. {/* min-version: 2.1.186 */}À partir de la v2.1.186, lorsqu'un sous-agent en arrière-plan atteint un appel d'outil qui nécessite une permission, l'invite s'affiche dans votre session principale et nomme le sous-agent qui demande. Approuvez pour laisser le sous-agent continuer, ou appuyez sur Échap pour refuser cet appel d'outil sans arrêter le sous-agent. Avant la v2.1.186, les sous-agents en arrière-plan refusaient automatiquement tout appel d'outil qui aurait demandé une permission.776* **Les sous-agents en arrière-plan** s'exécutent simultanément pendant que vous continuez à travailler. {/* min-version: 2.1.186 */}À partir de la v2.1.186, lorsqu'un sous-agent en arrière-plan atteint un appel d'outil qui nécessite une permission, l'invite s'affiche dans votre session principale et nomme le sous-agent qui demande. Approuvez pour laisser le sous-agent continuer, ou appuyez sur Échap pour refuser cet appel d'outil sans arrêter le sous-agent. Avant la v2.1.186, les sous-agents en arrière-plan refusaient automatiquement tout appel d'outil qui aurait demandé une permission.
772 777
773Claude décide si les sous-agents s'exécutent au premier plan ou en arrière-plan en fonction de la tâche. Vous pouvez également :778{/* min-version: 2.1.198 */}À partir de la v2.1.198, les sous-agents s'exécutent en arrière-plan par défaut. Claude exécute un sous-agent au premier plan lorsqu'il a besoin du résultat avant de continuer. Le changement par défaut détermine où un sous-agent s'exécute, pas ce qu'il est autorisé à faire : les sous-agents en arrière-plan affichent toujours chaque invite de permission dans votre session principale. Avant la v2.1.198, Claude choisissait entre le premier plan et l'arrière-plan en fonction de la tâche.
774 779
775* Demander à Claude de « run this in the background »780Vous pouvez également diriger cela vous-même :
781
782* Demander à Claude d'exécuter une tâche en arrière-plan ou au premier plan
776* Appuyer sur **Ctrl+B** pour mettre une tâche en arrière-plan783* Appuyer sur **Ctrl+B** pour mettre une tâche en arrière-plan
777 784
778Pour désactiver toute la fonctionnalité de tâche en arrière-plan, définissez la variable d'environnement `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1`. Consultez [Variables d'environnement](/fr/env-vars).785Pour désactiver toute la fonctionnalité de tâche en arrière-plan, définissez la variable d'environnement `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` sur `1`. Consultez [Variables d'environnement](/fr/env-vars).
779 786
780Lorsque [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) est défini sur `1`, chaque génération de sous-agent s'exécute en arrière-plan indépendamment du champ `background`. Les invites de permission de ces sous-agents en arrière-plan s'affichent dans votre session principale comme décrit ci-dessus.787Lorsque [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) est défini sur `1`, chaque génération de sous-agent s'exécute en arrière-plan et le champ frontmatter `background` n'a aucun effet, car le mode fork supprime le paramètre `run_in_background` de l'outil `Agent`. `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` a la priorité sur le mode fork et maintient les générations de sous-agent au premier plan.
788
789<h3 id="api-errors-in-subagents">
790 Erreurs API dans les sous-agents
791</h3>
792
793{/* min-version: 2.1.199 */}À partir de la v2.1.199, un sous-agent dont l'exécution se termine sur une erreur API, comme une limite d'utilisation ou une erreur serveur répétée, signale cet échec à Claude au lieu de retourner le texte d'erreur comme s'il s'agissait des résultats du sous-agent. Ce que Claude reçoit dépend de l'endroit où le sous-agent s'est exécuté :
794
795* **Premier plan** : si une limite de débit, une surcharge ou une erreur serveur coupe un sous-agent qui a déjà produit une sortie, l'outil Agent retourne cette sortie partielle avec une note indiquant que le sous-agent a été coupé et n'a pas terminé sa tâche. Sinon, l'appel d'outil échoue avec [`Agent terminated early due to an API error`](/fr/errors#agent-terminated-early-due-to-an-api-error), suivi du détail de l'erreur.
796* **Arrière-plan** : le sous-agent est marqué comme échoué, et le message que Claude reçoit lorsqu'il se termine nomme l'erreur API et inclut la dernière sortie du sous-agent, de sorte que le travail partiel n'est pas perdu.
797
798Une fois que l'erreur API sous-jacente est résolue, demandez à Claude de réessayer la tâche ou de [reprendre le sous-agent](#resume-subagents).
781 799
782<h3 id="common-patterns">800<h3 id="common-patterns">
783 Modèles courants801 Modèles courants
850 868
851Un sous-agent imbriqué est configuré de la même manière qu'un sous-agent de niveau supérieur et se résout à partir des mêmes [portées](#choose-the-subagent-scope).869Un sous-agent imbriqué est configuré de la même manière qu'un sous-agent de niveau supérieur et se résout à partir des mêmes [portées](#choose-the-subagent-scope).
852 870
853Le panneau de sous-agent sous l'entrée d'invite affiche l'arborescence complète : chaque ligne affiche un nombre `(+N)` de descendants, et {/* min-version: 2.1.193 */}à partir de la v2.1.193, l'ouverture d'une ligne affiche les frères et sœurs de ce sous-agent et les enfants directs avec un chemin de retour à `main`. L'onglet En cours d'exécution dans [`/agents`](#use-the-%2Fagents-command) répertorie les sous-agents en cours d'exécution sous forme de liste plate.871Le panneau de sous-agent sous l'entrée d'invite affiche l'arborescence complète : chaque ligne affiche un nombre `(+N)` de descendants, et {/* min-version: 2.1.193 */}à partir de la v2.1.193, l'ouverture d'une ligne affiche les frères et sœurs de ce sous-agent et les enfants directs avec un chemin de retour à `main`.
854 872
855La profondeur est comptée comme le nombre de niveaux de sous-agent en dessous de la conversation principale, indépendamment du fait que chaque niveau s'exécute en [premier plan ou en arrière-plan](#run-subagents-in-foreground-or-background). Un sous-agent à la profondeur cinq ne reçoit pas l'outil Agent et ne peut pas générer d'autres. La limite est fixe et non configurable.873La profondeur est comptée comme le nombre de niveaux de sous-agent en dessous de la conversation principale, indépendamment du fait que chaque niveau s'exécute en [premier plan ou en arrière-plan](#run-subagents-in-foreground-or-background). Un sous-agent à la profondeur cinq ne reçoit pas l'outil Agent et ne peut pas générer d'autres. La limite est fixe et non configurable.
856 874
892 910
893Lorsqu'un sous-agent se termine, Claude reçoit son ID d'agent. Les agents Explore et Plan intégrés sont ponctuels et ne retournent pas d'ID d'agent, donc ils ne peuvent pas être repris ; utilisez `general-purpose` ou un sous-agent personnalisé lorsque vous avez besoin de continuer le travail.911Lorsqu'un sous-agent se termine, Claude reçoit son ID d'agent. Les agents Explore et Plan intégrés sont ponctuels et ne retournent pas d'ID d'agent, donc ils ne peuvent pas être repris ; utilisez `general-purpose` ou un sous-agent personnalisé lorsque vous avez besoin de continuer le travail.
894 912
895Claude utilise l'outil `SendMessage` avec l'ID de l'agent comme champ `to` pour le reprendre. L'outil `SendMessage` est toujours disponible pour reprendre les sous-agents par ID d'agent ou par nom. Les messages de protocole d'équipe structurés tels que `shutdown_request` et `plan_approval_response` nécessitent que les [équipes d'agents](/fr/agent-teams) soient activées.913Claude utilise l'outil `SendMessage` avec l'ID de l'agent ou le nom comme champ `to` pour le reprendre. `SendMessage` ne nécessite pas que les [équipes d'agents](/fr/agent-teams) soient activées ; seuls les messages de protocole d'équipe structurés tels que `shutdown_request` et `plan_approval_response` le font.
896 914
897Pour reprendre un sous-agent, demandez à Claude de continuer le travail précédent :915Pour reprendre un sous-agent, demandez à Claude de continuer le travail précédent :
898 916
906 924
907Si un sous-agent arrêté reçoit un `SendMessage`, il se reprend automatiquement en arrière-plan sans nécessiter une nouvelle invocation `Agent`.925Si un sous-agent arrêté reçoit un `SendMessage`, il se reprend automatiquement en arrière-plan sans nécessiter une nouvelle invocation `Agent`.
908 926
927{/* min-version: 2.1.199 */}À partir de la v2.1.199, `SendMessage` vérifie qu'un nom fait toujours référence au même agent qu'il a atteint plus tôt dans la conversation. Si un agent plus récent a pris le nom, comme un sous-agent en arrière-plan réengendré qui l'a réutilisé, Claude Code refuse l'envoi plutôt que de le livrer au mauvais agent, et l'erreur signale quel agent le nom atteint maintenant pour que Claude puisse le rediriger. Pour atteindre l'agent antérieur pendant qu'il s'exécute toujours, Claude l'adresse par l'ID d'agent de son résultat de génération. La vérification est limitée à la conversation actuelle et se réinitialise sur `/clear`.
928
929{/* min-version: 2.1.198 */}À partir de la v2.1.198, un sous-agent traite les messages de l'agent qui l'a lancé comme une direction de tâche normale, y compris les corrections de cours en cours de tâche, et agit en fonction de ceux-ci dans ses propres paramètres de permission. Deux limites tiennent toujours indépendamment de qui a envoyé le message : aucun message d'aucun agent ne compte comme votre approbation pour une invite de permission en attente, et aucun message d'agent ne peut modifier les paramètres de permission d'un sous-agent, `CLAUDE.md`, ou la configuration. Seul le système de permission ou vos propres messages peuvent accorder l'approbation.
930
909Vous pouvez également demander à Claude l'ID d'agent si vous souhaitez le référencer explicitement, ou trouver les ID dans les fichiers de transcription à `~/.claude/projects/{project}/{sessionId}/subagents/`. Chaque transcription est stockée sous la forme `agent-{agentId}.jsonl`.931Vous pouvez également demander à Claude l'ID d'agent si vous souhaitez le référencer explicitement, ou trouver les ID dans les fichiers de transcription à `~/.claude/projects/{project}/{sessionId}/subagents/`. Chaque transcription est stockée sous la forme `agent-{agentId}.jsonl`.
910 932
911Les transcriptions de sous-agent persistent indépendamment de la conversation principale :933Les transcriptions de sous-agent persistent indépendamment de la conversation principale :
973| `x` | Ignorer un fork terminé ou arrêter un fork en cours d'exécution |995| `x` | Ignorer un fork terminé ou arrêter un fork en cours d'exécution |
974| `Échap` | Retourner le focus à l'entrée d'invite |996| `Échap` | Retourner le focus à l'entrée d'invite |
975 997
998Avec la transcription d'un fork ou d'un sous-agent ouverte, les messages de suivi et les [skills](/fr/skills) vont à cet agent, mais les commandes intégrées s'exécutent toujours dans votre conversation principale. {/* min-version: 2.1.199 */}À partir de v2.1.199, taper `/model` ou `/fast` dans cette vue affiche un avis indiquant que cela change le modèle ou le mode rapide de la conversation principale, et non celui de l'agent visualisé, au lieu de l'exécuter silencieusement.
999
976<h3 id="how-forks-differ-from-named-subagents">1000<h3 id="how-forks-differ-from-named-subagents">
977 Comment les forks diffèrent des sous-agents nommés1001 Comment les forks diffèrent des sous-agents nommés
978</h3>1002</h3>
1016 Examinateur de code1040 Examinateur de code
1017</h3>1041</h3>
1018 1042
1019Un sous-agent en lecture seule qui examine le code sans le modifier. Cet exemple montre comment concevoir un sous-agent ciblé avec un accès limité aux outils (pas d'Edit ou Write) et une invite détaillée qui spécifie exactement ce qu'il faut chercher et comment formater la sortie.1043Un sous-agent en lecture seule qui examine le code sans le modifier. Cet exemple montre comment concevoir un sous-agent ciblé avec un accès limité aux outils qui exclut Edit et Write, et une invite détaillée qui spécifie exactement ce qu'il faut chercher et comment formater la sortie.
1020 1044
1021```markdown theme={null}1045```markdown theme={null}
1022---1046---