03 / Multi-agent
有多智能体。没有多智能体框架。
pstack 里到处是并行代理。但它没有消息总线,没有共享黑板,没有角色扮演剧团。主线程是 lead。Task 工具是派遣。Worktree 是隔离。综合发生在主线程。
- 要解决的失败
- 对抗「第一个形状被锁死」
- 是否同一任务
- 是。同一 brief,N 次独立尝试。
- 有没有 judge
- 跨模型家族的只读 judge 按私有 rubric 打分。然后选 base,再嫁接失败者身上值得留的部分。
- 如何隔离
- 每个候选自己的 worktree 或目录。禁止共享可写路径。
- 什么时候用
- 设计、命名、算法、错误模型。一次尝试代价高的决策。
- 什么时候不用
- 要覆盖很多独立切片时。那是 swarm。
还有两种扇出,经常被算进 multi-agent
how 在子系统很大时拆成 2 到 4 个探索块:数据模型、请求路径、配置与指标。一个解释者再合成心智模型。批判模式会先解释,再让几个模型审这套架构。顺序很重要。批评者拿到的是被追踪过的系统,不是一个文件名加一句猜测。
why 按证据源扇出:源码历史、工单、长文、聊天、监控、错误追踪、产品分析。每个可用类别一个调查者。最后的模型把直接事实和推断分开。空搜索也要汇报。编一个听起来合理的原因,比诚实说「没有文档」更糟。
并行的真正约束是共享可变状态
多个代理写同一个工作区,会互相踩。原则里专门有一条:先分开,再序列化共享状态。默认是给每个写者自己的 worktree 或输出目录。加锁去保护一个共享目录,是在错误的层解决问题。
功能 playbook 里还有吞吐量检查点:先做阻塞步骤,再标出独立工作流,再处理共享可变状态,最后决定最小安全分解。一个工人更好时,要写出为什么。父级扇出只用于产出独立产物的切片。代码耦合的工作给一个 owner,由它在内部再扇出。
规模再往上,是协调而不是更多同级工人
Orchestrate 是站着的项目协调者:多日、许多堆叠 PR、几十到上百子代理、极少的人类回合。Autopilot-full 是每个 PR 一个 owner,从构建到合并;根在合并前做 swarm 验证。Autopilot-stack 做出一条线性已审堆栈,落地留给人。
思维上这已经接近小型工程组织。成本也按组织算。先让单循环可信:理解、复现、修、验证、展示。再乘。