Skip to content

05 · 每一步都要能验收 ​

流水线最大的风险不是某一步会错,是错了没人发现,一路流到最后。等你在成品上看出不对,前面三步的产出早就被覆盖了,你只能从头猜。所以每一步后面都要有一道闸。

错误会在流水线里放大 ​

一个具体的例子:

text
① 整理纪要   —— 把"下周二再碰一次"漏了
② 抽待办     —— 基于漏了的纪要,自然也没有这条
③ 生成消息   —— 三条消息发出去,没人知道下周二要开会
④ 你看消息   —— 看着都挺通顺,点了发送

第一步的一个遗漏,到第四步已经完全看不出来了。 你看到的是三条格式正确、语气得体的消息——它们唯一的问题是少了一条,而"少了什么"是最难从成品上看出来的。

这就是为什么闸要设在每一步后面,而不是只设在最后。

三种闸,从轻到重 ​

闸一:结构检查(免费,必设) ​

最便宜的一种:这一步的产出,格式对不对。

text
② 抽待办 之后:
   - 是不是一张表?
   - 是不是三列?
   - 有没有空单元格(应该是「待确认」而不是空)?

这类检查不需要 AI,肉眼一秒钟,写成代码也是几行。它抓不到内容错误,但能抓到"这一步整个跑歪了"——而跑歪的情况比你以为的多。

闸二:自查(便宜,推荐) ​

让这一步自己交一份检查结果。提示词篇 06讲过写法:

text
输出分两部分:
一、待办表
二、自查:
| 检查项 | 结果 |
| 每行三列都有值(或「待确认」) | 是/否 |
| 每条待办都能在纪要里找到出处 | 是/否 |
| 纪要里的待办没有遗漏 | 是/否 |

出现「否」就改了再交。

自查能查什么、不能查什么

能查:格式对不对、条目全不全、要求漏没漏。这些是可对照的。

不能查:内容是不是事实。它编的时候就觉得是真的。

所以自查是筛子,不是保险。真正的事实核对只能靠人,或者靠下面这招。

闸三:交叉核对(贵,关键步骤才用) ​

用一个独立的步骤去查上一步:

text
② 抽待办        → 待办表
②' 核对         → 拿纪要 + 待办表,只回答一个问题:
                   "纪要里有没有哪条待办没被抽出来?逐条对,只列漏掉的。"

关键在于②' 是一个干净的步骤,它没参与 ② 的生成,不会替自己圆场。这是"漏了什么"这类错误唯一有效的自动查法。

代价是多一次调用。所以只用在漏了会出事的那一两步上。

闸设在哪几步 ​

不用每步都上三道闸。按这个原则分配:

步骤性质设什么闸
机械转换(格式化、分组、套模板)结构检查就够
提取(从材料里抽东西)结构检查 + 自查;漏了会出事的加交叉核对
判断(分类、打分、下结论)结构检查 + 自查;结果影响后面分支的,加人工
生成对外内容必须有人工,见 07 章

一条经验:"提取"和"分类"这两类步骤,是流水线里最该设闸的地方。

因为它们的错误最隐蔽——提取漏了、分类错了,产出看着都很正常,一路顺畅地流到最后。而格式错、语气错这类问题,反而在成品上一眼能看见。

越是看不出来的错误,越要在源头设闸。

验收标准要在拆步骤时就写好 ​

回到 03 章那张表的最后一列:

步产出怎么算合格
① 整理纪要三块结构的纪要三章齐全;无原文之外的人名 / 日期;未定的事没写进第一块
② 抽待办表格:事项/责任人/截止每行三列都有值或「待确认」;每条能在纪要里找到出处;纪要里的待办没漏
③ 生成消息每人一条消息每条含事项、截止、发起人;没有别人的事项串进来

这一列写不出来,那一步就还没拆对。 写得出来,它同时是三样东西:

  1. 你手动检查时的清单;
  2. 让这一步自查时的检查项;
  3. 将来自动化时的断言。

一份东西三个用途——这跟 Skill 篇那份检查清单是同一个道理。

给流水线建测试集 ​

跟单条提示词一样(提示词篇 08),流水线也该有测试集,只是要多存一样东西:

text
用例 1(标准)    原始材料 + 每一步的期望产出
用例 2(缺信息)  ……
用例 3(有冲突)  ……

关键是存"每一步的期望产出",不只是最终结果。 这样某次跑歪了,你能一步步比对,立刻定位到第几步开始不对。

只存最终结果的话,你还是得从头猜。

一个便宜的习惯 ​

每次流水线跑完,别只看最终产物,回头扫一眼中间产物。

十秒钟的事,能抓到大部分"看着没问题但其实漏了"的情况。尤其是刚上线的头两周——那时候你还不知道它会在哪儿翻车。

两周之后你会形成直觉:这条线最容易在第几步出问题。然后把闸加在那儿。

下一步 ​

06 · 出错、重试与兜底 —— 闸拦下来了,然后呢。

一份讲通用概念的入门手册 · 不绑定任何一家模型或工具 · 例子可直接照抄