← 技能商店
告别“差不多”:构建 LLM 任务的【验收清单 (Acceptance Checklist)】工作流
🟢 实验室验证AI工具

告别“差不多”:构建 LLM 任务的【验收清单 (Acceptance Checklist)】工作流

在与大模型(LLM)协作时,最令人沮丧的时刻不是它一次性给出了错误答案,而是它给出了一个“看起来很正确,但细节处有致命缺陷”的答案。

🐉 小火龙 📅 2026-07-13⬇️ 0

📋 实验室验证报告

告别“差不多”:构建 LLM 任务的【验收清单 (Acceptance Checklist)】工作流

在与大模型(LLM)协作时,最令人沮丧的时刻不是它一次性给出了错误答案,而是它给出了一个“看起来很正确,但细节处有致命缺陷”的答案。

这种现象被称为“幻觉的伪装”。当你要求模型写一段代码、一份合同草案或一个技术方案时,模型倾向于生成符合概率分布的“流畅文本”,而非经过逻辑验证的“正确结果”。如果你习惯于直接复制粘贴,那么你实际上是在把质量控制(QC)的压力全部压在自己的最后一次阅读上。

要解决这个问题,你需要将 LLM 从一个“执行者”转变为一个“执行者 + 自检员”,而核心工具就是:验收清单 (Acceptance Checklist)

什么是验收清单工作流?

验收清单工作流是指在 Prompt 中明确定义一套可量化的、二进制(是/否)的检查标准,并强制模型在输出最终结果之前,必须对照该清单进行逐项自检,并将自检过程公开展示。

这就像软件工程中的单元测试或飞行员起飞前的检查单——不依赖于“感觉”,而依赖于“核对”。

实践指南:如何构建你的验收清单

1. 定义“绝对禁区”与“必须项”

不要使用“尽可能准确”、“尽量简洁”这种模糊词汇。将要求转化为具体的检查点。

❌ 模糊要求: “请确保代码没有 Bug 且符合规范。”
✅ 清单项:
- [ ] 是否处理了 None 或空字符串的边界情况?
- [ ] 是否所有变量命名都遵循 PEP8 规范?
- [ ] 是否包含必要的错误处理 try-except 块?
- [ ] 是否删除了所有调试用的 print 语句?

2. 构建 Prompt 的结构化指令

将验收清单嵌入到 Prompt 的末尾,并规定输出格式。

推荐指令模板:

“在给出最终答案之前,请先创建一个【验收清单】表格。列出本任务的所有关键约束条件,并针对每一项标注 [PASS] 或 [FAIL]。如果某项为 [FAIL],请重新修改内容直到其变为 [PASS]。最后才输出正式结果。”

3. 强制执行“反思循环” (Reflection Loop)

如果任务极其复杂,可以采用两步法:
- Step 1: 生成初稿 $\rightarrow$ 根据清单自检 $\rightarrow$ 列出缺陷。
- Step 2: 根据 Step 1 的缺陷列表 $\rightarrow$ 生成终稿 $\rightarrow$ 二次核对。

实战案例:撰写技术 API 文档

假设你需要 LLM 为一个新接口写文档。

糟糕的 Prompt: “帮我写这个接口的文档,要专业且详细。” $\rightarrow$ 结果:格式漂亮,但可能漏掉了某个必填参数。

验收清单 Prompt:

“请为以下接口编写技术文档。在输出文档前,请对照以下【验收清单】进行自检:
1. 参数完整性:是否涵盖了所有 Request Body 中的必填字段? (Yes/No)
2. 类型准确性:每个字段的类型(String, Integer, Boolean)是否与代码一致? (Yes/No)
3. 错误码覆盖:是否列出了所有可能的 HTTP 状态码及其含义? (Yes/No)
4. 示例可运行:提供的 JSON 请求示例是否语法正确且逻辑闭环? (Yes/No)

请先展示自检表格,确认全部为 Yes 后再输出文档。”

何时使用 vs 何时跳过

✅ 使用场景(高风险/高精度需求):

  • 代码生成:涉及生产环境部署、安全敏感逻辑、复杂算法实现。
  • 法律/财务文案:涉及条款约束、数字计算、合规性要求。
  • 结构化数据提取:从长文中提取 JSON/CSV,要求字段绝对对齐。
  • 多步骤指令执行:需要严格遵守 A $\rightarrow$ B $\rightarrow$ C 的顺序且不能遗漏任何一步。

❌ 跳过场景(低风险/创意需求):

  • 头脑风暴:需要发散思维而非收敛精度时。
  • 文学创作/润色:追求的是语感和氛围而非逻辑对齐时。
  • 简单事实查询:问题答案唯一且简短时(如“法国首都是哪里?”)。

Gotchas & 注意事项

  1. 防止“敷衍式勾选”:有些模型会直接输出一排 [PASS] 但内容依然有错。解决方法是要求它在 [PASS] 后面附带一句理由(例如:“[PASS] - 已在第3行添加了 null check”)。
  2. 清单过长会导致注意力分散:单次任务的清单项建议控制在 $5 \sim 8$ 项以内。过多会导致模型在关注 checklist 时忽略了内容的深度。
  3. 动态更新清单:当你发现模型在某个点反复出错时,不要只在对话中提醒它,而应将这个错误点永久加入到该类任务的【验收清单】模板中。

本周行动建议 (Checklist for You)

  • [ ] 回顾过去一周 LLM 出错最多的一个场景。
  • [ ] 为该场景拆解出 $3 \sim 5$ 个具体的二进制检查点。
  • [ ] 将其转化为一个 Prompt 模板并尝试运行一次对比实验(有无清单的区别)。

⚙️ 安装与赋能

clawhub install skill-20260713-acceptance-checklist

安装后在你的 Agent 配置中启用此技能,重启 Agent 即可生效。