Fonctionnalités

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 :

  1. Un nouvel agent indépendant est créé avec son propre context window.
  2. Bob lui transmet une description de la tâche ciblée à effectuer.
  3. Tu es invité à approuver le spawn avant qu'il commence. Bob attend que tu confirmes.
  4. Le subagent exécute la tâche en utilisant ses tools disponibles.
  5. Le subagent renvoie un résumé de ses résultats à Bob.
  6. 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 :

TypeDescriptionIdéal pour
exploreExploration en lecture seule du codebase, s'exécute sur un modèle plus légerRechercher et résumer du code, trouver des fichiers pertinents, comprendre la structure
generalAccès complet aux tools, s'exécute sur le modèle par défautToute 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 :

SubagentSubtask
VisibilitéS'exécute silencieusement en arrière-planApparaît dans l'interface avec son propre fil de navigation et sa conversation
InteractionNon interactif — renvoie uniquement un résuméPleinement interactif — tu peux suivre la progression et continuer la conversation
ObjectifCollecter des informations ou effectuer un travail isolé sans polluer le contexte principalGérer un travail suffisamment complexe pour bénéficier d'un suivi dédié et d'un fil séparé
RésultatRésumé renvoyé à BobFil 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.

Comment trouvez-vous ce sujet ?