三省六部 Agent 这条路不通

什么是三省六部?

它指的是直接把人类组织的分工逻辑迁移到 Agent 系统。之前团队的工作分工:

  • PM / 产品经理:写需求
  • Tech Lead / 架构师:做技术方案
  • Dev / 工程师:写代码
  • QA / 测试:验收测试 然后把需求交给AI,工作像公司流程一样在 Agents 之间流转。

三省六部为什么会流行?

因为它方便人去理解,满足了人类对AI系统可解释性的渴望;也满足了管理层对"AI像团队一样工作"的想象;还好展示,用流程图画出来,有部门、有箭头、有交接,非常直观。 更深层的原因是:大多数采用这个模式的团队,并没有真正面对过"上下文在多Agent间传递时的损耗"这个问题。他们的任务可能不够复杂,或者问题被其他因素掩盖了。等到任务复杂度上来,系统开始出现诡异的"局部正确,整体错误"时,问题才会暴露。

我之前一段时间也觉得 opencode + oh-my-opencode/OMO 配合 A2A 协议这套组合是现阶段的最佳实践,A2A 解决的是 Agent 间通信协议,不解决语义压缩、上下文漂移和目标连续性。 但是在执行一些复杂的任务过程中,碰到了上下文截断/污染的问题,再之后深入去了解之后才知道存在会制造假边界、切断上下文、浪费 token这些问题。而现在现有的 A2A 协议等技术手段还不能解决信息压缩造成的损失问题,信息压缩的次数和信息漂移的程度是正相关。 回头研究主流模型厂商的 coding agent 架构,是主 Agent 持有完整意图,显式状态承接长期记忆,子 Agent 只负责并行探索和对抗验证。

为什么多Role-Agent架构在工程上站不住?

把 Agent 命名为产品经理、架构师、工程师、测试,不能让系统更专业,只会引入三个成本:

角色边界让模型少思考

人类组织需要分工,是因为人有注意力上限、专业壁垒和沟通成本。LLM 不同,同一个模型可以写需求、读代码、做架构、补测试;它缺的是完整上下文、稳定目标和足够深的推理预算。 把模型锁进 PM、Tech Lead、Dev、QA 角色,会把原本连续的判断拆碎。

  1. 测试角色看到架构问题,会被角色设定诱导成沉默;
  2. 实现角色发现需求漏洞,也会被流水线诱导成照单执行。
  3. 最有价值的判断常常出现在边界上。角色流水线把边界变成墙。

文档交接让上下文衰减

在三省六部工作流里,A 写文档交给 B。B 拿到的是压缩后的结论,缺少生成结论时的犹豫、取舍、排除项和隐含假设。每一次交接都在重建上下文。

Token 和流程成本

流程越长,漂移越隐蔽:每个节点都局部合理,整体目标逐步偏离,局部最优不代表整体最优。 外部状态文件的逻辑完全不同。progress、spec、runbook、git history 记录的是同一条任务主线的增量历史。下一个 session 读取的是完整工程现场,相当于下一个自己接着做。 大量 token 被消耗在"交接文件""角色说明""流程模拟"上,而没有用于真正推理。系统看起来像一个公司在协作,实际是把 token 消耗在模拟组织行为上。

关键差异很简单:流水线交接压缩推理;状态文件积累推理。前者制造断点,后者保留连续性

厂商是怎么设计的

Anthropic、OpenAI、Google 关注的是任务上下文如何持续、状态如何继承、推理如何避免漂移。主要集中在:

  • 哪些信息必须由同一条推理链持续持有
  • 哪些问题可以并行探索
  • 哪些状态必须写进外部文件
  • 哪些结果需要被独立验证

共同点:保住任务主线,扩大独立搜索,把关键状态写到外部,给验证者明确的否定职责。

Anthropic

方向是 Context Engineering:

  1. 用 progress 文件、git history、initializer/runbook 保住跨 session 状态;
  2. Research 系统采用 orchestrator-worker,由主 agent 分解任务,子 agent 并行探索
  3. 再回流给主 agent 综合。

OpenAI

方向是 spec、runbook、compaction、Skills:

  1. 先冻结目标,再把操作规程和可复用能力挂进执行环境。
  2. Skills 是操作规范和工具包,角色标签在这里没有工程价值。

Google

方向是大上下文与 Context-driven Development:

  1. 把项目意图放进持久化 spec 和 plan
  2. 用长上下文和推理签名缓解漂移。

感慨一下

人有康威定律,Agent也有自己的"康威定律"。 人类分工是为了解决注意力、专业壁垒和沟通协调的问题,虚拟公司式多 Agent 的核心问题是:它用组织分工替代了推理连续性。 维护型项目真正需要的,是主线 Agent、外部状态文件和否定型验证。

和厂商学能学到什么?

  1. 连续推理交给单一主线。主 Agent 持有目标、约束、历史和最终整合权。
  2. 独立问题交给并行子 Agent。竞品调研、资料检索、方案枚举适合拆出去;强依赖同一上下文的设计和实现适合留在主线。
  3. 长期任务必须外化状态。一份有效状态文件至少包含:任务目标、已完成步骤、当前状态、已知坑。目标保持稳定,历史追加,当前状态覆盖,坑位持续沉淀。
  4. 验证 Agent 只负责否定。它要找漏洞、反例、遗漏和风险;它不接棒继续做。
  5. 工具和规程决定能力。bash、文件读写、搜索、测试、spec、runbook、skill,比 PM/QA 这种标签更重要。

维护型项目的正确工作流

维护型项目是在活系统上动手术。第一步是把 AI 接到真实工程现场:原始需求、现有代码、历史决策、项目规范、已知坑和验收标准。

正确流程可以压成六步:

  1. 需求落盘:先把原始需求写成 requirements.md,包含目标、边界、非目标、验收标准和相关链接。需求必须稳定,否则后面的推理都会漂。
  2. 代码探索:让 AI 先读现有实现、目录结构、接口契约、测试和历史文档,再提出澄清问题。没有完成探索之前,不进入实现。
  3. 方案确认:AI 输出 design.md 或修改计划,写清为什么改、改哪些文件、有哪些方案、推荐哪一种、风险是什么。人只在这里做关键决策。
  4. 任务拆解:把方案拆成 tasks.md,每个任务都要有文件路径、变更点和验证方式。任务数量要受控,复杂需求宁愿拆小,也不要让一个超长计划吞掉上下文。
  5. 执行验证:AI 按计划实现,过程中持续更新 progress.mdchange-log.md,记录已完成步骤、当前状态、踩坑、回滚点和未解决问题。验证 Agent 只负责找错,不能接棒继续写。
  6. 归档同步:需求完成后,把规范增量、关键决策、测试结果和踩坑记录合并回项目活文档。否则文档会重新变成沉睡 Wiki,下一个 session 还是要从头考古。

本质是用工具链把每个断点都变成可继承的工程状态。

最小闭环可以固定四类文件:

  • requirements.md:目标、边界、验收标准、非目标。
  • design.md:方案选择、文件影响面、风险和人工决策。
  • tasks.md:可执行任务、路径、验证标准。
  • change-log.md:计划变更、执行进度、踩坑记录、当前状态。

小修小改可以只保留 requirements.md + change-log.md

复杂功能、重构、跨模块改动必须走完整的 requirements -> design -> tasks -> execute -> verify -> archive 流程。

判断标准很简单:只要 AI 需要理解历史上下文才能不误伤系统,就不要直接让它写代码。

最终判断

三省六部让 AI 系统看起来像公司,工程收益很低。

多 Agent 架构真正需要的是一个能持续记住目标的主线、一组可并行探索的子任务、一套可继承的外部状态,以及一个专门找错的验证者。

推荐方案:主 Agent + requirements/design/tasks/change-log + 并行研究子 Agent + 否定型验证 Agent。

先把需求、方案、任务、变更日志标准化,这比增加更多角色 Agent 更有效。

相关推荐
ANnianStriver7 小时前
PetLumina 07 — 宠物管理升级与 JavaScript 大数精度修复
开发语言·javascript·ai编程·宠物
阿里云云原生7 小时前
Code designs Harness 还是 Model drives Harnesses?
ai编程
阿里云云原生8 小时前
吉利运维进化论:没有高质量的架构资产,就没有高质量的 AIOps
ai编程
默默且听风8 小时前
Ubuntu 22 环境下 VS Code Codex 插件无法打开的排查与修复记录
后端·ai编程·vibecoding
周易宅8 小时前
Hermes Agent 内部/后端命令速查表
ai·agent·hermes
大模型真好玩9 小时前
智能体从入门到精通:6个必学GitHub开源项目
人工智能·agent·deepseek
labixiong9 小时前
Prompt 工程:当一段文字学会了思考、行动与统治
前端·ai编程
程序员黑豆9 小时前
AI全栈开发之Java:怎么安装JDK
前端·ai编程·全栈
阿里云云原生10 小时前
AI Agent 资源利用率瓶颈如何破?AI 任务调度 + Sandbox 实现动态休眠与唤醒
agent