Skip to main content
Programmable Agents can spawn and coordinate other agents, enabling complex multi-agent workflows where each agent has a focused responsibility.

How Delegation Works

An agent with invoke_agent in its tool allowlist can spawn child agents. Each child runs in its own pod and — if a Slack channel is configured — posts to the same thread as the parent. To allow delegation, two things must be configured in the parent agent’s YAML:
  1. invoke_agent must be included in tools.list
  2. The child agent name must be listed under agents_squad

Callback / Resume Pattern

For workflows where the parent needs the child’s result before continuing, pass callback_session_id to invoke_agent. The parent pod idles until the child completes, then wakes up with the child’s output as its next input.

Limiting Delegation Depth

Depth is implicitly limited by whether invoke_agent appears in a child agent’s allowlist. If the test-maintainer above does not include invoke_agent in its tools, it cannot delegate further — the chain stops there. This is the recommended approach: only give invoke_agent to orchestrator agents, not to leaf agents.