Hermes Agent Adds Asynchronous Subagents, So Delegated Work No Longer Blocks the Parent Chat
Nous Research has shipped a change to Hermes Agent. Its delegate software can now run subagents asynchronously. Per the announcement, delegated work not blocks the mother or father chat.
Hermes Agent is an open-source private agent from Nous Research. A mother or father agent can spawn little one brokers, known as subagents, to fan out work. Until now, that delegation made you wait.
The replace was introduced on X by Nous Research and co-founder Teknium. Existing customers allow it by operating hermes replace.
What are Subagents
The delegation software is delegate_task. It spawns a subagent, which is an remoted little one agent. Each little one will get its personal dialog, terminal session, and toolset.
Only the last abstract returns to the mother or father. The mother or father’s context by no means sees the little one’s intermediate software calls or reasoning. That retains the mother or father’s context window small.
Isolation is strict. Subagents begin with a totally recent dialog. They don’t have any data of the mother or father’s historical past. The mother or father should cross the whole lot by means of the objective and context fields.
Subagents inherit the mother or father’s API key, supplier configuration, and credential pool. That credential pool allows key rotation on charge limits. You can route subagents to a less expensive mannequin by means of config.yaml.
What Was Blocking, and What Changed
In supply, delegate_task is synchronous. The mother or father blocks inside the software name till each little one completes. Your chat stays frozen throughout that wait.
That design prevented a number of workflows. You couldn’t begin a protracted agent and preserve working. You couldn’t test in on a run or steer it mid-flight.
Nous constructed the non-blocking path in the open. Issue #5586 provides an async_delegation toolset. It spawns a background agent and returns a task_id instantly. The announcement confirms async subagents are actually obtainable.
The async instruments cowl the full lifecycle:
delegate_task_async— spawn a background agent, return atask_idcheck_task— non-blocking standing plus latest outputsteer_task— inject a message right into a operating activitycollect_task— block till executed, then return the full end resultcancel_task— cease a operating activitylist_tasks— all async duties in the session
Background brokers run as in-process threads. They reuse the similar AIAgent equipment, credentials, and toolsets as delegate_task.
Synchronous vs Asynchronous Delegation
| Dimension | Synchronous delegate_task |
Asynchronous delegation (async_delegation, #5586) |
|---|---|---|
| Parent chat | Blocks till all youngsters end | Returns a task_id instantly; chat stays free |
| Control whereas operating | None — you wait | Check standing, steer, accumulate, or cancel per activity |
| Execution | Parent waits inside the software name | Background in-process threads |
| Context price | Only the last abstract returns | Only the last abstract returns |
| Isolation | Fresh dialog per little one | Fresh dialog per little one |
| Best for | Quick fan-out you wait on | Long duties you run alongside the chat |
| Durability | Not sturdy throughout turns | Single-session; ACP (#4949) targets cross-turn |
Code: Spawning and Steering
A synchronous batch spawns youngsters in parallel and waits. Concurrency is capped by delegation.max_concurrent_children, which defaults to three.
# Synchronous: the mother or father waits for all youngsters
delegate_task(duties=[
{"goal": "Research topic A", "toolsets": ["web"]},
{"objective": "Fix the construct", "toolsets": ["terminal", "file"]},
])
The async toolset from difficulty #5586 returns management instantly.
# Asynchronous (async_delegation toolset, difficulty #5586)
t1 = delegate_task_async(objective="Research matter A")
t2 = delegate_task_async(objective="Research matter B")
check_task(t1["task_id"]) # standing, with out blocking
steer_task(t2["task_id"], "Use post-2024 sources solely")
outcomes = [collect_task(t["task_id"]) for t in (t1, t2)]
Use Cases With Examples
- Long analysis alongside work. Start a subagent on a market scan. Keep drafting in the major chat whereas it runs.
- Parallel strategy analysis. Spawn three subagents to check three search backends. Each stays remoted, so evaluations don’t cross-contaminate.
- Background coding duties. Delegate a multi-file refactor to a subagent. Review different recordsdata your self whereas it really works.
- Monitoring runs. The TUI ships an
/brokersoverlay, aliased/duties. It exhibits a dwell tree of operating and completed subagents.
Key Takeaways
- Hermes Agent now helps asynchronous subagents; the delegate software not blocks the mother or father chat.
- Non-blocking delegation ships through the
async_delegationtoolset, tracked in difficulty #5586. - Async instruments cowl the lifecycle: spawn, test, steer, accumulate, cancel, and checklist duties.
- Subagents keep remoted; solely the last abstract returns, maintaining the mother or father context small.
- It runs in-process and single-session; current customers allow it with
hermes replace.
Sources
- Teknium on X — announcement of asynchronous subagents: https://x.com/Teknium/standing/2066619275989991861
- Nous Research on X: https://x.com/NousResearch/standing/2066619860852134384
- Hermes Agent docs, Subagent Delegation: https://hermes-agent.nousresearch.com/docs/user-guide/options/delegation
- Hermes Agent docs, Delegation & Parallel Work: https://hermes-agent.nousresearch.com/docs/guides/delegation-patterns
- GitHub difficulty #5586, non-blocking background agent delegation (async_delegation toolset): https://github.com/NousResearch/hermes-agent/points/5586
- GitHub difficulty #4949, persistent ACP background subagents (referenced in #5586)
- NousResearch/hermes-agent repository: https://github.com/NousResearch/hermes-agent
The publish Hermes Agent Adds Asynchronous Subagents, So Delegated Work No Longer Blocks the Parent Chat appeared first on MarkTechPost.

(@Teknium)