Delegate
The delegate_task tool hands focused work to helper agents. Each runs in its own session and returns a short summary.
delegate_task lets an agent split work into parts and hand each part to a helper. Each helper (a child agent) starts fresh, sees only its goal and the context it was given, does the work with its own tools, and returns a short summary. The parent’s conversation stays short.
Id: delegate · Tool: delegate_task · Settings: [plugins.delegate]
Calling it
One task:
{ "goal": "Find three weeknight dinners under 30 minutes", "context": "Two adults, one vegetarian." }Several tasks, run in parallel:
{
"tasks": [
{ "goal": "Draft the October invoice for Acme", "context": "Hours are in the notes below…" },
{ "goal": "Summarize open Acme support threads" }
]
}The result is a list, one entry per task:
[{ "goal": "plan three weeknight dinners", "status": "completed", "summary": "…" }]What a child gets
- Its own session, with
source = "subagent", titled with its goal, andparent_session_idset to the parent’s session. - Only its brief. The user message is
Context: … Goal: …, not the parent’s conversation. - A focused persona: “You are a focused helper agent. Complete the goal you are given using your tools, then reply with a short summary of what you found or did. You cannot ask the user questions.”
- The parent’s tools, minus five:
delegate_task,clarify,memory,send_messageandcronjob. Children can’t spawn children, change memory or message anyone. - The parent’s tags, at depth + 1. Its model calls are billed to the same tags.
- A model:
[plugins.delegate] model, or the parent’s model.
Children run on the same agent as the parent, so they can never reach a tool their profile doesn’t have. Stopping the parent’s turn stops its children.
subagent_start and subagent_stop fire for each child. They are observers, not gates.
Settings
[plugins.delegate]
max_spawn_depth = 1
max_concurrent_children = 10
model = "<model id>"| Setting | Default | Does |
|---|---|---|
max_spawn_depth |
1 |
How deep delegation can go. 1 means children cannot delegate. |
max_concurrent_children |
10 |
The most tasks in one call. More is an error. |
model |
the parent’s | The model children run on. A cheaper model often works well. |
Differences from Hermes
The defaults and the blocked tools match Hermes. One thing differs: children finish inside the parent’s turn and the parent gets all summaries at once, rather than children reporting back later.