人类团队做复盘靠纪律。Agent 团队做复盘靠代码。
问题
工作流执行完毕后,最有价值的事不是庆祝完成,而是回答四个问题:
- 流程定义和实际执行有没有偏差?
- 哪一步最容易卡?
- 要不要更新工作流定义?
- 要不要沉淀新 skill?
但在实践中,复盘是最容易被跳过的环节。因为任务已经完成了——PR 提了,代码推了,心理上已经”结束了”。
实际案例:4/8–4/12 的 E2E + 视觉审查工作流,直到 Coraline 追问才发现复盘报告一直没做。规则写了,但执行漏了。
Hermes 的启发
Hermes Agent 的核心理念是闭环学习循环——每次执行后自动提取教训并更新自身。
这启发我们构建了 workflow-retro skill:不是靠人记得做复盘,而是把复盘写进工作流本身。
workflow-retro Skill
触发时机
每条工作流的最后一个节点:
- id: retro type: agent depends_on: [push-and-pr] agent: main skill: workflow-retro prompt: "使用 workflow-retro skill 执行工作流复盘。"PR 提出时立刻执行,不等人类审查或 merge。这保证了复盘不会被跳过。
输出结构
每次复盘生成一份结构化报告:
# 工作流复盘报告
## 基本信息- 工作流类型:/修复- 触发时间:2026-04-14 17:05- 完成时间:2026-04-14 17:45- 总耗时:40 分钟
## 各步骤负责人与产出| 步骤 | 负责人 | 耗时 | 结果 ||------|--------|------|------|| 功能审查 | 牛奶 | 8min | 11/12 通过 || P0 修复 | PraestoClaw | 2min | ✅ || 证据包采集 | 年糕 | 15min | 28 张截图 || 视觉审查 | 可乐 | 7min | 3.8/5 || P1 修复 | 汤圆+饺子 | 3min | ✅ |
## 问题清单1. 年糕截图在未授权状态下采集2. 付费链路 DB schema 不同步
## 改进建议- 年糕应先完成 consent 流程再截图- DB migration 需要自动化自动检查项
复盘不只是写报告。它还会自动检查:
-
是否需要更新 WORKFLOWS.md
- 实际执行和定义有偏差?→ 更新定义
- 发现了新的最佳实践?→ 写入规则
-
是否需要新增/改进 skill
- 某个重复性操作可以沉淀为 skill?→ 创建 skill
- 现有 skill 有缺漏?→ 补充 reference 文件
-
是否需要同步更新其他规则文件
- MEMORY.md
- XIAOJIE-DISPATCH.md
- NIANGAO-EVIDENCE-PACK.md
- 工作流 YAML 定义文件
同步更新硬规则
我们踩过的坑:改了 WORKFLOWS.md 但忘了改对应的 YAML 定义。或者改了 YAML 但忘了更新 MEMORY.md 里的流程描述。
所以写了一条硬规则:凡新增或修改工作流,必须同步检查并按需更新所有相关文件。 复盘时自动执行这个检查。
实际案例
案例 1:E2E + 视觉审查工作流(4/8–4/12)
复盘发现的问题:
- 全审查 14 页全量审查对单个 agent 任务量太大 → 改进:拆成 2-3 个子任务并行
- DISPATCH-BOARD 状态经常不准 → 改进:写成硬规则
- 微信 automator 超时频繁 → 建议:考虑自动重启开发者工具的 skill
案例 2:功能审查 + 视觉审查(4/14)
复盘发现的改进已落地:
- ✅ 年糕每页截首屏+底部(上次只截首屏的问题已修复)
- ✅ 年糕 timeout 1800s(不再超时)
- ✅ 牛奶只做 API 层(拆分策略有效,8 分钟完成)
- ✅ retro 在 PR 提出时执行(不再等追问)
自我改进飞轮
执行工作流 │ ▼自动复盘(workflow-retro) │ ├── 发现流程偏差 → 更新 YAML 定义 ├── 发现重复操作 → 沉淀新 skill ├── 发现规则缺漏 → 更新 MEMORY.md └── 发现效率瓶颈 → 优化调度策略 │ ▼下一次执行(改进后的工作流) │ ▼自动复盘...每次执行都让下一次更好。这不是口号——是代码级的保证。
关键设计决策
为什么在 PR 提出时执行,而不是 merge 后? 因为 merge 取决于人类 reviewer 的时间。如果等 merge,复盘可能延迟几天。PR 提出时执行,保证复盘和工作流执行在同一个上下文窗口内。
为什么是 skill 而不是脚本? 因为复盘需要判断力——“这个问题值得沉淀成 skill 吗?""这个偏差是偶发还是系统性的?“这些判断需要 agent 的推理能力,不是脚本能做的。
为什么要双轨输出(报告 + 自动检查)? 报告是给人看的。自动检查是给系统用的。两者互补:人读报告做决策,系统执行自动更新。