Aller au contenu
Mastering Claude

Accueil / Étendre : compétences, MCP, sous-agents, hooks, plugins

Étendre : compétences, MCP, sous-agents, hooks, plugins9 minApplication

Sous-agents : déléguer dans un contexte isolé

Un sous-agent traite une tâche dans une fenêtre de contexte isolée et n'en renvoie que la conclusion, ce qui garde la conversation principale propre et permet d'en lancer plusieurs en parallèle.

Un sous-agent exécute une tâche dans sa propre fenêtre de contexte, séparée de la conversation principale. Quand il termine, seule sa conclusion revient dans le fil que vous suivez : les fichiers qu'il a lus, les journaux qu'il a parcourus et les impasses qu'il a explorées restent dans son contexte à lui, jamais dans le vôtre. C'est ce qui permet de déléguer une recherche volumineuse sans noyer la conversation principale sous des résultats que vous ne reconsulterez plus.

Ce qui charge au démarrage, et ce qui n'y arrive pas

Un sous-agent standard ne repart pas de rien : il reçoit son propre prompt système, distinct de celui de Claude Code, le message de délégation que vous avez écrit, la hiérarchie complète des fichiers CLAUDE.md du dépôt et un instantané du statut git pris au début de la session principale, sauf pour les agents Explore et Plan qui en sont privés, le contenu intégral de chaque skill nommée dans son champ skills, et la liste des agents frères lancés dans le même lot. Trois choses en revanche ne l'atteignent pas : le style de sortie choisi pour la session principale, la mémoire automatique, et la taille de la fenêtre de contexte de la conversation qui l'a lancé, puisque la sienne est dimensionnée par son propre modèle.

Les limites de concurrence et le filet de sécurité

Une session ne fait pas tourner un nombre illimité de sous-agents à la fois : la limite par défaut est de vingt sous-agents simultanés, réglable par CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS, et un sous-agent ne peut en engendrer un autre qu'à trois niveaux de profondeur par défaut sous la conversation principale, réglable par CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH. Au delà, une nouvelle délégation échoue avec un message de limite atteinte plutôt que de dégrader silencieusement la session.

Objectif : lister les fichiers de configuration d'un dépôt fictif
et résumer en une ligne le rôle de chacun.
Périmètre d'écriture autorisé : aucun.
Interdiction explicite : aucun commit, aucun push, aucune commande destructive.
Modèle : sonnet.

Une invite de délégation bien construite ressemble à cet exemple : un objectif complet, un périmètre d'écriture nommé, des interdictions explicites, et un modèle choisi plutôt qu'hérité par défaut. Rien ne doit dépendre d'un échange ultérieur, puisqu'un sous-agent ne peut pas revenir vous poser une question à mi-tâche.

Le rapport final d'un sous-agent n'est pas lu tel quel par le modèle principal : Claude Code le scanne d'abord, parce qu'un sous-agent a pu lire un fichier, une page web ou une sortie de commande que vous n'avez jamais relue vous même, et que le texte de cette source peut porter une instruction adressée à la conversation principale plutôt qu'à vous. Ce contrôle s'applique à chaque rapport, sans exception déclarée pour un sous-agent de confiance.

Le fork, une variante qui n'isole rien

Une variante distincte, le fork, invoquée par /subtask, ne repart pas d'un contexte vide : elle hérite de toute la conversation en cours jusqu'à l'instant de l'appel. Seul son résultat final rejoint ensuite le fil principal, comme pour un sous-agent standard, mais tout ce qui précédait l'appel était déjà connu du fork dès le départ. Le choix entre les deux dépend de ce que la tâche doit savoir : une recherche autonome n'a besoin d'aucun historique, une continuation d'un raisonnement déjà engagé en a besoin de tout.

La déclaration explicite du modèle n'est pas un détail cosmétique : un hook, contrairement à un sous-agent, ne choisit jamais d'appeler le modèle, il réagit à un événement du cycle de vie décidé par le harnais.

Figure 1

Le cycle complet d'une délégation

01
Tâche annexe repérée
Une recherche, une lecture de journal ou un parcours de fichiers qui ne servira plus ensuite dans la conversation principale.
02
Invite autonome écrite
Objectif complet, périmètre d'écriture, interdictions explicites et modèle choisi, sans rien qui dépende d'un échange ultérieur.
03
Exécution en contexte isolé
Le sous-agent lit, écrit et appelle des outils dans sa propre fenêtre, sans que le détail n'atteigne la conversation principale.
04
Rapport scanné
Claude Code examine le rapport final avant que le modèle principal ne le lise, pour neutraliser une instruction glissée dans une source externe.
05
Conclusion seule intégrée
Seul le résumé rejoint le fil principal, les fichiers lus et les impasses explorées restent dans le contexte du sous-agent.
La séquence montre ce qui reste dans le contexte du sous-agent et ce qui seul rejoint la conversation principale, la conclusion, après le contrôle de sécurité.
Figure 2

Ce qui atteint un sous-agent au démarrage

Ce qui charge au démarrageContexte de départStyle de sortie de la sessionFenêtre de contexteInvocation
Sous-agent standardSon propre prompt système, la hiérarchie CLAUDE.md et le statut git sauf pour Explore et Plan, les skills nomméesN'atteint pas le sous-agentDimensionnée par son propre modèle, pas celui du parentOutil Agent, contexte vide au départ
ForkToute la conversation en cours, déjà engagée au moment de l'appelHérite aussi de la conversation en coursDimensionnée par son propre modèleCommande /subtask
Le tableau isole quatre éléments et compare un sous-agent standard, qui repart à vide, au fork, qui hérite de toute la conversation en cours jusqu'à l'appel.
Calibrez vous-même

Un développeur délègue à un sous-agent la lecture d'une documentation publiée sur une page web, avec pour consigne d'en résumer les points clés. Il reçoit ensuite le résumé affiché à l'écran et le lit.

Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.

Ce qu’il faut retenir
  • Un sous-agent isole son propre contexte dès le démarrage, il ne partage rien de la conversation principale avant que vous ne le sollicitiez.
  • Ce qu'il hérite est fixe, prompt système propre, hiérarchie CLAUDE.md, statut git, sauf pour les agents Explore et Plan, skills nommées, mais le style de sortie et la mémoire automatique n'en font pas partie.
  • Vingt sous-agents par défaut peuvent tourner en même temps dans une session, et une chaîne de délégations ne descend pas au delà de trois niveaux par défaut sous la conversation principale, deux plafonds réglables par variable d'environnement.
  • Le rapport final d'un sous-agent est scanné avant que le modèle principal ne le lise, parce qu'une source externe consultée par le sous-agent peut porter une instruction cachée.
  • Un fork hérite de toute la conversation en cours au lieu de repartir à vide, et seul son résultat final rejoint ensuite le fil principal.
À faire maintenant

Choisissez une recherche sans conséquence dans un dépôt que vous connaissez, par exemple compter les fichiers de plus de trois cents lignes, écrivez une invite de délégation complète sur le modèle de l'exemple ci-dessus, et lancez-la en sous-agent pour comparer sa conclusion à ce que vous auriez trouvé vous même.

Vérifier à la source

Chaque affirmation datable de cette leçon renvoie ici au texte public qui la porte. Une source qui ne s’ouvre pas ne prouve rien.