Hermes Kanban: The Research-to-Draft Relay
Two researchers work in parallel, then a writer's card unblocks once both finish.
Run this workflow
CI-verified, 3/3 fixtures passing.
Build this with your agent
One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.
Intended Use
Anyone using Hermes Agent's Kanban who wants a fan-out/fan-in relay: parallel research cards whose results gate a downstream writer card via parent links.
Not for
- Single-agent loops (the board is overkill)
- Work that can't be split into parallel tracks
The Stack
Tested Against
hermes@0.15node@20.xSide effects & data flow
- Network
- your LLM provider, only in the non-CI worker step
- Writes
- ~/.hermes/kanban.db (the board)
- Credentials
- LLM provider key (hermes setup), for the worker step only
Data privacy
- your LLM provider, only in the non-CI worker step ← the task text and the workers' results (retention: per that provider's API policy)
Prerequisites
- Hermes Agent (MIT): `curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash`
- `hermes setup` to configure an LLM provider (only needed to actually run the workers)
- `hermes gateway start` so the dispatcher picks up ready tasks (ticks every 60s)
- Node 20+ (used here to read the --json board state)
Steps
- 1
Create the relay and verify the parent links
Init the board, create two research cards and a writer card, and link the writer to both researchers as parents. CI asserts (via `show --json`) that the writer card really carries both parent ids — the gate that makes the relay work.
hermes kanban init >/dev/null mkid() { node -e 'let s="";process.stdin.on("data",d=>s+=d).on("end",()=>process.stdout.write(JSON.parse(s).id))'; } export RA=$(hermes kanban create "Research the funding landscape, NA angle" --assignee researcher-a --json | mkid) export RB=$(hermes kanban create "Research the funding landscape, EU angle" --assignee researcher-b --json | mkid) export W=$(hermes kanban create "Draft the launch post" --assignee writer --parent "$RA" --parent "$RB" --json | mkid) hermes kanban show "$W" --json | node -e 'let s="";process.stdin.on("data",d=>s+=d).on("end",()=>{const o=JSON.parse(s);const p=o.parents||[];if(!p.includes(process.env.RA)||!p.includes(process.env.RB)){console.log("MISSING PARENT");process.exit(1)}console.log("relay OK: writer "+o.id+" linked to "+p.length+" parents")})' - 2
Run the relay (the worker step, not checked by CI)
Start the gateway and the two research cards dispatch immediately and run in parallel; the writer card stays gated until both complete, then wakes with their results on the board. This step runs models, so CI doesn't run it — the badge covers the board + link structure above.
Eval, 3 fixtures
Last passed: verified todayrelay-linkedcontainstimeout 60s · max $0Expected:
relay OK: writertwo-parentscontainstimeout 60s · max $0Expected:
linked to 2 parentsclean-exitexit_codetimeout 60s · max $0Expected:
0
Results
From the WebAfterAI guide: 3 multi-agent Kanban workflows on Hermes Agent.
Did this work for you?
Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.
Related workflows
- One shared memory for every coding agent: prove the configs actually point at the same server
- Validate a WrenAI semantic model's references before an agent queries through it
- Wire the DeepWiki MCP into your agent so it looks up repos instead of hallucinating
- Verify an agent-skills plugin before you ship or install it
- WebMCP: declare a site's agent tools, and gate the ones that spend money
- Wire GLM-5.2 into Hermes: valid route, 64k-context check, no key in config
Liked this workflow?
Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).