「三省六部」式架构正在让大量团队走弯路。
什么是「三省六部」
在 AI 社区广泛流传的一种多 Agent 设计思路:把 Agent 分别命名为「产品经理」「架构师」「测试工程师」,任务像流水线一样在 Agent 之间传递文档、协作完成。CrewAI、MetaGPT 都采用这个模式,图示上非常好看。
但问题是:它解决的是人类的瓶颈,不是 AI 的瓶颈。
为什么这个类比根本上是错的
第一个问题:角色标签制造假边界
人类需要分工,是因为单个人注意力有限、有专业壁垒。但 LLM 完全不同:
- 同一模型既能写 PRD 又能写代码,没有「职业边界」
- 瓶颈不是注意力广度,而是推理深度和信息完整性
- 给 Agent 贴上「测试工程师」标签,不会让它更专业——只会让它拒绝越界
最有价值的推理往往发生在边界上。三省六部模式在系统层面封死了这个可能性。
第二个问题:信息在流转中死亡
Agent A 产出文档传给 Agent B,传递的是结论,不是推理过程。B 重新理解,重新建立上下文。原始意图衰减,隐含假设丢失,每次传递累积误差。
人类组织靠会议、文化、非正式沟通来补偿这个损耗。Agent 之间没有这些机制。
关键区别:三省六部的交接是「角色间单向」——A 写完交给 B,B 不再回头。外部状态文件是「同一任务增量」——执行主体在每个 checkpoint 往同一份记录里追加,下一个 session 读取的是完整历史。
三家厂商实际怎么做的
Anthropic:Context Engineering + 显式状态文件
核心隐喻:「轮班工程师」——每个新 session 对之前一无所知。
解法不是角色分工,而是:
claude-progress.txt:跨 session 工作日志- Git history 作为状态锚点
- Initializer Agent:只在第一个 session 运行,建立环境和 runbook
关键洞察:Anthropic 的 subagent 是「功能性并行」,不是「职能性分工」。前者是同时撒网捞鱼,后者是接力赛。
Token 消耗量解释了 80% 的性能差异——多 Agent 的价值在于用更多 token 覆盖更大的搜索空间,不是分工更合理。
OpenAI:Compaction + Skills + Spec 文件
任务开始时规划 continuity,给 Agent spec 文件冻结目标,milestone-based plan 加 runbook 文件作为共享记忆。
Server-side compaction 是默认 primitive,不是紧急 fallback。Skills 是可复用的、版本化的指令集——是工具和操作规程,不是角色。
Google:1M 上下文 + Conductor 扩展
硬扩窗口,但自己也知道不够用。Conductor 扩展把项目意图从聊天窗口移到持久化 Markdown 文件。Thought Signatures 机制在长 session 里保存推理链关键节点。
真正的架构原则
推理链不能断,只能分叉再合并。 正确用法:主 agent 持有完整意图,子调用是为了深挖某个子问题,结果回流给主 agent,不是传给下一个 agent。
显式外部状态,不靠模型记住。 状态文件应该包含四类信息:任务目标(不变)、已完成步骤(追加)、当前状态(覆盖)、已知坑(追加)。
多 Agent 的价值是并行覆盖,不是分工。 适合 breadth-first 场景(同时探索多个独立方向)。不适合需要连续推理的场景。
验证 Agent 是对抗者,不是接棒者。 正确设计是让 Agent 专门找另一个 Agent 的问题,对抗性检验,不是流水线传递。
工具是工具,不是角色。 工具决定了 Agent 能做什么;角色标签只是约束它愿意做什么。
为什么三省六部还是流行的
因为它好解释、好展示。「这个 Agent 是 PM,那个是 QA」——任何人都能理解。
但好解释和工程上成立是两件事。大多数采用这个模式的团队,任务复杂度还没高到暴露这个问题。等到流水线足够长,系统开始「局部正确但整体漂移」时,诊断会非常困难。
实践建议:不要问「我需要几个 Agent」,要问「这个任务的信息依赖结构是什么」。
这篇文章的核心洞察很有力:三省六部解决的是人类的瓶颈,不是 AI 的瓶颈。LLM 没有注意力广度限制、没有职业壁垒,贴角色标签反而制造了假边界。但它流行的原因也恰恰在于它「好解释」「好展示」——这是工程师在传播自己作品时最难抵抗的诱惑。我自己的判断:这篇文章是今天所有文章里认知密度最高的,但也是最难向非技术读者解释的——因为它真正反驳的不是某个错误,而是一种直觉上很吸引人的错误。