PROJECT 03 · Hermes Agent

它把 goal、拆任务、swarm 都写回同一张 Kanban 图

Hermes 看起来功能很多,但 Kanban 部分很克制:高级动作都只是创建 task、link、comment、event,然后让同一个 dispatcher 去跑。

per-board SQLitegoal_modeauto_decomposeACPMCP

01 · 它解决什么

让 agent 自己拆、自己跑、自己继续,但不离开任务图

开放任务不适合一轮结束

`goal_mode` 让 worker 同一 session 继续做,直到完成、阻塞或预算耗尽。

粗目标需要自动拆

triage 卡会被 decomposer 拆成子任务,并分给合适 profile。

多 agent 合作要有图

`kanban swarm` 写入 worker、verifier、synthesizer 的依赖图。

02 · 架构图

中心是 Kanban DB,四周只是入口

CLI、dashboard、tools、gateway、ACP/MCP 都不是各自保存状态。它们最后都读写 per-board `kanban.db`。

HUMANCLI / Dashboardcreate · inspect AGENTkanban toolscreate · complete GATEWAYdispatcherspawn workers FOCALper-board kanban.dbtasks · linkscomments · events GOALgoal_modesame session loop DECOMPauto_decomposetriage -> graph SWARMworker → verifythen synthesize LEGEND唯一任务存储高级能力写回图

Hermes 最值得学的是克制:看起来是 goal、orchestrator、swarm,实际都只是任务图上的不同写法。

03 · 五个点怎么工作

你点名的功能都能在源码里找到

功能它怎么跑关键文件
`/goal`session 级目标,judge 每轮判断 done/continue,状态存在 `SessionDB.state_meta`。`hermes_cli/goals.py`
`goal_mode` 卡卡片字段触发 worker env,quiet path 进入同一 session 的 goal loop。`kanban_db.py` + `cli.py`
自动拆任务gateway tick 先跑 decomposer,把 triage 卡拆成 child graph。`kanban_decompose.py` + `gateway/run.py`
`auto_promote_children`写完图后决定是否把 parent-free child 推到 ready。`kanban_db.py:recompute_ready`
`kanban swarm`创建 root、parallel workers、verifier、synthesizer,仍走普通 dispatcher。`kanban_swarm.py`

04 · ACP 和 MCP

别把 `SessionMode` 和 `goal_mode` 混了

ACP

  • `hermes-acp` 是 stdio JSON-RPC server。
  • 支持 new、load、resume、fork、list、prompt。
  • `SessionMode` 只管编辑批准。
  • ACP prompt 会设置 `HERMES_SESSION_ID`。
  • `kanban_create` 会把 session id 写进卡。

MCP

  • 连接外部 MCP server:stdio、HTTP、SSE。
  • ACP 每个 session 可动态加 MCP server。
  • `hermes mcp serve` 对外暴露消息通道。
  • 外部命令执行面要小心。
  • 工具面会刷新进当前 agent。

05 · Tobatsu 可以怎么借

借它的一张任务图,不借它的本地 SQLite

可以借

  • goal、swarm、decompose 都写普通 task。
  • `goal_mode` 的触发方式很清楚。
  • 依赖完成后再 promote。
  • ACP 可作为 engine driver。
  • MCP 三面都可以保留。
  • 单 owner dispatcher 的规则要保留。

别照搬

  • per-board SQLite 不适合多主机。
  • gateway 单进程 dispatcher 不够 fleet 化。
  • 大文件太多,后期不好审。
  • MCP 外部命令要加白名单。
  • 4-thread ACP executor 有并发上限。
  • 本地 `~/.hermes` 状态不适合容器群。

06 · 以后查哪里

本地证据

site   https://hermes-agent.nousresearch.com/
local  /home/ubuntu/workspace/fp/external/hermes-agent
commit 3da44db

pair notes
/tmp/pair-tasks/20260605-180910-1666302/joint-summary-zh.md
/tmp/pair-tasks/20260605-180910-1666302/notes-codex-kanban-semantics.md
/tmp/pair-tasks/20260605-180910-1666302/notes-cc-runtime-acp-mcp.md