Subagents are specialized agents that can autonomously execute complex tasks on your behalf. They have their own context, tool access, and decision-making capabilities, making them ideal for sophisticated multi-step operations.
Kiro includes a default subagent that can handle general-purpose tasks. When you assign a task to a subagent, the default subagent is used unless you specify a custom agent configuration.
You can spawn subagents using your own agent configurations. This allows you to create specialized subagents tailored to specific workflows:
> Use the backend agent to refactor the payment module
To use a custom agent as a subagent, reference it by name when assigning tasks. The subagent will inherit the tool access and settings from that agent's configuration.
Subagents run in a separate runtime environment. Some tools available in normal chat are not yet implemented in subagents.
Available tools:
read - Read files and directorieswrite - Create and edit filesshell - Execute bash commandscode - Code intelligence (search symbols, find references)Not available:
web_search - Web researchweb_fetch - Fetch URLsintrospect - CLI infothinking - Reasoning tooltodo_list - Task trackinguse_aws - AWS commandsgrep - Search file contentsglob - Find files by patternYou can control which agents are available as subagents and which can run without permission prompts.
Use availableAgents to limit which agents can be spawned as subagents:
{ "toolsSettings": { "subagent": { "availableAgents": ["reviewer", "tester", "docs-*"] } } }
With this configuration, only the reviewer, tester, and agents matching docs-* can be used as subagents. Glob patterns are supported.
Use trustedAgents to allow specific agents to run without permission prompts:
{ "name": "orchestrator", "description": "Agent that coordinates multiple specialized subagents", "tools": ["fs_read", "subagent"], "toolsSettings": { "subagent": { "trustedAgents": ["reviewer", "tester", "analyzer"] } } }
With this configuration, the orchestrator agent can spawn the reviewer, tester, and analyzer subagents without requiring user approval each time. Glob patterns like test-* are supported.
You can use both settings together for fine-grained control:
{ "toolsSettings": { "subagent": { "availableAgents": ["reviewer", "tester", "analyzer", "docs-*"], "trustedAgents": ["reviewer", "tester"] } } }
This allows four agents to be spawned as subagents, but only reviewer and tester run without prompts.
| Issue | Solution |
|---|---|
| Subagent not starting | Verify the task description is clear and actionable |
| Missing tool access | Check if the required tool is available in subagent runtime (see table above) |
| Incomplete results | Provide more specific instructions or break into smaller tasks |
Subagents