05 · 每一步都要能验收
流水线最大的风险不是某一步会错,是错了没人发现,一路流到最后。等你在成品上看出不对,前面三步的产出早就被覆盖了,你只能从头猜。所以每一步后面都要有一道闸。
错误会在流水线里放大
一个具体的例子:
① 整理纪要 —— 把"下周二再碰一次"漏了
② 抽待办 —— 基于漏了的纪要,自然也没有这条
③ 生成消息 —— 三条消息发出去,没人知道下周二要开会
④ 你看消息 —— 看着都挺通顺,点了发送第一步的一个遗漏,到第四步已经完全看不出来了。 你看到的是三条格式正确、语气得体的消息——它们唯一的问题是少了一条,而"少了什么"是最难从成品上看出来的。
这就是为什么闸要设在每一步后面,而不是只设在最后。
三种闸,从轻到重
闸一:结构检查(免费,必设)
最便宜的一种:这一步的产出,格式对不对。
② 抽待办 之后:
- 是不是一张表?
- 是不是三列?
- 有没有空单元格(应该是「待确认」而不是空)?这类检查不需要 AI,肉眼一秒钟,写成代码也是几行。它抓不到内容错误,但能抓到"这一步整个跑歪了"——而跑歪的情况比你以为的多。
闸二:自查(便宜,推荐)
让这一步自己交一份检查结果。提示词篇 06讲过写法:
输出分两部分:
一、待办表
二、自查:
| 检查项 | 结果 |
| 每行三列都有值(或「待确认」) | 是/否 |
| 每条待办都能在纪要里找到出处 | 是/否 |
| 纪要里的待办没有遗漏 | 是/否 |
出现「否」就改了再交。自查能查什么、不能查什么
能查:格式对不对、条目全不全、要求漏没漏。这些是可对照的。
不能查:内容是不是事实。它编的时候就觉得是真的。
所以自查是筛子,不是保险。真正的事实核对只能靠人,或者靠下面这招。
闸三:交叉核对(贵,关键步骤才用)
用一个独立的步骤去查上一步:
② 抽待办 → 待办表
②' 核对 → 拿纪要 + 待办表,只回答一个问题:
"纪要里有没有哪条待办没被抽出来?逐条对,只列漏掉的。"关键在于②' 是一个干净的步骤,它没参与 ② 的生成,不会替自己圆场。这是"漏了什么"这类错误唯一有效的自动查法。
代价是多一次调用。所以只用在漏了会出事的那一两步上。
闸设在哪几步
不用每步都上三道闸。按这个原则分配:
| 步骤性质 | 设什么闸 |
|---|---|
| 机械转换(格式化、分组、套模板) | 结构检查就够 |
| 提取(从材料里抽东西) | 结构检查 + 自查;漏了会出事的加交叉核对 |
| 判断(分类、打分、下结论) | 结构检查 + 自查;结果影响后面分支的,加人工 |
| 生成对外内容 | 必须有人工,见 07 章 |
一条经验:"提取"和"分类"这两类步骤,是流水线里最该设闸的地方。
因为它们的错误最隐蔽——提取漏了、分类错了,产出看着都很正常,一路顺畅地流到最后。而格式错、语气错这类问题,反而在成品上一眼能看见。
越是看不出来的错误,越要在源头设闸。
验收标准要在拆步骤时就写好
回到 03 章那张表的最后一列:
| 步 | 产出 | 怎么算合格 |
|---|---|---|
| ① 整理纪要 | 三块结构的纪要 | 三章齐全;无原文之外的人名 / 日期;未定的事没写进第一块 |
| ② 抽待办 | 表格:事项/责任人/截止 | 每行三列都有值或「待确认」;每条能在纪要里找到出处;纪要里的待办没漏 |
| ③ 生成消息 | 每人一条消息 | 每条含事项、截止、发起人;没有别人的事项串进来 |
这一列写不出来,那一步就还没拆对。 写得出来,它同时是三样东西:
- 你手动检查时的清单;
- 让这一步自查时的检查项;
- 将来自动化时的断言。
一份东西三个用途——这跟 Skill 篇那份检查清单是同一个道理。
给流水线建测试集
跟单条提示词一样(提示词篇 08),流水线也该有测试集,只是要多存一样东西:
用例 1(标准) 原始材料 + 每一步的期望产出
用例 2(缺信息) ……
用例 3(有冲突) ……关键是存"每一步的期望产出",不只是最终结果。 这样某次跑歪了,你能一步步比对,立刻定位到第几步开始不对。
只存最终结果的话,你还是得从头猜。
一个便宜的习惯
每次流水线跑完,别只看最终产物,回头扫一眼中间产物。
十秒钟的事,能抓到大部分"看着没问题但其实漏了"的情况。尤其是刚上线的头两周——那时候你还不知道它会在哪儿翻车。
两周之后你会形成直觉:这条线最容易在第几步出问题。然后把闸加在那儿。
下一步
06 · 出错、重试与兜底 —— 闸拦下来了,然后呢。