MUNDERDIFFLIN / LEARN
CHAPTER 11
第 11 课 · 多 Agent 协调17 分钟阅读深入

Hive 不是内存里的 Agent 列表,而是一套可检查的文件协议

从身份注册、目录布局、原子写入与单一提交者理解 local-first 协调为什么选择文件作为协议介质。

本课核心问题文件怎样从‘存储’升级为‘进程间协议’?
学完你能
  • 区分 registry、mailbox、task 与 session 事实。
  • 理解原子写与单提交者约束。
建议先学
01
协议面

目录、文件名和 JSON 字段共同构成 API

Agent 不是通过共享对象协作,而是读写 hive 目录中的注册、任务、邮箱与会话事实。任何外部 CLI 只要获得工作区与协议说明,就能参与。

像一间有收件箱、任务板和员工名册的办公室:员工不需要链接到同一内存,只需遵守同一套表单。

02
并发约束

原子替换解决半写;它不自动解决业务冲突

临时文件加 rename 能保证读者看到旧值或新值,但两个 writer 同时更新同一任务仍可能覆盖。系统进一步用集中 manager 和单一 Git 提交者降低冲突面。

  • 01物理原子性:不读到截断 JSON。
  • 02逻辑串行性:同类更新经同一个 owner。
  • 03版本/条件更新:防止基于旧值覆盖新值。
  • 04幂等:router 重试不能重复制造副作用。
03
演进

文件格式一旦被 Agent 读取,就已经是需要版本化的公共协议

字段重命名、目录移动或状态枚举变化都可能让正在运行的 CLI 继续按旧说明写入。安全演进需要 schema version、向后读取、迁移与未知字段容忍。

WATCH

本地单机不等于没有并发:Electron Main、多个 CLI、文件 watcher 与 Git 同时触碰同一工作区。

LESSON CHECKPOINT

能用自己的话回答核心问题了吗?

文件协议的优势是可见与可恢复,代价是并发语义必须自己定义。