- 25 documentation pages covering Getting Started, User Guide, Developer Guide, and Reference - Docusaurus with custom amber/gold theme matching the landing page branding - GitHub Actions workflow to deploy landing page + docs to GitHub Pages - Landing page at root, docs at /docs/ on hermes-agent.nousresearch.com - Content extracted and restructured from existing repo docs (README, AGENTS.md, CONTRIBUTING.md, docs/) - Auto-deploy on push to main when website/ or landingpage/ changes
61 lines
1.9 KiB
Markdown
61 lines
1.9 KiB
Markdown
---
|
|
sidebar_position: 7
|
|
title: "Subagent Delegation"
|
|
description: "Spawn isolated child agents for parallel workstreams with delegate_task"
|
|
---
|
|
|
|
# Subagent Delegation
|
|
|
|
The `delegate_task` tool spawns child AIAgent instances with isolated context, restricted toolsets, and their own terminal sessions. Each child gets a fresh conversation and works independently — only its final summary enters the parent's context.
|
|
|
|
## Single Task
|
|
|
|
```python
|
|
delegate_task(
|
|
goal="Debug why tests fail",
|
|
context="Error: assertion in test_foo.py line 42",
|
|
toolsets=["terminal", "file"]
|
|
)
|
|
```
|
|
|
|
## Parallel Batch
|
|
|
|
Up to 3 concurrent subagents:
|
|
|
|
```python
|
|
delegate_task(tasks=[
|
|
{"goal": "Research topic A", "toolsets": ["web"]},
|
|
{"goal": "Research topic B", "toolsets": ["web"]},
|
|
{"goal": "Fix the build", "toolsets": ["terminal", "file"]}
|
|
])
|
|
```
|
|
|
|
## Key Properties
|
|
|
|
- Each subagent gets its **own terminal session** (separate from the parent)
|
|
- **Depth limit of 2** — no grandchildren
|
|
- Subagents **cannot** call: `delegate_task`, `clarify`, `memory`, `send_message`, `execute_code`
|
|
- **Interrupt propagation** — interrupting the parent interrupts all active children
|
|
- Only the final summary enters the parent's context, keeping token usage efficient
|
|
|
|
## Configuration
|
|
|
|
```yaml
|
|
# In ~/.hermes/config.yaml
|
|
delegation:
|
|
max_iterations: 50 # Max turns per child (default: 50)
|
|
default_toolsets: ["terminal", "file", "web"] # Default toolsets
|
|
```
|
|
|
|
## When to Use Delegation
|
|
|
|
Delegation is most useful when:
|
|
|
|
- You have **independent workstreams** that can run in parallel
|
|
- A subtask needs a **clean context** (e.g., debugging a long error trace without polluting the main conversation)
|
|
- You want to **fan out** research across multiple topics and collect summaries
|
|
|
|
:::tip
|
|
The agent handles delegation automatically based on the task complexity. You don't need to explicitly ask it to delegate — it will do so when it makes sense.
|
|
:::
|