- Know when a quick delegated call is enough, and when you need the Kanban board instead.
- Understand Auto vs Manual orchestration and what the decomposer actually does.
- Walk through a working multi-agent research pipeline, profiles, models, and the prompt that reliably fans it out.
- Find and read the output of a running or completed task.
Why Split Work Across Agents
One agent trying to hold several personas or modes at once tends to drift. Splitting work across narrowly scoped profiles fixes that, and brings a few other benefits along for free.
Focus. A profile scoped to one job, facts only, no speculation, stays on task better than one agent juggling several roles.
Parallelism. Two profiles researching independently run at the same time. A single agent is architecturally sequential, one reasoning stream at a time.
Fault isolation. If one worker crashes, only its task blocks, not the whole pipeline.
Matching model to task. A cheap, fast model for a simple judgment call, a stronger one only where it's actually needed, rather than paying premium rates for every step.
When It's Worth It
| Helps | Doesn't help |
|---|---|
| Work splits into independent pieces that can run at once | Steps depend on each other in order |
| You need real disagreement, not one agent arguing both sides | The goal is still vague, clarify it first, then split |
| Different steps need different tools or model strength | One focused agent could just do it directly |
delegate_task vs the Kanban Board
There are two ways to do multi-agent work in Hermes. One is deliberately telling it to delegate, in a normal chat, using delegate_task. The other is routing work through the Kanban board, where it lands in Triage and gets picked up by profiles you've already set up.
| Aspect | delegate_task | Kanban board |
|---|---|---|
| Shape | A function call | A work queue |
| Blocking | Runs in the background, Hermes returns a handle and keeps going | Fire-and-forget |
| Identity | Anonymous, in-memory subagent | Named profile, its own OS process |
| Durability | Result lost once the conversation compresses | Resumable after a crash, full audit trail |
| Best for | A quick reasoning answer inside one conversation | Work that crosses agent boundaries or needs a human in the loop |
The Kanban board is a durable task board, backed by a single SQLite database and shared across all profiles on a machine. Every task is a row, every handoff is a comment anyone can read.
- Survives an app crash or restart
- Nothing lost when the chat gets too long
- Close and reopen without losing progress
- Keep working while your machine is off
- Recover the exact step it was on when it crashed
- Replace a VPS if you need real 24/7 uptime
Using delegate_task
No Kanban setup required, this works in any chat, with any profile.
delegate_task children are copies of whoever called them, not your named profiles. They inherit the calling profile's toolsets and model, get a completely blank conversation, and disappear once they report back. Batching several at once gets you parallelism, but the bigger reason to reach for it even one at a time is context isolation, the subagent does the messy work in its own isolated context and only a summary re-enters yours. For actual specialized agents, purpose-built SOUL.md, own toolset scope, addressable by name, that's what the Kanban board's profiles are for.
Try it live
Paste into any chat. Phrasing it this explicitly, "delegate each as its own subtask" and "run concurrently", pushes Hermes toward a batched delegate_task call instead of just researching all three itself in one pass. If you're on the TUI, type /agents once it kicks off to watch the subagents run live.
Research the current state of three programming language ecosystems in parallel: Rust, Zig, and Go. For each one, cover adoption trends, notable production users, and what's changed most in the last year. Delegate each language as its own subtask so they run concurrently, then synthesize the three into one comparison summary.
Auto vs Manual
This setting answers one question: does the board split work across agents on its own, or do you have to do it yourself?
Auto (default)
Drop a task into Triage and the dispatcher's decomposer reads your profiles' descriptions and fans the goal into a task graph on its own. The "drop a goal, walk away" flow.
Manual
Tasks sit in Triage until you click Decompose on the card, or run hermes kanban decompose <id>.
hermes profile describe <name> --auto to generate one from its SOUL.md, rather than leaving them blank.
- Ask for multiple independent subtasks
- Ask for parallel work
- Ask for different angles
- Ask for a final synthesis step
A Working Research Pipeline
One goal fans out into two parallel research tracks, which converge into a synthesized answer, then get judged for completeness.
| Profile | Model | Role |
|---|---|---|
| agent-literal | gpt-5.4-mini or deepseek-v4-flash |
Verified facts and documented detail only, no speculation. |
| agent-creative | gpt-5.4-mini or deepseek-v4-flash |
Differing expert opinions and open debates, actively seeks disagreement. |
| agent-summarizer | gpt-5.4 or deepseek-v4-flash |
Reconciles overlaps, flags contradictions instead of picking a side. |
| agent-orchestrator | gpt-5.4-nano or deepseek-v4-flash |
Judges whether the combined output actually answers the goal. Nano tier, this is a simple judgment call, not deep reasoning. |
Each Profile's SOUL.md
Scope each profile down to one job, per Module 09's tuning advice. These are short on purpose.
You are agent-literal, a factual research worker. Report only verified facts, documented technical details, and confirmed capabilities. No speculation, no opinions, no framing. If something is disputed or unconfirmed, say so plainly rather than picking a side. Keep output dense and citation-friendly. No filler.
You are agent-creative, a perspective research worker. Surface differing expert opinions, open debates, and controversies on the topic. Actively seek disagreement rather than converging on one answer. Speculative angles are welcome here, label them clearly as speculation. Keep output dense and citation-friendly. No filler.
You are agent-summarizer. You receive output from agent-literal and agent-creative and reconcile it into one brief. Merge overlapping points. Flag direct contradictions explicitly rather than silently picking a side. Produce a single neutral-toned summary of what's known versus what's debated. Do not add new claims of your own.
You are agent-orchestrator. You own the root task and judge whether the combined output actually answers the original goal. This is a simple completeness check, not deep reasoning, that's why you run on a nano-tier model. If the answer is incomplete, send it back with a specific note on what's missing. If it's complete, close the task.
In the Kanban dashboard's Orchestration settings: Orchestrator Profile set to agent-orchestrator, Auto-decompose on, so a task dropped in Triage fans out automatically.
Config gotcha: decomposer defaulting to no key
auxiliary.kanban_decomposer.provider: main in config.yaml, they can default to a provider with no key configured. Pin model.default explicitly per profile too, and verify with hermes -p <profile> doctor rather than trusting the dashboard after rapid edits.
A prompt that reliably forces the split
Paste into the Triage task's Title field, there's no separate body box. The template below shows the structure, swap <TOPIC> for whatever you're researching:
Research <TOPIC> using two independent tracks, then synthesize. 1. Factual track: - Verified facts, documented technical details, definitions - Confirmed capabilities only, no speculation - If something is disputed or unconfirmed, say so plainly 2. Perspective track: - Differing expert opinions, open debates, controversies - Speculative angles, actively seek disagreement Once both tracks are complete, synthesize into one cohesive brief: - Reconcile overlaps - Flag direct contradictions explicitly - Produce a single neutral-toned summary of what's known versus what's debated
For class, everyone can copy-paste this one as-is, topic is Claude, the AI assistant:
Research Claude, the AI assistant, using two independent tracks, then synthesize. 1. Factual track: - Verified facts, documented technical details, definitions - Confirmed capabilities only, no speculation - If something is disputed or unconfirmed, say so plainly 2. Perspective track: - Differing expert opinions, open debates, controversies - Speculative angles, actively seek disagreement Once both tracks are complete, synthesize into one cohesive brief: - Reconcile overlaps - Flag direct contradictions explicitly - Produce a single neutral-toned summary of what's known versus what's debated
Finding Task Output
From the dashboard or the CLI, take your pick.
hermes kanban show <task_id> # status, assignee, diagnostics, latest_summary hermes kanban tail <task_id> # live progress stream hermes kanban log <task_id> # raw worker log, full error traces
In the dashboard, click a card for the same information rendered live, editable title, assignee, and priority, a dependency editor, a Result section once complete, and the comment thread. The board updates over WebSocket, no refresh needed. If a task looks stuck, click Nudge dispatcher instead of waiting for the next tick.
hermes kanban log <task_id> for what it said right before dying, in practice this is usually a normal API error (auth, bad parameter, rate limit), not a mysterious crash.