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`。
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