Hermes can now have subagents, so I decided to use subagents to write about subagents. Very recursive, very agentic, probably a tiny bit silly, but also actually useful.

The basic idea is simple: the parent agent can spawn child agents for bounded tasks. Those child agents get their own conversation, terminal session, and tools. They do not drag all of their intermediate work back into the parent context. They return a final summary. That matters because agent work can get noisy fast, and context is not free.

The newer async version is the important change. Old delegation blocks the parent chat until the child work finishes. Async delegation gives you a task id and lets the parent keep going. In the Hermes writeup, the lifecycle is basically:

  • delegate_task_async starts a background agent
  • check_task looks at progress without blocking
  • steer_task sends new direction into a running task
  • collect_task waits for and retrieves the final result
  • cancel_task stops a task
  • list_tasks shows what is running

For this post, I used the same pattern in miniature. I asked one subagent to inspect how this website renders musings posts, and I asked another to summarize what was worth saying about Hermes subagents. While they ran, I kept working in the parent chat: reading the Next.js code, finding the markdown post directory, and drafting this entry.

That is the part that clicked for me. Subagents are not just "more AI." They are a way to keep the main thread moving while side quests run elsewhere. Research, repo inspection, competing implementation plans, slow verification, and background coding all fit naturally.

There is a catch, but it is a good catch: isolation forces clarity. A subagent starts fresh. It does not magically know the full parent history unless you pass the important context into the prompt. If you want useful output, you need to ask for a concrete deliverable: concise findings, files changed, risks found, commands run, or a decision with reasons.

That also makes subagents less mysterious. A good subagent task should be boringly specific. "Inspect the musings post model and tell me what files need editing" is good. "Figure out my website" is not. "Summarize async delegation lifecycle and practical implications" is good. "Research agents" is mush.

The other thing I like is that only the summary comes back. The parent does not need to ingest every command, false start, or scratch thought from every child. This keeps the main chat cleaner and makes parallel work feel less like opening five browser tabs and forgetting why each one exists.

My practical takeaways after using it:

  • Use subagents for work that can run beside you, not work that blocks your very next move.
  • Give each subagent a narrow job and a clear output format.
  • Pass the context explicitly because the child starts fresh.
  • Ask coding subagents to list files changed.
  • Collect summaries, then integrate deliberately in the parent.

So yes, Hermes having subagents is more than a neat demo. It changes the rhythm of working with an agent. The parent can keep judgment and integration centralized while letting child agents go do scoped work in parallel. That feels closer to how I actually want AI help to work: not one giant monologue, but a small team where every helper has a job.