Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Parallel Work

13.2. Parallel Work — Running Multiple Child Agents at Once

Batch syntax — one tasks array, many parallel subagents

When the parent agent provides a tasks array, Hermes returns a single background handle, runs the subagents in parallel, and posts one aggregated result after every child is done.

Concurrency limits — deliberate, not an arbitrary technical cap

By default a maximum of 3 tasks run at the same time (configurable via delegation.max_concurrent_children or the DELEGATION_MAX_CONCURRENT_CHILDREN environment variable; there is no hard ceiling). A batch that exceeds the limit returns a clear tool error instead of silently truncating — avoiding the situation where you assume 5 tasks ran but only the first 3 were actually processed.

Results always follow the input order, not the completion order

Even if the children finish unevenly (the fast one done first, the slow one later), the returned results are always arranged in the original input index order — keeping the mapping between results and original requests consistent, so you don’t have to figure out which result belongs to which request.

Three classic patterns

  • Parallel research: hand out three independent research topics, each subagent explores on its own, and the parent synthesizes them into one coherent report.
  • Evaluating multiple options at once: for example, comparing 3 ways to add full-text search to an application (PostgreSQL tsvector, Elasticsearch, Meilisearch) — each subagent independently researches one option, with no cross-contamination between the evaluations since they are fully isolated.
  • Big refactors split up: each subagent handles a different part of the same refactoring task.

Important warning: same directory is safe only for different files

Each subagent has its own terminal session and can work in the same project directory without colliding — as long as they edit different files. If two subagents might touch the same file, handle that file yourself after the children finish; don’t let two of them overwrite each other.

Notes

  • Before handing out a parallel batch, make sure the tasks are truly independent — if they need to coordinate with each other or share state mid-way, this is not a parallel-subagent use case; move to Kanban.
  • For multi-option evaluations, use the isolation property to its advantage to avoid bias — each subagent stands on its own merits, and the parent only synthesizes after all of them have finished independently.
  • Monitor progress through the real-time tree view in the CLI (each subagent shows its own progress line) or through /agents (alias /tasks) in the TUI to see the tree of running/finished subagents.