Passer au contenu principal
Les sous-agents sont des assistants IA spécialisés qui gèrent des types de tâches spécifiques. Chaque sous-agent s’exécute dans sa propre context window avec un system prompt personnalisé, un accès à des outils spécifiques et des permissions indépendantes. Lorsque Claude rencontre une tâche qui correspond à la description d’un sous-agent, il délègue à ce sous-agent, qui fonctionne indépendamment et retourne les résultats.
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.
Les sous-agents vous aident à :
  • 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
Claude 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. Claude 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. Cette page couvre les sous-agents intégrés, comment créer les vôtres, les options de configuration complètes, les modèles de travail avec les sous-agents et les exemples de sous-agents.

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.
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
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.Lors de l’invocation d’Explore, Claude spécifie un niveau de minutie : quick pour les recherches ciblées, medium pour l’exploration équilibrée, ou very thorough pour l’analyse complète.
Au-delà de ces sous-agents intégrés, vous pouvez créer les vôtres avec des prompts personnalisés, des restrictions d’outils, des modes de permission, des hooks et des skills. Les sections suivantes montrent comment commencer et personnaliser les sous-agents.

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.
1

Ouvrir l'interface des sous-agents

Dans Claude Code, exécutez :
/agents
2

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.
3

Générer avec Claude

Sélectionnez Generate with Claude. Lorsque vous y êtes invité, décrivez le sous-agent :
A code improvement agent that scans files and suggests improvements
for readability, performance, and best practices. It should explain
each issue, show the current code, and provide an improved version.
Claude génère le system prompt et la configuration. Appuyez sur e pour l’ouvrir dans votre éditeur si vous souhaitez le personnaliser.
4

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.
5

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.
6

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.
7

Enregistrer et essayer

Enregistrez le sous-agent. Il est disponible immédiatement (aucun redémarrage nécessaire). Essayez-le :
Use the code-improver agent to suggest improvements in this project
Claude délègue à votre nouveau sous-agent, qui analyse la base de code et retourne les suggestions d’amélioration.
Vous 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. Vous 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.

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
C’est la façon recommandée de créer et de gérer les sous-agents. Pour la création manuelle ou l’automatisation, vous pouvez également ajouter directement des fichiers de sous-agent.

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.
EmplacementPortéePrioritéComment créer
Drapeau CLI --agentsSession actuelle1 (la plus élevée)Passer JSON lors du lancement de Claude Code
.claude/agents/Projet actuel2Interactif ou manuel
~/.claude/agents/Tous vos projets3Interactif ou manuel
Répertoire agents/ du pluginOù le plugin est activé4 (la plus basse)Installé avec plugins
Les sous-agents de projet (.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 :
claude --agents '{
  "code-reviewer": {
    "description": "Expert code reviewer. Use proactively after code changes.",
    "prompt": "You are a senior code reviewer. Focus on code quality, security, and best practices.",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  }
}'
Le drapeau --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.
---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---

You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.
Le frontmatter définit les métadonnées et la configuration du sous-agent. Le corps devient le system prompt qui guide le comportement du sous-agent. Les sous-agents reçoivent uniquement ce system prompt (plus les détails d’environnement de base comme le répertoire de travail), pas le system prompt complet de Claude Code.

Champs de frontmatter pris en charge

Les champs suivants peuvent être utilisés dans le frontmatter YAML. Seuls name et description sont obligatoires.
ChampObligatoireDescription
nameOuiIdentifiant unique utilisant des lettres minuscules et des tirets
descriptionOuiQuand Claude doit déléguer à ce sous-agent
toolsNonOutils que le sous-agent peut utiliser. Hérite de tous les outils s’il est omis
disallowedToolsNonOutils à refuser, supprimés de la liste héritée ou spécifiée
modelNonModèle à utiliser : sonnet, opus, haiku, ou inherit. Par défaut inherit
permissionModeNonMode de permission : default, acceptEdits, dontAsk, bypassPermissions, ou plan
skillsNonSkills à 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
hooksNonLifecycle hooks limités à ce sous-agent
memoryNonPortée de la mémoire persistante : user, project, ou local. Active l’apprentissage entre sessions

Choisir un modèle

Le champ model contrôle quel modèle IA le sous-agent utilise :
  • Alias de modèle : Utilisez l’un des alias disponibles : sonnet, opus, ou haiku
  • 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 champ tools (liste blanche) ou le champ disallowedTools (liste noire) :
---
name: safe-researcher
description: Research agent with restricted capabilities
tools: Read, Grep, Glob, Bash
disallowedTools: Write, Edit
---

Modes de permission

Le champ permissionMode 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.
ModeComportement
defaultVérification de permission standard avec invites
acceptEditsAuto-accepter les modifications de fichiers
dontAskAuto-refuser les invites de permission (les outils explicitement autorisés fonctionnent toujours)
bypassPermissionsIgnorer tous les contrôles de permission
planPlan mode (exploration en lecture seule)
Utilisez bypassPermissions avec prudence. Il ignore tous les contrôles de permission, permettant au sous-agent d’exécuter n’importe quelle opération sans approbation.
Si le parent utilise bypassPermissions, cela prend précédence et ne peut pas être remplacé.

Précharger les skills dans les sous-agents

Utilisez le champ skills 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.
---
name: api-developer
description: Implement API endpoints following team conventions
skills:
  - api-conventions
  - error-handling-patterns
---

Implement API endpoints. Follow the conventions and patterns from the preloaded skills.
Le contenu complet de chaque skill est injecté dans le contexte du sous-agent, pas seulement mis à disposition pour l’invocation. Les sous-agents n’héritent pas des skills de la conversation parent ; vous devez les lister explicitement.
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 champ memory 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.
---
name: code-reviewer
description: Reviews code for quality and best practices
memory: user
---

You are a code reviewer. As you review code, update your agent memory with
patterns, conventions, and recurring issues you discover.
Choisissez une portée en fonction de la largeur avec laquelle la mémoire doit s’appliquer :
PortéeEmplacementUtiliser 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
Lorsque la mémoire est activée :
  • 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.md dans le répertoire de mémoire, avec des instructions pour organiser MEMORY.md s’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
  • user est la portée par défaut recommandée. Utilisez project ou local lorsque 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 :
    Update your agent memory as you discover codepaths, patterns, library
    locations, and key architectural decisions. This builds up institutional
    knowledge across conversations. Write concise notes about what you found
    and where.
    

Règles conditionnelles avec hooks

Pour un contrôle plus dynamique de l’utilisation des outils, utilisez les hooks PreToolUse 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 :
---
name: db-reader
description: Execute read-only database queries
tools: Bash
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-readonly-query.sh"
---
Claude Code passe l’entrée du hook en JSON via stdin aux commandes du hook. Le script de validation lit ce JSON, extrait la commande Bash et quitte avec le code 2 pour bloquer les opérations d’écriture :
#!/bin/bash
# ./scripts/validate-readonly-query.sh

INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')

# Block SQL write operations (case-insensitive)
if echo "$COMMAND" | grep -iE '\b(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE)\b' > /dev/null; then
  echo "Blocked: Only SELECT queries are allowed" >&2
  exit 2
fi

exit 0
Consultez Hook input pour le schéma d’entrée complet et exit codes pour savoir comment les codes de sortie affectent le comportement.

Désactiver les sous-agents spécifiques

Vous pouvez empêcher Claude d’utiliser des sous-agents spécifiques en les ajoutant au tableau deny dans vos paramètres. Utilisez le format Task(subagent-name)subagent-name correspond au champ name du sous-agent.
{
  "permissions": {
    "deny": ["Task(Explore)", "Task(my-custom-agent)"]
  }
}
Cela fonctionne pour les sous-agents intégrés et personnalisés. Vous pouvez également utiliser le drapeau CLI --disallowedTools :
claude --disallowedTools "Task(Explore)"
Consultez la documentation Permissions pour plus de détails sur les règles de permission.

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 :
  1. Dans le frontmatter du sous-agent : Définir les hooks qui s’exécutent uniquement pendant que ce sous-agent est actif
  2. 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énementEntrée du matcherQuand il se déclenche
PreToolUseNom de l’outilAvant que le sous-agent utilise un outil
PostToolUseNom de l’outilAprès que le sous-agent utilise un outil
Stop(aucun)Quand le sous-agent se termine (converti en SubagentStop à l’exécution)
Cet exemple valide les commandes Bash avec le hook PreToolUse et exécute un linter après les modifications de fichiers avec PostToolUse :
---
name: code-reviewer
description: Review code changes with automatic linting
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-command.sh $TOOL_INPUT"
  PostToolUse:
    - matcher: "Edit|Write"
      hooks:
        - type: command
          command: "./scripts/run-linter.sh"
---
Les hooks 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 dans settings.json qui répondent aux événements du cycle de vie du sous-agent dans la session principale.
ÉvénementEntrée du matcherQuand il se déclenche
SubagentStartNom du type d’agentQuand 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 :
{
  "hooks": {
    "SubagentStart": [
      {
        "matcher": "db-agent",
        "hooks": [
          { "type": "command", "command": "./scripts/setup-db-connection.sh" }
        ]
      }
    ],
    "SubagentStop": [
      {
        "hooks": [
          { "type": "command", "command": "./scripts/cleanup-db-connection.sh" }
        ]
      }
    ]
  }
}
Consultez Hooks pour le format de configuration complet des hooks.

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 champ description 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 :
Use the test-runner subagent to fix failing tests
Have the code-reviewer subagent look at my recent changes

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.
Si un sous-agent en arrière-plan échoue en raison de permissions manquantes, vous pouvez le reprendre au premier plan pour réessayer avec des invites interactives. Claude 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 :
  • Demander à Claude de « run this in the background »
  • Appuyer sur Ctrl+B pour mettre une tâche en arrière-plan
Pour 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 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.
Use a subagent to run the test suite and report only the failing tests with their error messages

Exécuter la recherche en parallèle

Pour les investigations indépendantes, générez plusieurs sous-agents pour travailler simultanément :
Research the authentication, database, and API modules in parallel using separate subagents
Chaque sous-agent explore son domaine indépendamment, puis Claude synthétise les résultats. Cela fonctionne mieux lorsque les chemins de recherche ne dépendent pas les uns des autres.
Lorsque les sous-agents se terminent, leurs résultats reviennent à votre conversation principale. L’exécution de nombreux sous-agents qui retournent chacun des résultats détaillés peut consommer un contexte important.
Pour les tâches qui nécessitent un parallélisme soutenu ou qui dépassent votre context window, les agent teams donnent à chaque worker son propre contexte indépendant.

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.
Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them

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
Utilisez les sous-agents quand :
  • 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é
Considérez plutôt les Skills lorsque vous souhaitez des prompts ou des flux de travail réutilisables qui s’exécutent dans le contexte de la conversation principale plutôt que dans un contexte de sous-agent isolé.
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 :
Use the code-reviewer subagent to review the authentication module
[Agent completes]

Continue that code review and now analyze the authorization logic
[Claude resumes the subagent with full context from previous conversation]
Vous 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. 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éfinissez CLAUDE_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 :
{
  "type": "system",
  "subtype": "compact_boundary",
  "compactMetadata": {
    "trigger": "auto",
    "preTokens": 167189
  }
}
La valeur 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.
Meilleures pratiques :
  • Concevoir des sous-agents ciblés : chaque sous-agent doit exceller dans une tâche spécifique
  • Écrire des descriptions détaillées : Claude utilise la description pour décider quand déléguer
  • Limiter l’accès aux outils : accordez uniquement les permissions nécessaires pour la sécurité et la concentration
  • Vérifier dans le contrôle de version : partagez les sous-agents de projet avec votre équipe

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.
---
name: code-reviewer
description: Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code.
tools: Read, Grep, Glob, Bash
model: inherit
---

You are a senior code reviewer ensuring high standards of code quality and security.

When invoked:
1. Run git diff to see recent changes
2. Focus on modified files
3. Begin review immediately

Review checklist:
- Code is clear and readable
- Functions and variables are well-named
- No duplicated code
- Proper error handling
- No exposed secrets or API keys
- Input validation implemented
- Good test coverage
- Performance considerations addressed

Provide feedback organized by priority:
- Critical issues (must fix)
- Warnings (should fix)
- Suggestions (consider improving)

Include specific examples of how to fix issues.

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.
---
name: debugger
description: Debugging specialist for errors, test failures, and unexpected behavior. Use proactively when encountering any issues.
tools: Read, Edit, Bash, Grep, Glob
---

You are an expert debugger specializing in root cause analysis.

When invoked:
1. Capture error message and stack trace
2. Identify reproduction steps
3. Isolate the failure location
4. Implement minimal fix
5. Verify solution works

Debugging process:
- Analyze error messages and logs
- Check recent code changes
- Form and test hypotheses
- Add strategic debug logging
- Inspect variable states

For each issue, provide:
- Root cause explanation
- Evidence supporting the diagnosis
- Specific code fix
- Testing approach
- Prevention recommendations

Focus on fixing the underlying issue, not the symptoms.

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 explicitement model: sonnet pour une analyse plus capable.
---
name: data-scientist
description: Data analysis expert for SQL queries, BigQuery operations, and data insights. Use proactively for data analysis tasks and queries.
tools: Bash, Read, Write
model: sonnet
---

You are a data scientist specializing in SQL and BigQuery analysis.

When invoked:
1. Understand the data analysis requirement
2. Write efficient SQL queries
3. Use BigQuery command line tools (bq) when appropriate
4. Analyze and summarize results
5. Present findings clearly

Key practices:
- Write optimized SQL queries with proper filters
- Use appropriate aggregations and joins
- Include comments explaining complex logic
- Format results for readability
- Provide data-driven recommendations

For each analysis:
- Explain the query approach
- Document any assumptions
- Highlight key findings
- Suggest next steps based on data

Always ensure queries are efficient and cost-effective.

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 hooks PreToolUse pour la validation conditionnelle lorsque vous avez besoin d’un contrôle plus fin que le champ tools ne le permet.
---
name: db-reader
description: Execute read-only database queries. Use when analyzing data or generating reports.
tools: Bash
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-readonly-query.sh"
---

You are a database analyst with read-only access. Execute SELECT queries to answer questions about the data.

When asked to analyze data:
1. Identify which tables contain the relevant data
2. Write efficient SELECT queries with appropriate filters
3. Present results clearly with context

You cannot modify data. If asked to INSERT, UPDATE, DELETE, or modify schema, explain that you only have read access.
Claude Code passe l’entrée du hook en JSON via stdin aux commandes du hook. Le script de validation lit ce JSON, extrait la commande en cours d’exécution et la vérifie par rapport à une liste d’opérations d’écriture SQL. Si une opération d’écriture est détectée, le script quitte avec le code 2 pour bloquer l’exécution et retourne un message d’erreur à Claude via stderr. Créez le script de validation n’importe où dans votre projet. Le chemin doit correspondre au champ command dans votre configuration de hook :
#!/bin/bash
# Blocks SQL write operations, allows SELECT queries

# Read JSON input from stdin
INPUT=$(cat)

# Extract the command field from tool_input using jq
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')

if [ -z "$COMMAND" ]; then
  exit 0
fi

# Block write operations (case-insensitive)
if echo "$COMMAND" | grep -iE '\b(INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|TRUNCATE|REPLACE|MERGE)\b' > /dev/null; then
  echo "Blocked: Write operations not allowed. Use SELECT queries only." >&2
  exit 2
fi

exit 0
Rendez le script exécutable :
chmod +x ./scripts/validate-readonly-query.sh
Le hook reçoit JSON via stdin avec la commande Bash dans 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 :