Nous Research posted a change to Hermes Agent. Its agent tool can now use subagents equally. According to the announcement, the submitted function no longer blocks the parent conversation.
Hermes Agent is an open source personal agent from Nous Research. A parent agent can spawn child agents, called subagents, to carry out work. So far, that team has kept you waiting.
The update was announced on X by Nous Research and co-founder Teknium. Existing users activate it by activating it hermes update.
What are Subagents
The shipping tool is delegate_task. Introduces a subagent, which is a child agent on its own. Each child gets their own chat, terminal session, and tool set.
Only the last snapshot returns to the parent. The parent context never sees intermediate tool calls or child logic. That keeps the parent context window small.
Isolation is strong. Subagents start with a completely new conversation. They have no information about the parents’ history. The parent must pass on everything goal again context fields.
Subagents inherit the parent’s API key, provider configuration, and authentication pool. That validation pool enables core rotation at rate limits. You can move subagents to a cheaper model by using config.yaml.
What Stopped It, and What Changed
At the source, delegate_task it is compatible. The parent blocks within the tool call until all children have finished. Your conversation stays strong during that wait.
That design prevented several workflows. You could not start a long agent and continue to work. You couldn’t check in when running or direct it mid-flight.
Nous built an unobstructed path in the open. Issue #5586 adds i async_delegation a set of tools. It exposes the background agent and returns a task_id immediately. The declaration confirms that async subagents are now available.
Async tools cover the full lifecycle:
delegate_task_asyncβ reveal background agent, return atask_idcheck_taskβ non-blocking status and recent releasessteer_taskβ submit a report to an active taskcollect_taskβ block until done, then return the full resultcancel_taskβ stop the active tasklist_tasks– all synchronized operations in the session
Background agents act as threads within a process. They also use the same AIAgent machines, guarantees, and tools as delegate_task.
Synchronous vs Asynchronous Delegation
| Size | It is synchronized delegate_task |
Consensus messengers (async_delegation#5586) |
|---|---|---|
| Parent discussion | Blocks until all children finish | Returns a task_id immediately; the conversation is always free |
| Control while running | Nothing – wait | Check the status, direct, collect, or cancel for each job |
| The execution | The parent waits inside the tool call | Threads behind the process |
| Content costs | Only the last snapshot is returned | Only the last snapshot is returned |
| Isolation | A new discussion for each child | A new discussion for each child |
| It’s very good | A quick fan-out awaits | The long tasks you do next to the chat |
| Strength | It is not rigid in all curves | One session; ACP (#4949) directs conversion |