AgentsOpen SourceFreeActiveMachine-verified· intermediate · ~15 min setup

Hermes Kanban: The Research-to-Draft Relay

Two researchers work in parallel, then a writer's card unblocks once both finish.

by Shilpa Mitra· verified 11d ago· v1.0.0

Run this workflow

CI-verified, 3/3 fixtures passing.

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.x

Side 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. 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. 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 11d ago
  • relay-linkedcontainstimeout 60s · max $0

    Expected: relay OK: writer

  • two-parentscontainstimeout 60s · max $0

    Expected: linked to 2 parents

  • clean-exitexit_codetimeout 60s · max $0

    Expected: 0

Results

From the WebAfterAI guide: 3 multi-agent Kanban workflows on Hermes Agent.

Liked this workflow?

Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).