Skip to content
This page was generated and translated with the assistance of AI. If you spot any inaccuracies, feel free to help improve it. Edit on GitHub

Sub-agents ​

PRX supports spawning sub-agents (child agents) from within a running agent session. This enables parallel task decomposition, where a parent agent delegates work to specialized children that run concurrently.

Overview ​

Sub-agents are lightweight agent instances that:

  • Share the parent's provider configuration and credentials
  • Have their own conversation history and memory scope
  • Execute within the parent's sandbox policy
  • Report results back to the parent when complete

Spawning Model ​

A parent agent can spawn sub-agents via the built-in spawn_agent tool. Each child receives:

  • A task description (system prompt override)
  • An optional set of allowed tools (subset of parent's tools)
  • A maximum turn budget
Parent Agent
  ├── Sub-agent 1 (research task)
  ├── Sub-agent 2 (code generation)
  └── Sub-agent 3 (validation)

Concurrency Limits ​

To prevent resource exhaustion, PRX enforces concurrency limits:

toml
[agent.subagents]
max_concurrent = 4
max_depth = 3
max_total_spawns = 20
child_timeout_secs = 300
  • max_concurrent -- maximum number of child agents running simultaneously
  • max_depth -- maximum nesting depth (sub-agents spawning sub-agents)
  • max_total_spawns -- total spawn budget per root session
  • child_timeout_secs -- timeout for individual child execution

Depth Control ​

Each sub-agent tracks its depth level. When the maximum depth is reached, the spawn_agent tool is removed from the child's available tools, preventing further nesting.

Result Aggregation ​

When all children complete, their results are collected and presented to the parent agent as tool call results. The parent can then synthesize the outputs into a final response.

Released under the Apache-2.0 License.