Kno2gether kno2gether.com ↗ Start free
Cheat-Sheet

Hermes Agent's Async Subagents — The 6-Tool Cheat-Sheet (That Isn't in the Docs Yet)

The short gave you the headline: as of around June 15 2026, Hermes Agent's delegated subagents no longer freeze the parent chat. This is the cheat-sheet for the six new async tools — what each does, when to reach for it, how to turn it on, and a copy-paste pattern to run three agents at once and steer one mid-flight.

See how Knotie approaches this
01

Start hereWhat actually shipped (and why you probably missed it)

Around June 15, 2026, Nous Research shipped an async_delegation toolset for Hermes Agent. Co-founder Teknium announced it on X, and MarkTechPost covered it on June 16. The change is architectural: before this, when your main agent delegated work to a subagent, the parent conversation blocked — it sat inside the tool call until every child finished, and your chat was frozen for the whole wait. Now a delegated agent runs as an in-process thread, returns a task id immediately, and your chat stays live. The reason most people haven't heard about it: it came in via hermes update with no version bump, and as of this writing the official delegation docs still describe only the old, synchronous behavior.
Honest scope: this is not a formal versioned release — treat it as 'shipped', confirmed by Teknium's X post + MarkTechPost (Jun 16) + TechTimes (Jun 17), and verifiable by running hermes update and listing your tools. There is no public merge-commit SHA to cite, so this guide doesn't invent one. Validate the exact tool names and signatures against your own installed Hermes before you build on them.
02

Get this and the rest is detailBefore vs. after — the one mental model that matters

The whole change is one shift: delegation moved from blocking to non-blocking. Here's the clean split.
BehaviorStatus
delegate_task is synchronous — the parent blocks inside the tool call until every child finishesBEFORE — your chat froze for the whole wait, one task at a time
delegate_task_async returns a task id immediately; the agent runs as an in-process threadAFTER — parent chat stays live, you keep working and can spawn more
You can check on, redirect, or collect a running task without freezing the chatAFTER — via check_task / steer_task / collect_task
Enabled by a new version number / reinstallFALSE — it ships via hermes update, no version bump
Documented on the official delegation pageNOT YET — as of June 18 2026 the docs still show only the blocking delegate_task
If a claim about these tools isn't on this list or in your own tool listing after hermes update, treat it as unverified — the surface is brand new and the literals can still move.
03

The cheat-sheetThe six new tools — what each does, when to reach for it

The async_delegation toolset adds exactly six tools. Here's each one in plain terms.
  1. delegate_task_async — fire off a background agent. You get a task id back instantly and the parent chat stays live. This is the one that replaces the old blocking delegate_task for anything you don't want to wait on.
  2. check_task — non-blocking status plus recent output of a running task. Peek at how a background agent is doing without stopping your own conversation.
  3. steer_task — the standout: inject a new instruction into a running task. Redirect its scope, add a constraint, or kill one branch of its work — without cancelling the task or waiting for it to finish. Mid-flight course-correction, live.
  4. collect_task — block until a given task is done, then return its full result. Use this when you've done your other work and now genuinely need the answer.
  5. cancel_task — stop a running task you no longer need.
  6. list_tasks — see every async task in the current session and its state, so you can manage a fleet of background agents.
The mental model: delegate_task_async starts work, list_tasks / check_task watch it, steer_task redirects it, cancel_task stops it, and collect_task is the one point where you choose to wait. Only collect_task blocks — everything else keeps your chat responsive.
04

The capability that's genuinely newWhy steer_task is the one to actually internalize

Non-blocking delegation alone is a nice quality-of-life win. steer_task is the part that changes how you work, because it removes the old all-or-nothing choice with a running agent.
  1. Before, a running delegated task was a black box. Your only levers were wait for it to finish or cancel it and start over. If it drifted off course, you ate the wasted work.
  2. steer_task lets you inject a message into a task that's already running. Tighten the scope, add a constraint you forgot, or tell it to drop a branch — and it keeps going with the new guidance.
  3. No cancel, no restart, no losing progress. The work the agent has already done stays; you're just updating its instructions live.
  4. This is what makes it feel like a real concurrent runtime. Background agents you can observe and redirect mid-flight, rather than fire-and-pray jobs.
Quote it precisely when you describe it to others: steer_task 'injects a message into a running task.' Don't overclaim it as full bidirectional control — it's an instruction injection into a live task, and that alone is the useful part.
05

Put it togetherA copy-paste pattern — run three, steer one, collect all

Here's the shape of a non-blocking workflow once you've run hermes update. Treat the tool calls as the pattern; confirm the exact argument names against your own Hermes.
  1. Turn it on. Run hermes update (no version bump). Confirm the new tools appear in your tool listing — if they don't, you're on the old build.
  2. Spawn the work. Call delegate_task_async three times — one per independent job (e.g. research A, draft B, audit C). You get three task ids back immediately; the chat never froze.
  3. Keep working + watch. Carry on in the parent chat. Use list_tasks to see all three and check_task on any one for status + recent output.
  4. Redirect mid-flight. When the research agent starts drifting, steer_task it with a tighter instruction — it keeps its progress and adjusts. No cancel, no restart.
  5. Collect when you need it. Call collect_task on each task id when you actually need its result — that's your one intentional wait. cancel_task anything that's become irrelevant.
  6. [Your glue] Decide the join. How you combine the three results — merge, pick best, feed one into the next — is your logic, exactly as it was before. The toolset gives you concurrency + control; the orchestration intent is yours.
The point: with the parent chat staying live, the agent stops being a one-task-at-a-time assistant and starts being a small team you can dispatch, observe, and steer — all from inside one conversation.

Get the next drop

New AI build guides + the occasional bonus template. No spam, unsubscribe anytime.

By submitting you agree to our Privacy Policy & Terms. Unsubscribe anytime.

Frequently asked questions

What exactly shipped, and when?
Around June 15 2026, Nous Research added an async_delegation toolset to Hermes Agent — six tools (delegate_task_async, check_task, steer_task, collect_task, cancel_task, list_tasks) that let delegated subagents run in the background without freezing the parent chat. Co-founder Teknium announced it on X; MarkTechPost covered it June 16 and TechTimes June 17. It's a shipped change accessed via hermes update, not a formal versioned release.
How was delegation different before this?
delegate_task was synchronous: the parent blocked inside the tool call until every child task finished, so your chat was frozen for the whole wait and you handled one delegated task at a time. The async toolset makes delegation non-blocking — the background agent runs as an in-process thread and returns a task id immediately.
What does steer_task actually do?
steer_task injects a new instruction (a message) into a task that's already running — letting you redirect its scope, add a constraint, or cancel a branch of its work without terminating the whole task or waiting for it to finish. It's the standout because it removes the old wait-or-cancel-and-restart choice; the agent keeps its progress and adjusts to the new guidance.
How do I turn it on?
Run hermes update. There's no new version number to install — the async tools come in through the update. After updating, confirm the six tools appear in your tool listing; if they don't, you're still on the old build.
Is this documented officially?
Not as of June 18 2026. The official Hermes Agent delegation page still documents only the synchronous, blocking delegate_task and makes no mention of the async tools. That gap is the main reason most users don't know the feature shipped — the announcement was on X, not in the docs.
Is there a merge commit or version I should cite?
There's no public merge-commit SHA confirmed, and it didn't come with a version bump, so don't cite either. Treat it as 'shipped ~June 15, accessed via hermes update', verified by Teknium's X announcement plus the MarkTechPost and TechTimes coverage — and confirm it yourself by updating and listing your tools.
Does this make Hermes a true concurrent multi-agent runtime?
It's a big step toward one: background agents now run as in-process threads, the parent stays live, and you can observe (check_task / list_tasks), redirect (steer_task), and collect (collect_task) them. That's genuine concurrency with mid-flight control. As always, validate the exact behavior and limits against your own installed version before building production workflows on it.

If you're heading toward selling AI, not just orchestrating it

Running a fleet of background agents you can dispatch, watch, and steer mid-flight is exactly the kind of capability other people will pay you to operate for them. If your goal is to resell AI under your own brand rather than only run it for yourself, the same instinct that made you read this cheat-sheet is what lets you package and price it. That's the Knotie premise — worth a look when you're ready to put a margin on AI under your own brand. If you're only automating your own work, the cheat-sheet above is the whole task; ignore this part.

See how Knotie approaches this