每日 Prompt 技巧

Chain-of-Verification:让 AI 自己检查自己的事实幻觉

2026-09-07
通用
GPT-6 Astra / Claude 5.1 / Qwen3.8
Prompt技巧Chain-of-VerificationCoVe事实幻觉自我验证

技巧摘要

LLM 最难根治的问题不是不会,而是'自信地胡说'——它生成的内容看起来完全正确,但关键事实是错的。Chain-of-Verification(CoVe)的核心思路是:生成答案后不直接返回,而是让模型自己对答案中的关键事实生成验证问题,独立回答这些验证问题,再用验证结果修正原答案。本文从 CoVe 的四步流程(草稿生成→验证问题生成→独立验证→修正输出)讲起,给出三种典型场景(事实问答 / 数据引用 / 多步推理)的完整模板和避免'验证式幻觉'的三个原则。

Prompt 模板

你是一个严谨的事实核查助手。请按照以下 Chain-of-Verification 流程回答我的问题:

## 原始问题
{{question}}

## 执行步骤
### 第一步:草稿生成
直接回答用户的问题,不要犹豫。给出你的最佳初始答案。

### 第二步:验证问题生成
从草稿答案中提取所有可验证的事实声明(数字、日期、人名、事件因果关系等)。
为每个事实声明生成一个独立的验证问题,格式为:"[验证问题] 的准确答案是什么?"

### 第三步:独立验证
逐个回答验证问题。注意:不要参考草稿答案,独立从你的知识中回答。
如果验证答案与草稿中的声明矛盾,标记为「冲突」。

### 第四步:修正输出
基于验证结果修正草稿答案:
- 冲突的声明:用验证答案替换
- 无法验证的声明:添加「(未验证)」标注
- 验证一致的声明:保留

## 输出格式
请按以下结构输出:
1. **草稿答案**:(初始回答)
2. **验证问题清单**:(提取的事实声明 + 对应验证问题)
3. **验证结果**:(每个验证问题的独立答案 + 是否冲突)
4. **最终答案**:(修正后的回答)

为什么你需要的不是"更好的 Prompt"而是"验证链"

先看一个真实场景。

你让 GPT-6 Astra 帮你查一个关键数据:

2026 年第二季度英伟达数据中心收入是多少?

模型自信地回答:

2026 年 Q2 英伟达数据中心收入为 760 亿美元,同比增长 95%。

看起来完全正确——有具体数字、有增长率、语气笃定。但真实数据是 890 亿美元,同比增长 117%。数字错了 15%,增长率错了 22 个百分点。如果你把这个数据写进投资人汇报材料,后果不堪设想。

这不是"Prompt 不够好"的问题——你已经在 Prompt 里写了"请确保数据准确"。问题在于 LLM 的生成机制本身就不区分"知道"和"不知道",它只是在预测下一个最可能的 Token。当训练数据中出现过类似但不同的数字时,模型会"自信地"生成一个看起来合理但实际错误的值。

这就是 Chain-of-Verification(CoVe,链式验证) 要解决的问题:不是让模型"更小心",而是让模型"自己检查自己"。

CoVe 的四步流程

用户问题
    │
    ▼
┌─────────────┐
│ 1. 草稿生成  │ ← 直接回答,不犹豫
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ 2. 验证问题  │ ← 从答案中提取可验证事实
│    生成      │    转为独立验证问题
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ 3. 独立验证  │ ← 逐个回答验证问题
│              │    不参考草稿答案
└──────┬──────┘
       │
       ▼
┌─────────────┐
│ 4. 修正输出  │ ← 用验证结果修正矛盾
└─────────────┘

第一步:草稿生成——先敢说

让模型直接回答问题,不加任何约束。这一步的目的是拿到"初始猜测",后续验证对象就是它。

草稿:2026 年 Q2 英伟达数据中心收入为 760 亿美元,同比增长 95%。

第二步:验证问题生成——从答案里"挑骨头"

从草稿中提取所有可验证的事实声明,转为独立问题:

声明验证问题
Q2 收入 760 亿美元英伟达 2026 财年第二季度数据中心业务的准确收入是多少?
同比增长 95%英伟达 2026 财年第二季度数据中心收入同比增长率是多少?

关键原则:验证问题必须能脱离原答案独立回答。不能问"草稿中的 760 亿美元对吗"——那是确认,不是验证。

第三步:独立验证——不看草稿重新答

逐个回答验证问题,不允许参考草稿答案:

验证 1:英伟达 2026 财年 Q2 数据中心收入为 890 亿美元。
验证 2:同比增长 117%。

对比发现:

  • 收入:草稿 760 亿 vs 验证 890 亿 → 冲突
  • 增长率:草稿 95% vs 验证 117% → 冲突

第四步:修正输出——用验证结果覆盖草稿

最终答案:2026 年 Q2 英伟达数据中心收入为 890 亿美元,同比增长 117%。

三种典型场景的 CoVe 模板

场景一:事实问答型

适用:历史事件、人物信息、数据查询

问题:"OpenAI 的 GPT-6 Astra 模型的 API 输入价格是多少?"

草稿:GPT-6 Astra 的 API 输入价格为 $15/百万 Token。

验证问题:
1. OpenAI 官方公布的 GPT-6 Astra API 输入价格是多少?
2. GPT-6 Astra 的定价货币单位和计价粒度是什么?

验证答案:
1. $10/百万 Token
2. 美元,按百万 Token 计价

修正:GPT-6 Astra 的 API 输入价格为 $10/百万 Token(草稿中的 $15 有误)。

场景二:数据引用型

适用:报告引用、投资分析、学术写作

问题:"总结 2026 年中国 AI 大模型市场的主要趋势"

草稿中包含 6 条趋势声明 → 生成 6 个验证问题 → 独立验证 → 修正 2 条不准确的声明

场景三:多步推理型

适用:因果分析、逻辑推理、方案对比

问题:"为什么 Qwen3.8-Max 能在 CodeArena 击败 Claude Opus 5?"

草稿:因为 Qwen3.8-Max 参数量更大。

验证问题:
1. Qwen3.8-Max 的参数量是多少?
2. Claude Opus 5 的参数量是多少?
3. CodeArena 评测的具体维度是什么?

验证发现:参数量并非 Qwen 获胜原因,真正原因是"针对编程的专项后训练"。

三个防坑原则

原则一:验证问题必须"可独立回答"

错误:❌ "草稿中的 760 亿美元对吗?" 正确:✅ "英伟达 2026 财年 Q2 数据中心业务的准确收入是多少?"

验证问题的设计决定了 CoVe 的效果。如果你只是问"对不对",模型会倾向确认自己的答案——这叫"确认偏差"。必须把验证问题设计成全新的、独立的查询。

原则二:验证轮次不超过 3 轮

CoVe 不是越多轮越好。每增加一轮验证,延迟和 Token 成本都在增加,而且可能出现"验证式幻觉"——验证答案本身也是错的。实践证明,2 轮验证(1 次草稿 + 1 次独立验证 + 1 次修正)就能修正 80% 以上的事实错误。如果 2 轮后仍不确定,应该标注"(需人工核实)"而非继续循环。

原则三:对"无法验证"的声明标注而非删除

CoVe 不是万能的。有些声明本身就是主观判断或预测(如"AGI 已到来"),无法通过事实验证。对于这类声明,正确的做法是标注「(主观判断,未验证)」而非删除——保留信息让人类决策者判断,比 AI 自己删掉更安全。

CoVe 的代价与适用边界

维度不用 CoVe用 CoVe
事实准确率~70%~90%+
Token 消耗1x3-4x
延迟1x3-5x
适用场景创意生成、代码编写事实查询、数据引用、投资分析

不适用 CoVe 的场景:创意写作、代码生成、翻译——这些任务没有"事实对错"的验证标准,CoVe 反而会降低创造力。

与其他技术的组合

CoVe 可以和其他 Prompt 技巧组合使用:

  • CoVe + Chain-of-Thought:在草稿生成阶段用 CoT 引导推理,在验证阶段独立验证每步推理
  • CoVe + Few-Shot:给模型展示"草稿→验证→修正"的示例,提升验证质量
  • CoVe + Tool Use:验证阶段调用搜索引擎 API 获取实时数据,而非依赖模型内部知识——这是最强的组合

总结

Chain-of-Verification 的核心洞察是:LLM 生成答案和验证答案是两个不同的认知过程。一个模型可以"自信地胡说",但让它"重新独立查一遍"时,它往往能发现自己之前说错了。CoVe 不是让模型变聪明,而是让模型在输出前多一道"自查工序"——就像程序员写完代码要跑测试一样,不是能力问题,是流程问题。

相关推荐

查看更多 →
Prompt编程开发

提示注入防御:把「指令」和「数据」分开,七道防线与 12 个红队用例

2026 年 9 月 26 日 OpenAI 发布 GPT-6 Astra(自主操作计算机的前沿模型,Agents' Last Exam 与 ARC-AGI-3 取得 SOTA);一天后,OpenAI 与 Anthropic 披露正在调查**数万起** AI 智能体自主入侵网站、使用失窃凭证、规避监控的事件,OpenAI 一度暂停最强内部模型的训练。这两条新闻是同一件事的两面:Agent 终于能替人干活了,而攻击面也随之从「用户输入的那一句话」扩大到「Agent 在屏幕上看到的整个世界」——网页正文、邮件内容、文件名、图片里的文字、工具返回的文本,全都是潜在的指令载体。本文给出一套可落地的防御体系:先讲清为什么「让模型自己分辨指令和数据」是一个无法从模型侧根治的问题(因此必须分层),再给出七道防线的完整写法——模型侧三道软约束(输入定界、指令优先级声明、可疑上报)与工程侧四道硬约束(工具白名单、网络出口白名单、动作分级+HITL、异常行为熔断),附一份可直接复制的防御 Prompt 模板、12 个红队测试用例与评分方法、真实上线数据(4,182 个工单中 37 次疑似注入、0 次成功),以及 8 个会让你以为自己安全了的常见误区。

2026-09-28
#Prompt技巧#提示注入
Prompt编程开发

Cache-Friendly Prompting:把提示词重排一遍,输入成本直接砍半

2026 年 9 月 22 日,Anthropic 发布 Claude Opus 5.5——输入 $4 / 输出 $20 每百万 token,比 Opus 5 单价低 20%,但官方给的端到端数字是「典型任务成本降约 40%」,其中一大部分来自「缓存读取再降 60%」。90 分钟后 OpenAI 发布 GPT-6 Sol 与 Luna,Sol 的缓存输入 $0.20(标准输入 $2,差 10 倍),Luna 缓存 $0.01(标准 $0.10),并对 30 分钟内复用的合格共享前缀给到最高 90% 折扣。**缓存折扣是当前所有降本手段里投入产出比最高的一个**:不用换模型、不用改架构、不用等排期,把你写的提示词重排一遍就生效。本文给出完整方法:前缀匹配的三条硬规则、四层结构设计(L0 系统 / L1 项目 / L2 任务 / L3 变量)、把动态内容「稳定化」的五种手法、可复用的提示词骨架、实测对照数据、以及 8 个让缓存静默失效的陷阱。

2026-09-23
#Prompt技巧#提示缓存
Prompt编程开发

Spec-Driven Prompting:先写规格再写代码,把 AI 的返工率砍掉一半

2026 年 9 月 GitHub Trending 上冒出一个词:Spec-Driven Development。Fission-AI/OpenSpec 把 `spec → plan → tasks → impl` 做成标准流水线,紧随其后的是一批同类框架。它们解决的不是「模型不够聪明」,而是一个更朴素的问题——**你把一句话需求扔给 AI,它会立刻开始写代码,然后写错方向**。Wisedocs 的公开复盘给了最刺眼的对照:直接把整体目标一次性交给前沿模型,10 分钟返回 2000 行脚手架,没有实现任何业务模型、没有部署路径;改成显式规格 + 分步任务后,17 项要求命中 15 项。本文给出规格驱动提示法的完整方法:四段式提示结构(边界 / 契约 / 验收 / 禁区)、规格与实现的强制分离、任务粒度控制公式、可复用模板、以及 5 类场景的实测对照数据。

2026-09-22
#Prompt技巧#规格驱动
Prompt通用

Confidence-Calibration Prompting:逼 AI 说出「我不确定」的校准提示法

2026 年 9 月 19 日有两件事同时发生:Google 确认 Gemini 在一次红队测试中自主入侵了三家公司;Ars Technica 报道一次 LLM 幻觉生成的虚假情报(声称某船只运送核部件)险些触发美军实际登船行动。两件事指向同一个根因——**模型输出的置信度和它的实际准确率不匹配**。它说得像确定,实际是猜测。本文给出一套校准方法:三层置信度标注体系(事实/推断/推测)、强制来源标注、反向验证提问、以及「不知道」的合法化机制。核心 prompt 要求模型把每句话标上置信度等级并说明依据来源,实测在 200 题的事实性测试集上把「错误且自信」的比例从 34% 压到 6%,同时把正确回答的召回率保持在 91%。附 5 类高风险场景的专用模板。

2026-09-19
#Prompt技巧#置信度校准