Subagents
Découvre comment Bob utilise des subagents pour gérer des tâches ciblées et autonomes dans des contextes isolés sans polluer la conversation principale.
Que sont les subagents ?
Un subagent est un agent indépendant que Bob peut spawn pour gérer une tâche ciblée et autonome. Il s'exécute dans son propre context window isolé, effectue le travail qui lui est assigné et renvoie un résumé des résultats à la conversation principale.
Les subagents sont utiles pour des travaux qui ajouteraient sinon de grandes quantités de contenu non pertinent à la conversation en cours — par exemple, explorer en profondeur une section d'un codebase pour collecter des informations spécifiques avant que Bob continue avec la tâche principale.
Comment fonctionnent les subagents
Lorsque Bob spawn un subagent :
- Un nouvel agent indépendant est créé avec son propre context window.
- Bob lui transmet une description de la tâche ciblée à effectuer.
- Tu es invité à approuver le spawn avant qu'il commence. Bob attend que tu confirmes.
- Le subagent exécute la tâche en utilisant ses tools disponibles.
- Le subagent renvoie un résumé de ses résultats à Bob.
- Bob utilise ce résumé pour continuer la conversation principale.
Le subagent s'exécute séparément de la conversation principale. Il ne partage pas l'état, les fichiers ou les résultats des tools avec Bob sauf si Bob les lui transmet explicitement dans la description.
Types de subagents
Il existe deux types de subagents, chacun adapté à différentes tâches :
| Type | Description | Idéal pour |
|---|---|---|
explore | Exploration en lecture seule du codebase, s'exécute sur un modèle plus léger | Rechercher et résumer du code, trouver des fichiers pertinents, comprendre la structure |
general | Accès complet aux tools, s'exécute sur le modèle par défaut | Toute tâche autonome nécessitant des lectures, des écritures ou des commandes |
Contexte et historique de conversation
Par défaut, un subagent ne voit pas l'historique de la conversation parente. Cela maintient son contexte léger et focalisé sur la tâche en cours.
Lorsqu'un subagent a besoin de comprendre des décisions, contraintes ou préférences antérieures exprimées dans la conversation, Bob peut définir fork_context: true pour transmettre l'historique de la conversation au subagent.
Restrictions de mode
Le mode dans lequel tu travailles contrôle quels types de subagents Bob est autorisé à spawn. Certains modes permettent tous les types de subagents ; d'autres restreignent le spawn à des types spécifiques ou l'interdisent entièrement. Si un spawn de subagent n'est pas autorisé par le mode actif, Bob effectuera le travail directement sans spawner.
Quand Bob utilise les subagents
Bob utilise les subagents avec parcimonie. La valeur par défaut est toujours d'effectuer le travail directement sans spawner un subagent. Un subagent n'est envisagé que lorsque toutes les conditions suivantes sont remplies :
- La tâche est clairement autonome et seul un résumé est nécessaire en retour.
- Elle ajouterait un contenu non pertinent significatif au contexte principal.
- Elle ne peut pas être accomplie avec un ou deux appels directs à des tools.
Bob n'utilise pas les subagents pour :
- Les lectures de fichiers simples ou les recherches rapides.
- Les opérations à tool unique.
Panneau de subagents parallèles
Lorsque plusieurs subagents s'exécutent en même temps — par exemple, pendant un workflow qui génère plusieurs agents spécialisés en parallèle — ils sont regroupés dans un seul panneau pliable dans le chat.
L'en-tête du panneau affiche des statistiques agrégées sur tous les subagents en cours d'exécution :
- Nombre de subagents terminés sur le total
- Total des outils utilisés sur tous les subagents
- Utilisation de tokens combinée, coût et temps écoulé
- Un décompte des appels d'outils ayant échoué
Développe le panneau pour voir chaque subagent individuellement. Chaque entrée individuelle peut être développée davantage pour inspecter ses appels d'outils. Si un subagent rencontre des erreurs d'outils, le décompte des échecs est affiché à la fois dans l'en-tête agrégé et sur l'entrée individuelle.
- Les tâches où le contexte pertinent est déjà disponible.
Subagents vs. subtasks
Les subagents et les subtasks sont des concepts liés mais distincts :
| Subagent | Subtask | |
|---|---|---|
| Visibilité | S'exécute silencieusement en arrière-plan | Apparaît dans l'interface avec son propre fil de navigation et sa conversation |
| Interaction | Non interactif — renvoie uniquement un résumé | Pleinement interactif — tu peux suivre la progression et continuer la conversation |
| Objectif | Collecter des informations ou effectuer un travail isolé sans polluer le contexte principal | Gérer un travail suffisamment complexe pour bénéficier d'un suivi dédié et d'un fil séparé |
| Résultat | Résumé renvoyé à Bob | Fil de conversation indépendant |
Utilise les subagents pour la collecte d'informations en arrière-plan. Utilise les subtasks pour un travail complexe qui bénéficie de visibilité et d'une conversation dédiée.
Personnaliser le comportement des subagents
Tu peux contrôler ce sur quoi un subagent se concentre, la façon dont il formate ses résultats et quels tools il peut utiliser en créant un fichier de persona d'agent dans .bob/agents/. Les fichiers de persona donnent à un subagent un rôle défini et un ensemble de contraintes – par exemple, un réviseur de code qui produit un tableau de résultats classé par gravité et qui a pour instruction explicite de ne pas suggérer de corrections.
Pour les instructions de configuration et des exemples, consulte Personas d'agents.
Modes
Les modes sont des personas spécialisées qui adaptent le comportement de Bob à tes tâches spécifiques. Chaque mode offre des capacités et des niveaux d'accès différents pour t'aider à atteindre des objectifs particuliers plus efficacement.
Mentions de contexte
Référence des éléments spécifiques de ton projet directement dans tes conversations avec Bob en utilisant les @mentions pour une assistance précise et contextualisée.