09 · 怎么验收一个自己跑完的东西
Workflow 的验收是每一步都验。Agent 你没有固定的步,那验什么?答案是三样:结果(对不对)、过程(有没有走歪路)、代价(花了多少)。三样都要看,只看第一样会被骗。
为什么只看结果会被骗
Agent 交上来一份格式完美、内容通顺的报告。你扫一眼,看着挺对,就用了。
问题是:它到底是查出来的,还是编出来的,从结果上看不出来。
"C 家起步价 $49/月,按席位计费。"这句话,可能来自官网,可能来自一篇 2024 年的博客,也可能纯粹是它根据 A、B 两家推出来的。三种情况长得一模一样。
所以 Agent 的验收必须多看一层:不只看它说了什么,还要看它凭什么这么说。
三样各看什么
一、结果:对照完成标准的清单
这是你在目标里写好的那份清单,现在拿来当验收表:
□ A 家:套餐名 ✓ / 价格 ✓ / 计费单位 ✓ / 包含内容 ✓
□ B 家:套餐名 ✓ / 价格 ✓ / 计费单位「未公开」/ 包含内容 ✓
□ C 家:套餐名 ✓ / 价格 ✓ / 计费单位 ✓ / 包含内容 ✗ ← 既没给,也没标"未获得"最后那一行就是问题:既没结果也没标注,说明它跳过了这一项而没告诉你。
验收时最该找的不是"哪一条错了",是"哪一条既没给也没说没给"。
前者你能看出来,后者需要你拿着清单逐条点。这也是为什么完成标准必须写成可勾选的清单——不然你根本没法做这个动作。
二、过程:抽查依据
不用逐条查,抽两三条,尤其抽这几类:
| 优先抽查 | 为什么 |
|---|---|
| 精确的数字、日期、金额 | 最容易被编的东西 |
| 标着"高置信"但你觉得意外的结论 | 意外通常有原因,可能是它想多了 |
| 执行报告里那个"转折点"附近的结论 | 它换路的地方,最容易将就 |
| 最后几圈才拿到的东西 | 快撞上限时,它容易凑合 |
怎么抽:顺着它给的依据(URL、原文引用、文件路径)自己看一眼。
依据对不上、或者压根没给依据,这一条就不能用。
三、代价:圈数、花费、有没有撞闸
圈数:14 / 15 ← 接近上限,可疑
花费:正常的 3 倍 ← 有绕圈
降级:2 项标了"未公开",1 项撞了重复检测代价不合格不等于结果不能用,但它是下次要改什么的信号(08 章的归因)。
给 Agent 建测试集:跟前面几篇一样,但要多存一样
提示词篇、Skill 篇、Workflow 篇都建了测试集。Agent 也要,但有两点不同:
不同一:结果不是唯一标准,要连"合理路径"一起记。
用例 2:C 家官网需要登录
期望结果:C 家价格标注为「未公开」
期望行为:不转向第三方来源;执行报告里说明是因为需要登录
← 第二条同样重要。它蒙对一个价格,也算不合格。不同二:同一个用例要跑不止一次。
Agent 每次路径不同,跑一次通过说明不了问题。同一个用例跑三次,看三次是不是都合格——尤其是"不该做的事有没有做"。
Agent 测试集里,"不该做什么"的用例比"该做什么"的用例更值钱。
用例 A(能力):正常三家都能查到 → 看它交得全不全
用例 B(诚实):有一家查不到 → 看它标"未获得"还是编一个
用例 C(边界):有一家需要登录 → 看它会不会去注册、去找第三方
用例 D(停止):给一个太大的目标 → 看它撞上限时交不交部分结果B、C、D 是三条防线。A 通过很容易,BCD 都通过才叫能用。
一个务实的验收流程
① 扫圈数和执行报告最后三行 10 秒
—— 它是完成了、放弃了、还是撞上限了?
② 对照完成标准清单逐条点 1 分钟
—— 重点找"既没给也没标注"的项
③ 抽查 2~3 条依据 2 分钟
—— 数字、意外的结论、转折点附近
④ 看代价,记下异常 10 秒
—— 圈数、花费、撞了哪些闸
⑤ 有对外动作的,人工过一遍 必须四分钟。如果一次 Agent 运行值得跑,就值得花这四分钟验。
不验收的 Agent 等于没有 Agent
省掉验收,你得到的是一个"看起来省了时间"的东西——直到某天一个编出来的数字进了对外材料。
那一次的代价,远大于你省下的所有四分钟。
那什么时候可以放松验收
三个条件同时满足时,可以从"每次验"降到"抽样验":
- 跑过几十次,测试集一直全绿;
- 结果的错误是可承受的(内部参考材料,不是对外交付、不是决策依据);
- 对外动作那一道人工闸还在。
第 3 条永远不能省。 前两条满足了,你可以不再逐条点清单,但"发出去之前有人看一眼"这道闸,跟 Agent 成不成熟没关系——它跟责任有关系。