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:

JSON
{ "goal": "Find three weeknight dinners under 30 minutes", "context": "Two adults, one vegetarian." }

Several tasks, run in parallel:

JSON
{
  "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:

Result
[{ "goal": "plan three weeknight dinners", "status": "completed", "summary": "…" }]

What a child gets

  • Its own session, with source = "subagent", titled with its goal, and parent_session_id set 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_message and cronjob. 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

~/.commonos/commonos.toml
[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.

Edit this page on GitHub

Esc