Sub-agent delegation allows a single coordinator agent to dynamically spawn specialized child agents and distribute tasks across them for parallel execution. The coordinator analyzes the main task, creates purpose-built sub-agents, assigns work, and aggregates results — all autonomously. This capability is built on top of the autonomous agent mode (Documentation Index
Fetch the complete documentation index at: https://docs.swarms.ai/llms.txt
Use this file to discover all available pages before exploring further.
max_loops="auto") and uses two internal tools: create_sub_agent and assign_task.
How It Works
- Planning — The coordinator agent analyzes the task and determines what specialized sub-agents are needed
- Creation — The coordinator calls
create_sub_agentto spawn agents with specific names, descriptions, and system prompts - Delegation — The coordinator calls
assign_taskto distribute work to sub-agents, which execute concurrently - Aggregation — Results from all sub-agents are collected and the coordinator synthesizes a final response
Enabling Sub-Agents
Sub-agent delegation requires two configuration settings on your agent:| Parameter | Value | Purpose |
|---|---|---|
max_loops | "auto" | Enables the autonomous agent loop with tool access |
selected_tools | "all" or include "create_sub_agent" and "assign_task" | Grants the agent access to sub-agent tools |
When
max_loops="auto" is set without specifying selected_tools, all safe default tools are enabled including sub-agent tools.Available Tools
create_sub_agent
Creates and caches one or more specialized sub-agents on the coordinator.
| Parameter | Type | Required | Description |
|---|---|---|---|
agents | array | Yes | List of sub-agent specifications |
agents[].agent_name | string | Yes | Unique identifier for the sub-agent |
agents[].agent_description | string | Yes | Role and capabilities description |
agents[].system_prompt | string | No | Custom instructions for the sub-agent. Defaults to a description-based prompt |
sub-agent-{uuid} (e.g., sub-agent-a1b2c3d4) and is stored in the coordinator’s internal cache for reuse.
assign_task
Distributes tasks to previously created sub-agents for concurrent execution.
| Parameter | Type | Required | Description |
|---|---|---|---|
assignments | array | Yes | List of task assignments |
assignments[].agent_id | string | Yes | Target sub-agent ID from creation step |
assignments[].task | string | Yes | Task description to delegate |
assignments[].task_id | string | No | Assignment identifier. Defaults to task-{index} |
wait_for_completion | boolean | No | If true (default), waits for all results. If false, fire-and-forget dispatch |
API Usage
Sub-agents are used through the standard/v1/agent/completions endpoint. The coordinator agent autonomously invokes the sub-agent tools during its execution loop.
Basic Example
- Python (requests)
- Python (SDK)
- TypeScript
- Shell (curl)
Restricting Sub-Agent Tools
You can useselected_tools to control exactly which tools the coordinator can access:
The full list of available tools for autonomous agents:
create_plan, think, subtask_done, complete_task, respond_to_user, create_file, update_file, read_file, list_directory, delete_file, create_sub_agent, assign_task. The run_bash tool is not permitted.Sub-Agents vs Other Multi-Agent Patterns
| Feature | Sub-Agent Delegation | Multi-Agent Swarms |
|---|---|---|
| Agent creation | Dynamic at runtime | Pre-defined in request |
| Endpoint | /v1/agent/completions | /v1/swarm/completions |
| Coordination | Single coordinator decides | Swarm architecture rules |
| When to use | Unknown number of agents needed, adaptive task decomposition | Known team structure, fixed workflows |
| Agent count | Determined by the coordinator at runtime | Specified upfront in the agents array |
Best Practices
- Clear coordinator prompts — Tell the coordinator explicitly that it should create sub-agents and delegate work. Include guidance on what types of specialists to create.
- 3-5 sub-agents for standard tasks, 5-10 for complex multi-domain projects. More than 10 increases coordination overhead.
- Specific sub-agent descriptions — The more specific the
agent_description, the better the sub-agent performs its specialized task. - Use
wait_for_completion: true(default) when the coordinator needs to synthesize results. Usefalseonly for fire-and-forget scenarios. - Set appropriate timeouts — Sub-agent workflows take longer than single-agent calls since multiple agents run sequentially or in parallel. Use a timeout of 300+ seconds for complex tasks.
Cost Considerations
Sub-agent delegation uses more tokens than a single agent call because:- The coordinator agent uses tokens for planning and synthesis
- Each sub-agent uses tokens for its specialized task
- Tool calls (create/assign) consume additional tokens