Si vous avez besoin de plusieurs agents travaillant en parallèle et communiquant entre eux, consultez plutôt agent teams. Les sous-agents fonctionnent au sein d’une seule session ; les équipes d’agents coordonnent les sessions séparées.
- Préserver le contexte en gardant l’exploration et l’implémentation en dehors de votre conversation principale
- Appliquer des contraintes en limitant les outils qu’un sous-agent peut utiliser
- Réutiliser les configurations dans les projets avec des sous-agents au niveau utilisateur
- Spécialiser le comportement avec des system prompts ciblés pour des domaines spécifiques
- Contrôler les coûts en acheminant les tâches vers des modèles plus rapides et moins chers comme Haiku
Sous-agents intégrés
Claude Code inclut des sous-agents intégrés que Claude utilise automatiquement le cas échéant. Chacun hérite des permissions de la conversation parent avec des restrictions d’outils supplémentaires.- Explore
- Plan
- General-purpose
- Other
Un agent rapide et en lecture seule optimisé pour la recherche et l’analyse de bases de code.
- Modèle : Haiku (rapide, faible latence)
- Outils : Outils en lecture seule (accès refusé aux outils Write et Edit)
- Objectif : Découverte de fichiers, recherche de code, exploration de base de code
Démarrage rapide : créer votre premier sous-agent
Les sous-agents sont définis dans des fichiers Markdown avec du frontmatter YAML. Vous pouvez les créer manuellement ou utiliser la commande/agents.
Cette procédure pas à pas vous guide dans la création d’un sous-agent au niveau utilisateur avec la commande /agent. Le sous-agent examine le code et suggère des améliorations pour la base de code.
Créer un nouvel agent au niveau utilisateur
Sélectionnez Create new agent, puis choisissez User-level. Cela enregistre le sous-agent dans
~/.claude/agents/ pour qu’il soit disponible dans tous vos projets.Générer avec Claude
Sélectionnez Generate with Claude. Lorsque vous y êtes invité, décrivez le sous-agent :Claude génère le system prompt et la configuration. Appuyez sur
e pour l’ouvrir dans votre éditeur si vous souhaitez le personnaliser.Sélectionner les outils
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.
Sélectionner le modèle
Choisissez quel modèle 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.
Choisir une couleur
Choisissez une couleur de fond pour le sous-agent. Cela vous aide à identifier quel sous-agent s’exécute dans l’interface utilisateur.
Configurer les sous-agents
Utiliser la commande /agents
La commande/agents fournit une interface interactive pour gérer les sous-agents. Exécutez /agents pour :
- Afficher tous les sous-agents disponibles (intégrés, utilisateur, projet et plugin)
- Créer de nouveaux sous-agents avec une configuration guidée ou une génération Claude
- Modifier la configuration des sous-agents existants et l’accès aux outils
- Supprimer les sous-agents personnalisés
- Voir quels sous-agents sont actifs lorsque des doublons existent
Choisir la portée du sous-agent
Les 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, l’emplacement de priorité plus élevée gagne.| Emplacement | Portée | Priorité | Comment créer |
|---|---|---|---|
Drapeau CLI --agents | Session actuelle | 1 (la plus élevée) | Passer JSON lors du lancement de Claude Code |
.claude/agents/ | Projet actuel | 2 | Interactif ou manuel |
~/.claude/agents/ | Tous vos projets | 3 | Interactif ou manuel |
Répertoire agents/ du plugin | Où le plugin est activé | 4 (la plus basse) | Installé avec plugins |
.claude/agents/) sont idéaux pour les sous-agents spécifiques à une base de code. Vérifiez-les dans le contrôle de version pour que votre équipe puisse les utiliser et les améliorer de manière collaborative.
Les sous-agents utilisateur (~/.claude/agents/) sont des sous-agents personnels disponibles dans tous vos projets.
Les sous-agents définis par CLI sont passés en JSON lors du lancement de Claude Code. Ils n’existent que pour cette session et ne sont pas enregistrés sur le disque, ce qui les rend utiles pour les tests rapides ou les scripts d’automatisation :
--agents accepte JSON avec les mêmes champs que le frontmatter. Utilisez prompt pour le system prompt (équivalent au corps markdown dans les sous-agents basés sur fichier). Consultez la référence CLI pour le format JSON complet.
Les sous-agents de plugin proviennent des 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 pour plus de détails sur la création de sous-agents de plugin.
Écrire des fichiers de sous-agent
Les fichiers de sous-agent utilisent du frontmatter YAML pour la configuration, suivi du system prompt en Markdown :Les sous-agents sont chargés au démarrage de la session. Si vous créez un sous-agent en ajoutant manuellement un fichier, redémarrez votre session ou utilisez
/agents pour le charger immédiatement.Champs de frontmatter pris en charge
Les champs suivants peuvent être utilisés dans le frontmatter YAML. Seulsname et description sont obligatoires.
| Champ | Obligatoire | Description |
|---|---|---|
name | Oui | Identifiant unique utilisant des lettres minuscules et des tirets |
description | Oui | Quand Claude doit déléguer à ce sous-agent |
tools | Non | Outils que le sous-agent peut utiliser. Hérite de tous les outils s’il est omis |
disallowedTools | Non | Outils à refuser, supprimés de la liste héritée ou spécifiée |
model | Non | Modèle à utiliser : sonnet, opus, haiku, ou inherit. Par défaut inherit |
permissionMode | Non | Mode de permission : default, acceptEdits, dontAsk, bypassPermissions, ou plan |
skills | Non | Skills à charger dans le contexte du sous-agent au démarrage. Le contenu complet de la skill est injecté, pas seulement mis à disposition pour l’invocation. Les sous-agents n’héritent pas des skills de la conversation parent |
hooks | Non | Lifecycle hooks limités à ce sous-agent |
memory | Non | Portée de la mémoire persistante : user, project, ou local. Active l’apprentissage entre sessions |
Choisir un modèle
Le champmodel contrôle quel modèle IA le sous-agent utilise :
- Alias de modèle : Utilisez l’un des alias disponibles :
sonnet,opus, ouhaiku - inherit : Utiliser le même modèle que la conversation principale
- Omis : S’il n’est pas spécifié, par défaut
inherit(utilise le même modèle que la conversation principale)
Contrôler les capacités du sous-agent
Vous pouvez contrôler ce que les sous-agents peuvent faire via l’accès aux outils, les modes de permission et les règles conditionnelles.Outils disponibles
Les sous-agents peuvent utiliser n’importe lequel des outils internes de Claude Code. Par défaut, les sous-agents héritent de tous les outils de la conversation principale, y compris les outils MCP. Pour restreindre les outils, utilisez le champtools (liste blanche) ou le champ disallowedTools (liste noire) :
Modes de permission
Le champpermissionMode contrôle comment le sous-agent gère les invites de permission. Les sous-agents héritent du contexte de permission de la conversation principale mais peuvent remplacer le mode.
| Mode | Comportement |
|---|---|
default | Vérification de permission standard avec invites |
acceptEdits | Auto-accepter les modifications de fichiers |
dontAsk | Auto-refuser les invites de permission (les outils explicitement autorisés fonctionnent toujours) |
bypassPermissions | Ignorer tous les contrôles de permission |
plan | Plan mode (exploration en lecture seule) |
bypassPermissions, cela prend précédence et ne peut pas être remplacé.
Précharger les skills dans les sous-agents
Utilisez le champskills pour injecter le contenu de la skill dans le contexte du sous-agent au démarrage. Cela donne au sous-agent des connaissances de domaine sans qu’il ait besoin de découvrir et charger les skills pendant l’exécution.
C’est l’inverse de exécuter une skill dans un sous-agent. Avec
skills dans un sous-agent, le sous-agent contrôle le system prompt et charge le contenu de la skill. Avec context: fork dans une skill, le contenu de la skill est injecté dans l’agent que vous spécifiez. Les deux utilisent le même système sous-jacent.Activer la mémoire persistante
Le champmemory donne au sous-agent un répertoire persistant qui survit aux conversations. Le sous-agent utilise ce répertoire pour accumuler des connaissances au fil du temps, comme les modèles de base de code, les insights de débogage et les décisions architecturales.
| Portée | Emplacement | Utiliser quand |
|---|---|---|
user | ~/.claude/agent-memory/<name-of-agent>/ | le sous-agent doit se souvenir des apprentissages dans tous les projets |
project | .claude/agent-memory/<name-of-agent>/ | les connaissances du sous-agent sont spécifiques au projet et partageables via le contrôle de version |
local | .claude/agent-memory-local/<name-of-agent>/ | les connaissances du sous-agent sont spécifiques au projet mais ne doivent pas être vérifiées dans le contrôle de version |
- Le system prompt du sous-agent inclut des instructions pour lire et écrire dans le répertoire de mémoire.
- Le system prompt du sous-agent inclut également les 200 premières lignes de
MEMORY.mddans le répertoire de mémoire, avec des instructions pour organiserMEMORY.mds’il dépasse 200 lignes. - Les outils Read, Write et Edit sont automatiquement activés pour que le sous-agent puisse gérer ses fichiers de mémoire.
Conseils de mémoire persistante
-
userest la portée par défaut recommandée. Utilisezprojectoulocallorsque les connaissances du sous-agent ne sont pertinentes que pour une base de code spécifique. - 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. »
- 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.
-
Incluez les instructions de mémoire directement dans le fichier markdown du sous-agent pour qu’il maintienne proactivement sa propre base de connaissances :
Règles conditionnelles avec hooks
Pour un contrôle plus dynamique de l’utilisation des outils, utilisez les hooksPreToolUse pour valider les opérations avant leur exécution. C’est utile lorsque vous devez autoriser certaines opérations d’un outil tout en en bloquant d’autres.
Cet exemple crée un sous-agent qui n’autorise que les requêtes de base de données en lecture seule. Le hook PreToolUse exécute le script spécifié dans command avant chaque commande Bash :
Désactiver les sous-agents spécifiques
Vous pouvez empêcher Claude d’utiliser des sous-agents spécifiques en les ajoutant au tableaudeny dans vos paramètres. Utilisez le format Task(subagent-name) où subagent-name correspond au champ name du sous-agent.
--disallowedTools :
Définir les hooks pour les sous-agents
Les sous-agents peuvent définir des hooks qui s’exécutent pendant le cycle de vie du sous-agent. Il y a deux façons de configurer les hooks :- Dans le frontmatter du sous-agent : Définir les hooks qui s’exécutent uniquement pendant que ce sous-agent est actif
- Dans
settings.json: Définir les hooks qui s’exécutent dans la session principale lorsque les sous-agents démarrent ou s’arrêtent
Hooks dans le frontmatter du sous-agent
Définissez les hooks directement dans le fichier markdown du sous-agent. Ces hooks s’exécutent uniquement pendant que ce sous-agent spécifique est actif et sont nettoyés lorsqu’il se termine. Tous les événements de hook sont pris en charge. Les événements les plus courants pour les sous-agents sont :| Événement | Entrée du matcher | Quand il se déclenche |
|---|---|---|
PreToolUse | Nom de l’outil | Avant que le sous-agent utilise un outil |
PostToolUse | Nom de l’outil | Après que le sous-agent utilise un outil |
Stop | (aucun) | Quand le sous-agent se termine (converti en SubagentStop à l’exécution) |
PreToolUse et exécute un linter après les modifications de fichiers avec PostToolUse :
Stop dans le frontmatter sont automatiquement convertis en événements SubagentStop.
Hooks au niveau du projet pour les événements de sous-agent
Configurez les hooks danssettings.json qui répondent aux événements du cycle de vie du sous-agent dans la session principale.
| Événement | Entrée du matcher | Quand il se déclenche |
|---|---|---|
SubagentStart | Nom du type d’agent | Quand un sous-agent commence l’exécution |
SubagentStop | (aucun) | Quand un sous-agent se termine |
SubagentStart prend en charge les matchers pour cibler des types d’agents spécifiques par nom. SubagentStop se déclenche pour tous les achèvements de sous-agent quel que soit les valeurs du matcher. Cet exemple exécute un script de configuration uniquement lorsque le sous-agent db-agent démarre, et un script de nettoyage lorsqu’un sous-agent se termine :
Travailler avec les sous-agents
Comprendre la délégation automatique
Claude délègue automatiquement les tâches en fonction de la description de la tâche dans votre demande, du champdescription dans les configurations de sous-agent et du contexte actuel. Pour encourager la délégation proactive, incluez des phrases comme « use proactively » dans le champ description de votre sous-agent.
Vous pouvez également demander un sous-agent spécifique explicitement :
Exécuter les sous-agents au premier plan ou en arrière-plan
Les sous-agents peuvent s’exécuter au premier plan (bloquant) ou en arrière-plan (concurrent) :- Les sous-agents au premier plan bloquent la conversation principale jusqu’à la fin. Les invites de permission et les questions de clarification (comme
AskUserQuestion) vous sont transmises. - Les sous-agents en arrière-plan s’exécutent simultanément pendant que vous continuez à travailler. Avant de lancer, Claude Code vous demande les permissions d’outils dont le sous-agent aura besoin, en s’assurant qu’il a les approbations nécessaires à l’avance. Une fois en cours d’exécution, le sous-agent hérite de ces permissions et auto-refuse tout ce qui n’est pas pré-approuvé. Si un sous-agent en arrière-plan doit poser des questions de clarification, cet appel d’outil échoue mais le sous-agent continue. Les outils MCP ne sont pas disponibles dans les sous-agents en arrière-plan.
- Demander à Claude de « run this in the background »
- Appuyer sur Ctrl+B pour mettre une tâche en arrière-plan
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS sur 1. Consultez Environment variables.
Modèles courants
Isoler les opérations à haut volume
L’une des utilisations les plus efficaces des sous-agents est l’isolation des opérations qui produisent de grandes quantités de résultats. L’exécution de tests, la récupération de documentation ou le traitement de fichiers journaux peuvent consommer un contexte important. En déléguant ces tâches à un sous-agent, la sortie détaillée reste dans le contexte du sous-agent tandis que seul le résumé pertinent revient à votre conversation principale.Exécuter la recherche en parallèle
Pour les investigations indépendantes, générez plusieurs sous-agents pour travailler simultanément :Chaîner les sous-agents
Pour les flux de travail multi-étapes, demandez à Claude d’utiliser les sous-agents en séquence. Chaque sous-agent termine sa tâche et retourne les résultats à Claude, qui transmet ensuite le contexte pertinent au sous-agent suivant.Choisir entre les sous-agents et la conversation principale
Utilisez la conversation principale quand :- La tâche nécessite des allers-retours fréquents ou un raffinement itératif
- Plusieurs phases partagent un contexte important (planification → implémentation → test)
- Vous apportez une modification rapide et ciblée
- La latence est importante. Les sous-agents commencent à zéro et peuvent avoir besoin de temps pour rassembler le contexte
- La tâche produit une sortie détaillée dont vous n’avez pas besoin dans votre contexte principal
- Vous souhaitez appliquer des restrictions d’outils ou des permissions spécifiques
- Le travail est autonome et peut retourner un résumé
Les sous-agents ne peuvent pas générer d’autres sous-agents. Si votre flux de travail nécessite une délégation imbriquée, utilisez Skills ou chaînez les sous-agents à partir de la conversation principale.
Gérer le contexte du sous-agent
Reprendre les sous-agents
Chaque invocation de sous-agent crée une nouvelle instance avec un contexte frais. Pour continuer le travail d’un sous-agent existant au lieu de recommencer, demandez à Claude de le reprendre. Les sous-agents repris conservent leur historique de conversation complet, y compris tous les appels d’outils précédents, les résultats et le raisonnement. Le sous-agent reprend exactement où il s’était arrêté plutôt que de recommencer à zéro. Lorsqu’un sous-agent se termine, Claude reçoit son ID d’agent. Pour reprendre un sous-agent, demandez à Claude de continuer le travail précédent :~/.claude/projects/{project}/{sessionId}/subagents/. Chaque transcription est stockée sous la forme agent-{agentId}.jsonl.
Les transcriptions de sous-agent persistent indépendamment de la conversation principale :
- Compaction de la conversation principale : Lorsque la conversation principale se compacte, les transcriptions de sous-agent ne sont pas affectées. Elles sont stockées dans des fichiers séparés.
- Persistance de session : Les transcriptions de sous-agent persistent au sein de leur session. Vous pouvez reprendre un sous-agent après avoir redémarré Claude Code en reprenant la même session.
- Nettoyage automatique : Les transcriptions sont nettoyées en fonction du paramètre
cleanupPeriodDays(par défaut : 30 jours).
Auto-compaction
Les sous-agents prennent en charge la compaction automatique en utilisant la même logique que la conversation principale. Par défaut, la compaction automatique se déclenche à environ 95 % de capacité. Pour déclencher la compaction plus tôt, définissezCLAUDE_AUTOCOMPACT_PCT_OVERRIDE sur un pourcentage inférieur (par exemple, 50). Consultez environment variables pour plus de détails.
Les événements de compaction sont enregistrés dans les fichiers de transcription de sous-agent :
preTokens indique combien de tokens ont été utilisés avant la compaction.
Exemples de sous-agents
Ces exemples démontrent des modèles efficaces pour construire des sous-agents. Utilisez-les comme points de départ, ou générez une version personnalisée avec Claude.Examinateur de code
Un 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’outils Edit ou Write) et un prompt détaillé qui spécifie exactement ce qu’il faut rechercher et comment formater la sortie.Débogueur
Un sous-agent qui peut à la fois analyser et corriger les problèmes. Contrairement à l’examinateur de code, celui-ci inclut Edit car corriger les bugs nécessite de modifier le code. Le prompt fournit un flux de travail clair du diagnostic à la vérification.Data scientist
Un sous-agent spécifique au domaine pour le travail d’analyse de données. Cet exemple montre comment créer des sous-agents pour des flux de travail spécialisés en dehors des tâches de codage typiques. Il définit explicitementmodel: sonnet pour une analyse plus capable.
Validateur de requête de base de données
Un sous-agent qui permet l’accès à Bash mais valide les commandes pour n’autoriser que les requêtes SQL en lecture seule. Cet exemple montre comment utiliser les hooksPreToolUse pour la validation conditionnelle lorsque vous avez besoin d’un contrôle plus fin que le champ tools ne le permet.
command dans votre configuration de hook :
tool_input.command. Le code de sortie 2 bloque l’opération et renvoie le message d’erreur à Claude. Consultez Hooks pour plus de détails sur les codes de sortie et Hook input pour le schéma d’entrée complet.
Étapes suivantes
Maintenant que vous comprenez les sous-agents, explorez ces fonctionnalités connexes :- Distribuer les sous-agents avec les plugins pour partager les sous-agents entre les équipes ou les projets
- Exécuter Claude Code par programmation avec le Agent SDK pour CI/CD et l’automatisation
- Utiliser les serveurs MCP pour donner aux sous-agents l’accès aux outils et données externes