Agent-to-Agent Delegation

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

tools:
  mode: allowlist
  list:
    - invoke_agent

agents_squad:
  - test-maintainer

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.


Last updated

Was this helpful?