(最后更新: 2026-05-07T16:20:00+08:00) Agent Workflow

两个 Agent 怎么真正协作?我们把 ACS 做成了可复用工程案例库

Agent Collaboration SOP,简称 ACS,是 kunpeng-ai-lab 维护的一套 Owner / Executor / Reviewer 三角色协作规范。它把 AI Agent 工程协作从聊天记录推进到证据台账、Reviewer 报告、案例库和反模式复盘。

#ACS#Agent Collaboration SOP#AI Coding Agent#Agent Workflow#Evidence Ledger#Case Study

需要继续找相关内容?

如果你想继续查工具名、术语、对比页或相关问题,可以直接搜全站,不用回到博客列表页重找。

Quick Summary

核心结论

ACS 的重点不是让两个 Agent 多聊几轮,而是把 Owner 决策、Executor 交付、Reviewer 审核和证据台账固化成可复用工程流程。

适合谁看

适合已经在用 Codex、Claude Code、OpenClaw、Hermes 或其他 coding agent 做真实项目、PR、部署和交接的团队。

关键判断

ACS 项目已经包含 README、通信路由、Message ID、file-first handoff、Evidence Ledger、Reviewer Report、case-studies 和 anti-patterns 等公开材料。

下一步建议

先从一个真实项目阶段试用 ACS:让 Executor 写 handoff,让 Reviewer 查证据和范围,让 Owner 只基于文件化证据做决定。

你将学到

  • + ACS 到底解决哪类 AI Agent 协作问题
  • + 为什么 Executor 不能自己验收自己
  • + Evidence Ledger 和 Reviewer Report 应该记录什么
  • + 工程案例库和反模式库为什么值得长期维护
  • + 社区可以怎样贡献脱敏案例

两个 Agent 协作,最大的问题不是“谁更聪明”

最近我们把一个新项目整理出来了:

agent-collaboration-sop

项目简称 ACS

它解决的不是“怎么让 Agent 写得更多”,而是一个更实际的问题:

当一个 Agent 负责执行,另一个 Agent 负责审核,人类 Owner 负责最终决策时,这三方怎么协作才不乱?

我越来越觉得,AI Coding Agent 进入真实项目之后,最容易出问题的地方并不是模型不会写代码,而是协作链路太松。

常见情况是这样的:

  • Executor 改完代码,自己跑了测试,然后自己宣布完成;
  • Reviewer 只是复读一遍“测试通过”,没有看范围、架构和截图;
  • Owner 在聊天里做过决策,但下一轮上下文压缩后没人记得;
  • 交接文档说修好了,正式设计文件里还是旧指令;
  • UI、部署、上游 PR、客户可见内容没有留下证据截图;
  • 公开案例里混入本地路径、私有仓库、客户名或敏感信息。

这些问题不是靠一句“认真 review”就能解决的。

所以 ACS 做的事情很朴素:把协作变成文件化、可审核、可复盘的工程流程。

ACS README overview

ACS 的三角色:Owner、Executor、Reviewer

ACS 默认使用三角色模型。

角色责任
Owner决定目标、范围、阶段入口、发布、上游 PR、业务边界
Executor Agent设计、实现、自测、记录证据、写交接
Reviewer Agent独立检查证据、目标、范围、架构、测试、截图、脱敏和发布风险

这套模型里有一个底线:Executor 不能自己批准自己。

这句话听起来像流程话,但在 Agent 工程里很关键。

因为同一个 Agent 很容易沿着自己的假设往下走。它可能真的跑了测试,也可能真的修了某个问题,但这不代表:

  • 改动还在 Owner 批准的范围里;
  • 新增测试被默认命令覆盖到了;
  • UI 页面被打开看过;
  • 文档和 handoff 没有漂移;
  • 对外发布内容已经脱敏;
  • 上游维护者能快速 review。

ACS 让 Reviewer 明确承担“第二双眼睛”的责任。

不是为了制造流程感,而是为了把风险挡在提交、部署、发文或 PR 之前。

绿色测试只是证据,不是批准

ACS 里有一句我很喜欢的话:

Green tests are evidence, not approval.

测试通过当然重要,但它只证明某个命令在某个环境里通过了。

它不能证明这次工作真的符合产品目标,也不能证明证据齐全,更不能证明没有把不该改的文件混进去。

所以 Reviewer Report 不是只写一句“测试通过”。

它应该覆盖:

  • 命令是否跑过;
  • 证据是否落到文件;
  • 截图是否能证明 UI 或状态;
  • git diff 是否和 handoff 一致;
  • 产品目标有没有偏移;
  • 架构边界有没有被破坏;
  • 公开内容是否脱敏;
  • 剩余风险是否写清楚。

ACS reviewer report template

这也是 ACS 和普通提示词最大的区别。

普通提示词让 Agent “更努力”。ACS 让协作链路“更可查”。

证据不能只留在聊天里

很多 Agent 协作失败,不是当时没人知道发生了什么,而是后来没人能还原。

聊天记录会被压缩,会被复制漏,会和仓库状态分离。

一个月后再问“当时为什么这么改”,经常只能靠记忆猜。

ACS 的处理方式是 file-first:

  • Executor handoff 写到文件;
  • Reviewer report 写到文件;
  • Evidence ledger 写到文件;
  • Owner consensus report 写到文件;
  • 长交接只发路径,不在聊天里塞一大段;
  • 正式消息带 Message ID,避免重复执行或漏处理。

ACS evidence ledger template

这件事对长期项目尤其重要。

因为真正有价值的不是某次 Agent “完成了任务”,而是后面的人和后面的 Agent 能知道:

  • 当时的目标是什么;
  • 哪些文件改过;
  • 哪些命令验证过;
  • 哪些截图能证明状态;
  • 哪些风险还没有消掉;
  • 哪条规则因为这个案例被补强了。

这才是工程记忆。

为什么 ACS 要维护工程案例库

ACS 不是只放一份 SOP 文件。

它会长期维护两类资产:

  • case-studies/:成功闭环或被 Reviewer 挡住风险的协作案例;
  • anti-patterns/:看起来没问题、实际很危险的反模式。

ACS case studies index

现在公开素材里已经整理了 4 个脱敏案例。

案例 1:基线稳定阶段发现隐藏 diff

Executor 汇报测试通过,也说没有改产品代码。

Reviewer 没停在测试结果上,而是分别检查 staged diff 和 unstaged diff,发现仓库状态和 handoff 不一致。

这个案例最后沉淀成一条规则:基线关闭不能只看测试,还要看仓库状态、范围证据和证据台账。

案例 2:编码前设计包被多轮拦截

Executor 提交了设计包,包含 BDD、文件计划、截图和验证命令。

Reviewer 发现几个问题:

  • 新测试不会被默认命令覆盖;
  • 目标页面并不是空白页;
  • 产品语言变化被藏在编码问题里;
  • handoff 说旧命令删了,但正式设计文件还保留旧命令。

这类问题如果直接进入编码阶段,后面会变成更贵的返工。

案例 3:集成契约先做设计,不急着写代码

一个平台要接另一个 Agent 系统,Owner 要求先只做 staging/mock/dry-run。

Reviewer 发现契约里说要拒绝未知版本,但请求体里没有 contractVersion 字段。

这就是典型的“设计说了安全,但实现没有可验证入口”。

修正后,契约才具备 fail-closed 的基础。

案例 4:真人 QA 反馈进入原型修复

人类测试发现按钮没反馈、导航名称难懂、证据页面不好找。

Executor 做了原型层修复。

Reviewer 又发现某个说明只存在于隐藏 metadata,对真实用户不可见,于是继续拦截。

这个案例提醒我们:能帮测试过关的东西,不一定能帮用户理解。

反模式库比成功案例更重要

真实团队里,很多好规则都是从坑里长出来的。

ACS 把反模式单独存下来,不是为了追责,而是为了让下一个项目少踩一次。

ACS anti-patterns index

目前公开素材里有 7 个典型反例:

反模式风险
Agent 自验自收同一个假设制造问题,又用同一个假设验证问题
只看绿测测试通过但范围、UI、证据或文档仍然错
证据只在聊天里后续 Agent 和人类无法复盘
handoff 说修了,正式文件没改下一轮实现继续按旧文件走
产品语言漂移被伪装成技术修复技术 workaround 偷偷变成产品决策
UI 验收没有截图自动测试看不到真实布局和视觉问题
不安全公开输出私有路径、客户名、仓库信息、密钥风险外泄

这些反模式很适合社区共建。

因为每个团队都有自己的 Agent 翻车现场。只要脱敏得当,它们都能变成别人可复用的预防清单。

公开案例必须先脱敏

ACS 鼓励贡献真实案例,但不是鼓励暴露真实项目。

公开材料必须保留经验,去掉敏感信息。

ACS redaction rules

公开前要清理:

  • 客户名;
  • 私有仓库 URL;
  • 本地绝对路径;
  • token、cookie、API key、webhook;
  • 原始私聊记录;
  • 未公开商业计划;
  • 任何可以反推出客户或项目身份的信息。

我们更关心的是决策链路和证据模式,而不是谁犯了错。

一个好的 ACS 案例应该回答:

  • 当时目标是什么;
  • Executor 做了什么;
  • Reviewer 查出了什么;
  • Owner 怎么决策;
  • 哪个风险被挡住了;
  • 哪条 SOP 因此变清楚了;
  • 未来团队应该复制什么,避免什么。

社区可以贡献什么

如果你也在用 AI Agent 做真实工程,我们欢迎贡献脱敏后的 ACS-style 案例。

比较有价值的类型包括:

  • Executor / Reviewer 协作闭环;
  • 测试通过但设计不对的 code review;
  • 上游 PR 或 issue 里的 Agent 参与流程;
  • 发布、部署、回滚的 evidence ledger;
  • hidden diff、缺截图、文档漂移、Agent 自验自收等反模式;
  • Reviewer 检查表如何挡住产品、架构、安全或脱敏风险;
  • Owner 决策如何改变阶段边界。

项目地址:

https://github.com/kunpeng-ai-lab/agent-collaboration-sop

如果你不知道从哪里开始,可以先看这几个目录:

docs/
templates/
case-studies/
anti-patterns/
adapters/

我们会持续更新 ACS

ACS 不是一次性写完的规范。

它会随着真实项目继续更新。

每一次 Agent 协作里出现新的坑,比如证据断链、Reviewer 漏查、Owner 决策丢失、公开材料脱敏不足,我们都会优先考虑两件事:

  1. 这是不是一个可复用的反模式;
  2. 它能不能沉淀成新的 case study、checklist 或 template。

如果说 shipping-engineering-work 更像一个 Agent 的工程交付 skill,那么 ACS 更像多个 Agent 和人类 Owner 之间的协作骨架。

一个管“怎么把活干稳”,一个管“怎么让协作可信”。

这也是我们后面长期维护 ACS 工程案例库的原因。

我们希望它不是一份漂亮文档,而是一套会被真实项目不断磨出来的协作方法。

继续延伸

要点总结

  • - 测试通过只是证据之一,不等于可以批准上线、发 PR 或对外发布。
  • - 聊天记录不是长期工程资产,关键决策和验证结果要沉淀到文件。
  • - Reviewer 的职责不只是复跑命令,还要看目标、范围、架构、证据、截图、脱敏和发布风险。
  • - ACS 案例库的价值在于把一次协作闭环变成下一次可复用的团队记忆。

常见问题

ACS 是某个 Agent 专用的吗?

不是。ACS 是 vendor-neutral 的协作 SOP,可以适配 Codex、Claude Code、OpenClaw、Hermes 和其他具备读文件、改代码、跑命令、写交接能力的 Agent。

ACS 会不会太重?

如果只是生成一小段示例代码,它确实偏重。但只要任务涉及真实仓库、上线、PR、客户可见内容或多人协作,ACS 的证据和审核机制就能减少很多返工。

社区贡献案例需要公开真实项目吗?

不需要,也不建议。公开案例必须脱敏,保留决策链路、证据模式和可复用经验,去掉客户名、私有仓库、本地路径、密钥和未公开商业信息。

评论