Passer au contenu principal
Les sous-agents permettent à l’agent principal de lancer des agents de travail indépendants pour prendre en charge des sous-tâches. Un sous-agent partage les outils et le contexte de la base de code avec le parent, mais fonctionne dans son propre fil de conversation — il n’hérite pas de l’historique des conversations du parent. Cela est utile pour les tâches qui bénéficient d’un travail ciblé et indépendant — comme l’exploration d’une base de code, l’exécution de tests ou l’implémentation d’une fonctionnalité en parallèle. Vous pouvez demander explicitement à l’agent d’utiliser des sous-agents (p. ex. « étudie le fonctionnement de l’authentification dans un sous-agent »), ou l’agent peut décider de déléguer de lui-même lorsqu’il estime qu’une tâche bénéficierait d’un travail indépendant. D’après nos mesures, les sous-agents améliorent à la fois les performances globales de développement et réduisent les coûts.

Fonctionnement des sous-agents

Lorsque l’agent lance un sous-agent, il sélectionne l’un des profils de sous-agent disponibles et choisit si le sous-agent doit s’exécuter au premier plan ou en arrière-plan. Les sous-agents peuvent s’exécuter selon deux modes :

Premier plan

S’exécute directement dans votre session. L’agent parent se met en pause et attend que le sous-agent ait terminé avant de continuer. Vous pouvez approuver ou refuser les appels d’outil au fur et à mesure.

Arrière-plan

S’exécute en parallèle pendant que l’agent parent continue de travailler. L’agent parent est automatiquement informé lorsque le sous-agent a terminé. Les outils non approuvés sont automatiquement refusés.
Vous ne voyez pas directement la sortie brute du sous-agent. Lorsqu’un sous-agent termine, l’agent parent lit le résultat et vous en résume les principaux constats et actions.

Coût des sous-agents

Les sous-agents s’exécutent dans leurs propres sessions d’agent, chacune avec sa propre fenêtre de contexte et ses propres appels d’inférence. Ils entraînent donc des coûts indépendamment de l’agent parent. Les dépenses de l’agent parent couvrent son propre travail ; chaque sous-agent qu’il lance ajoute sa propre utilisation à cela.
Avec les forfaits basés sur les prompts, chaque sous-agent consomme des crédits supplémentaires, tout comme un message utilisateur. Le nombre de crédits dépend du modèle qu’utilise le sous-agent ; les tâches qui font appel à plusieurs sous-agents (ou qui les imbriquent) consomment donc plus de crédits.
Comme le coût augmente avec le nombre de sous-agents, les tâches qui se répartissent entre de nombreux sous-agents (ou les imbriquent) coûtent plus cher. Utilisez les sous-agents de manière intentionnelle lorsque le parallélisme ou un contexte plus ciblé justifie cette dépense supplémentaire.

Quel modèle utilise un sous-agent ?

Les sous-agents ne s’exécutent pas tous sur le modèle que vous avez choisi dans le sélecteur de modèle. Chaque profil détermine l’origine de son modèle :
subagent_general hérite du modèle du parent. Si vous utilisez un modèle premium, chaque sous-agent général utilise lui aussi ce modèle premium, avec sa propre fenêtre de contexte et ses propres appels d’inférence. Une tâche qui se répartit entre plusieurs sous-agents généraux multiplie donc vos dépenses. Demandez un sous-agent d’exploration (ou un sous-agent personnalisé avec un model: moins coûteux fixé) lorsque le travail relève de la recherche plutôt que de modifications de code.
Le modèle de sous-agent par défaut n’est pas un nom de modèle fixe : il est résolu via un routeur au moment de la création du sous-agent, et un Admin peut y appliquer une dérogation (voir ci-dessous). Avec le paramètre Subagent router par défaut, il se résout en SWE-1.6 (une variante plus rapide ou plus lente de SWE-1.6 selon le niveau de votre offre).
Le CLI n’indique pas actuellement, dans le panneau des sous-agents, quel modèle utilise un sous-agent en cours d’exécution.

Influencer le modèle

Il n’existe aucun moyen de spécifier un modèle pour un sous-agent dans un prompt — l’outil run_subagent prend un profil, pas un modèle. Vous disposez de deux leviers :
  1. Demandez un profil en langage naturel. Demander un sous-agent d’exploration (« recherche comment l’authentification fonctionne dans un sous-agent d’exploration ») permet de conserver l’exécution sur le modèle de sous-agent par défaut, peu coûteux. Demander des modifications de code vous donne subagent_general, qui utilise le modèle que vous avez sélectionné.
  2. Épinglez un modèle dans un profil de sous-agent personnalisé. model: dans AGENT.md est le seul moyen d’exécuter un sous-agent capable d’écrire sur un modèle autre que celui du parent. Un skill exécuté dans un sous-agent peut également définir model: dans son frontmatter pour appliquer une dérogation au modèle du profil.

Contrôles Enterprise

Les administrateurs peuvent définir quel modèle les sous-agents utilisent — et même s’ils s’exécutent ou non — via le paramètre Modèle de sous-agent par défaut dans les paramètres d’org/Enterprise. Ce paramètre contrôle le modèle pour subagent_explore et pour les sous-agents personnalisés qui n’épinglent pas de model: — il ne modifie pas subagent_general, qui suit toujours le modèle de l’agent parent.
Paramètre Modèle de sous-agent par défaut
Il propose trois options :

Profils de sous-agent

Chaque sous-agent utilise un profil spécifique qui détermine ses capacités. Il existe deux profils intégrés :
L’agent choisit automatiquement le profil approprié en fonction de la tâche. Les sous-agents d’exploration sont idéaux pour la recherche et la compréhension, tandis que les sous-agents généraux peuvent apporter des modifications. Consultez Quel modèle utilise un sous-agent ? pour savoir comment chaque profil choisit son modèle — les deux profils ne s’exécutent pas sur le même modèle.
Vous pouvez également définir vos propres profils de sous-agent personnalisés — voir Sous-agents personnalisés ci-dessous.

Autorisations des outils

La manière dont les autorisations des outils fonctionnent dépend du fait que le sous-agent s’exécute au premier plan ou en arrière-plan :
  • Les sous-agents au premier plan se comportent comme l’agent principal — vous êtes invité à autoriser ou refuser les appels aux outils comme d’habitude.
  • Les sous-agents en arrière-plan héritent de toutes les autorisations d’outils que vous avez déjà accordées au cours de la session actuelle. Tout outil qui n’a pas été préautorisé est automatiquement refusé. Les sous-agents en arrière-plan ne peuvent pas vous demander de nouvelles autorisations.
Si un sous-agent en arrière-plan échoue parce qu’un outil requis a été refusé, vous pouvez le reprendre au premier plan afin d’accorder les autorisations nécessaires. Voir Reprise des sous-agents ci-dessous.

Suivi des sous-agents

Indicateur de sous-agent

Lorsque des sous-agents s’exécutent en arrière-plan, un indicateur apparaît sous la zone de saisie pour indiquer leur statut. Vous pouvez accéder à l’indicateur en appuyant sur depuis la zone de saisie, puis sur Enter pour ouvrir le panneau des sous-agents. Lorsqu’un sous-agent s’exécute au premier plan, l’indicateur de chargement affiche “Sous-agent en cours d’exécution · Ctrl+B pour l’exécuter en arrière-plan”.

Panneau des sous-agents

Le panneau des sous-agents vous permet de voir et de gérer tous les sous-agents actifs et terminés. Il affiche, pour chaque sous-agent, le profil, le titre, le statut, le temps écoulé et le nombre d’appels d’outils.

Basculer entre le premier plan et l’arrière-plan

Vous pouvez déplacer des sous-agents entre le premier plan et l’arrière-plan pendant leur exécution :
  • Mettre en arrière-plan un sous-agent au premier plan : Appuyez sur Ctrl+B pendant l’exécution d’un sous-agent au premier plan. Le sous-agent continue de travailler en arrière-plan, et l’agent parent reprend.
  • Mettre au premier plan un sous-agent en arrière-plan : Ouvrez le panneau des sous-agents et appuyez sur f sur un sous-agent en arrière-plan en cours d’exécution. La sortie du sous-agent s’affichera directement dans le fil.
Lorsque vous déplacez un sous-agent en arrière-plan, l’appel d’outil de l’agent parent a déjà renvoyé son résultat ; l’agent parent continue donc indépendamment. Le résultat du sous-agent ne sera pas réinjecté dans le pipeline actuel du parent, mais vous serez averti lorsqu’il aura terminé.

Annulation des sous-agents

Vous pouvez annuler un sous-agent en cours d’exécution de deux façons :
  1. Depuis le panneau des sous-agents : Ouvrez le panneau et appuyez sur x sur un sous-agent en cours d’exécution.
  2. Sous-agent au premier plan : Appuyez sur Ctrl+C ou Esc pour annuler le sous-agent au premier plan en cours d’exécution.

Reprendre des sous-agents

Les sous-agents annulés, ayant échoué ou terminés peuvent être repris avec un nouveau prompt. Vous pouvez demander à l’agent de reprendre un sous-agent, et il continuera là où il s’était arrêté. Les sous-agents repris s’exécutent toujours au premier plan, afin que vous puissiez approuver les appels à des outils qui avaient été refusés précédemment. C’est particulièrement utile dans les cas suivants :
  • Un sous-agent en arrière-plan a échoué parce qu’un outil requis a été refusé — reprenez-le au premier plan pour accorder les autorisations nécessaires.
  • Un sous-agent s’est terminé, mais vous souhaitez qu’il effectue un travail de suivi supplémentaire en fonction de ses résultats.
  • Un sous-agent a été annulé prématurément et vous souhaitez qu’il continue.

Profondeur d’imbrication

Par défaut, les sous-agents ne peuvent pas créer leurs propres sous-agents — seul l’agent racine le peut. Les outils de sous-agent (run_subagent et read_subagent) sont désactivés au sein d’un sous-agent afin d’éviter une imbrication sans limite. Cependant, les profils de sous-agent personnalisés peuvent autoriser l’imbrication en définissant le champ max-nesting dans leur frontmatter. Cette valeur déroge à la profondeur maximale par défaut et permet aux sous-agents de créer des agents enfants tant que l’arborescence reste dans cette limite. Par exemple, max-nesting: 3 autorise la chaîne suivante :
Les sous-agents imbriqués peuvent faire grimper considérablement les coûts. Chaque niveau d’imbrication crée des agents supplémentaires, chacun avec sa propre fenêtre de contexte et ses propres appels d’inférence. Utilisez cette fonctionnalité avec discernement.

Sous-agents personnalisés

Les sous-agents personnalisés sont expérimentaux. Leur format, leur comportement et leurs options de configuration peuvent changer dans de futures versions.
En plus des profils intégrés subagent_explore et subagent_general, vous pouvez définir vos propres profils de sous-agents personnalisés. Les sous-agents personnalisés vous permettent de créer des agents spécialisés avec leurs propres prompts système, restrictions d’outils, dérogations de modèle et autorisations, adaptés à des tâches spécifiques dans votre workflow. C’est aussi le moyen d’obtenir un sous-agent capable d’écrire qui ne s’exécute pas sur votre modèle principal (potentiellement coûteux) : attribuez-lui un model: et les outils dont il a besoin.

Création d’un sous-agent personnalisé

Les sous-agents personnalisés prennent la forme de fichiers AGENT.md placés dans un répertoire nommé sous agents/. Le nom du répertoire devient l’identifiant du profil.
Également pris en charge :

Format d’AGENT.md

Un fichier AGENT.md utilise le même frontmatter YAML que les skills, suivi du prompt système du sous-agent :

Champs du frontmatter

Comment sont utilisés les sous-agents personnalisés

Une fois définis, les profils de sous-agents personnalisés apparaissent aux côtés des profils intégrés. L’agent voit une description de chaque profil disponible et choisit le plus approprié lorsqu’il crée un sous-agent. Vous pouvez aussi demander à l’agent d’utiliser un profil spécifique en le nommant (par ex., « examine ce code à l’aide du sous-agent reviewer »). Les profils de sous-agents personnalisés dont le nom entre en conflit avec celui d’un profil intégré (par ex., subagent_explore, subagent_general) sont ignorés, avec un avertissement.

Importation depuis d’autres outils

Les sous-agents personnalisés peuvent aussi être importés à partir du format d’agent de Claude Code :
Les fichiers d’agent de Claude Code utilisent tools au lieu de allowed-tools dans leur frontmatter. Les deux formats sont pris en charge automatiquement.

Exemples

Agent de recherche en mode lecture seule

Agent d’exécution des tests