MUNDERDIFFLIN / LEARN
CHAPTER 16
第 16 课 · 状态与工作区18 分钟阅读深入

多 Agent 隔离的核心不是多开终端,而是让写入边界可控

沿 root、worktree/clone、branch、cwd 与 Git 提交追踪 worker 的真实隔离程度,并审视失败时共享 cwd 的降级风险。

本课核心问题两个 Agent 不互相覆盖代码,需要同时隔离哪些东西?
学完你能
  • 区分进程、文件、Git ref 与 provider 数据隔离。
  • 评估 best-effort fallback。
建议先学
01
四重隔离

Process、workspace、Git ref、provider home 必须分别审计

PTY session 让进程独立;worktree/clone 让文件视图独立;branch 让提交历史独立;provider home 决定 session、credential 与缓存是否串线。

给每个工人一张桌子还不够:还要有独立文件夹、工作单号和工具柜。

02
提交所有权

多个 worker 可以改文件,但提交和整合最好有单一协调者

集中提交者可以统一作者信息、commit message、冲突处理与任务关联,避免多个 CLI 同时移动 Git HEAD 或操作 index。

  • 01写文件权限与写 Git metadata 权限分离。
  • 02每次提交关联 agent/task/session。
  • 03整合前验证工作区干净度与目标 branch。
  • 04冲突是显式任务状态,不是被重试吞掉的异常。
03
策略判断

个人工具可以 best effort,企业控制面通常需要 fail closed

共享 cwd fallback 提高创建成功率,却可能破坏用户对隔离的假设。高风险仓库应拒绝启动、明确解释失败,并提供修复动作。

WATCH

隔离模式必须成为 UI 可见、可审计的事实;不能只存在于创建日志中。

LESSON CHECKPOINT

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

隔离是多维契约;不同 cwd 只解决其中一维。