invoke_agent imbriqué dans la même trace que le tour de conversation parent. Dans la vue Agents, cet emboîtement apparaît comme une invocation de sous-agent sous le tour de conversation qui l’a déclenchée, avec ses propres appels LLM et appels d’outil regroupés en dessous.
Modèle de données du sous-agent
weave.start_subagent correspond au span OTel invoke_agent et utilise le même nom d’opération que le tour de conversation parent. Weave distingue les deux par leur relation parent-enfant dans la trace :
conversation_id de la conversation active ; ils sont donc regroupés avec le reste de la conversation dans la vue Agents.
weave.start_subagent crée un span invoke_agent qui devient automatiquement un span enfant du span actuellement actif dans le contexte OTel, généralement le tour de conversation parent ou l’appel LLM qui a déclenché la délégation. La propagation du contexte OTel gère la relation parent-enfant, vous n’avez donc pas besoin de délégation explicite.
Tracer un seul sous-agent
weave.start_conversation, puis dans un conversation.start_turn. Weave capture ensuite la trace du sous-agent à l’aide du bloc weave.start_subagent pour le spécialiste, et enregistre chaque appel LLM et chaque exécution d’outil comme des spans enfants.
La logique d’acheminement est volontairement omise de ces exemples afin de se concentrer sur le traçage entre les agents.
invoke_agent imbriqué dans le tour de conversation, avec ses propres appels LLM et appels d’outil regroupés en dessous. Les appels LLM directs du superviseur restent au même niveau que le sous-agent.
Tracer plusieurs sous-agents
researcher qui recueille des informations, un writer qui rédige le billet, et un reviewer qui peaufine le résultat final.
Weave capture ces trois sous-agents comme étant au même niveau sous le même tour de conversation en ouvrant un bloc weave.start_subagent distinct pour chacun d’eux. Comme chaque sous-agent hérite du contexte OTel du tour de conversation actif, les sous-agents apparaissent comme des spans invoke_agent au même niveau, imbriqués sous le tour de conversation plutôt que les uns sous les autres.
researcher inclut son appel d’outil. Aucun des sous-agents n’est l’enfant d’un autre.
Tracer des sous-agents imbriqués
start_subagent est imbriqué dans le span actuellement actif du contexte OTel.
research-coordinator apparaît comme un sous-agent du tour de conversation, anthropic-researcher et openai-researcher apparaissent comme étant au même niveau sous le coordinateur, et anthropic-summarizer apparaît comme un sous-agent d’anthropic-researcher.