Meta-tools & handoff
Meta-tools let one agent call another. They look like regular tool calls to the LLM, but the system intercepts them and spawns a separate agent that runs to completion before the handoff summary flows back to the parent. The goal is to make multi-agent work structured instead of conversational: outputs are compressed into reusable fields, sources are preserved, and the parent can decide what to do next.
The four patterns cover different coordination shapes. Delegation sends one bounded task to one specialist. Parallel review runs independent specialists at the same time. Pipelines run stages in order when each stage depends on the prior output. Debate asks multiple models or agents to converge on a high-confidence answer.
The four meta-tools
Same parent, four execution shapes. All four are compiled as child graphs -- the parent sees a single tool result either way.
Signatures
(agent_type, task, audience) -- spawns one child graph, runs to completion, returns the handoff summary as the tool result.(agents: [{type, task}, ...]) -- spawns all agents in parallel via asyncio.gather. The user-facing pattern is a parallel specialist review; the internal tool name remains war_room.(stages: [{type, task}, ...]) -- stages run sequentially. Each stage receives the prior stage's output.(question, models) -- multi-round, multi-model debate designed for high-quality consensus.The handoff protocol
The parent sees one tool call, one tool result. The child saw an entire ReAct loop. The handoff template is what bridges the two.
The handoff block
When a child agent finishes, it emits a structured <handoff> block. The GraphToolExecutor parses this block and extracts the following fields before returning a ToolResult to the parent:
This avoids agents passing long, messy transcripts back and forth. The parent receives a compact summary, key findings, cited sources, confidence, and gaps, so provenance survives delegation and context stays usable.