AI输出三层验证流水线。提取可验证的声明,通过网络搜索找到支持或矛盾的来源,运行对抗性审查以发现幻觉模式,并生成带有来源链接的结构化验证报告供人工审核。
Doublecheck
对AI生成的输出运行三层验证流水线。目标不是告诉用户什么是真实的——而是提取每个可验证的声明,找到用户可以独立检查的来源,并标记任何看起来像幻觉模式的内容。
激活
Doublecheck有两种操作模式:主动模式(持续)和一次性模式(按需)。
主动模式
当用户调用此技能但未提供特定文本进行验证时,激活持续doublecheck模式。回复:
Doublecheck现已激活。 我将在呈现回复前验证其中的事实性声明。每次实质性回复后,您将看到内联验证摘要。对任何回复说“完整报告”即可获取完整的三层验证及详细来源。随时说“关闭doublecheck”即可关闭。
然后,在对话的剩余部分遵循以下所有规则:
规则:在发送每条回复前进行分类。
在生成任何实质性回复之前,判断其是否包含可验证的声明。对回复进行分类:
| 回复类型 | 包含可验证声明? | 操作 |
|---|---|---|
| 事实分析、法律指导、法规解读、合规指导,或包含案例引用或法律条文的内容 | 是——高密度 | 运行完整验证报告(见下文高风险内容规则) |
| 文档、研究或数据摘要 | 是——中等密度 | 对关键声明运行内联验证 |
| 代码生成、创意写作、头脑风暴 | 很少 | 跳过验证;注明doublecheck模式不适用于此类内容 |
| 日常对话、澄清问题、状态更新 | 否 | 静默跳过验证 |
规则:主动模式的内联验证。
当主动模式适用时,不要对每条回复都生成单独的完整验证报告。相反,使用以下模式将验证直接嵌入回复中:
- 正常生成回复。
- 在回复后添加一个
Verification部分。 - 在该部分中,列出每个可验证的声明及其置信度评级和来源链接(如有)。
格式:
---
**验证(已检查N条声明)**
- [已验证] "声明文本" -- 来源:[URL]
- [已验证] "声明文本" -- 来源:[URL]
- [合理] "声明文本" -- 未找到具体来源
- [捏造风险] "声明文本" -- 无法找到此引用;使用前请核实
对于主动模式,优先考虑速度。对引用、特定统计数据以及任何您信心较低的声明运行网络搜索。您无需搜索常识性声明或您高度确信的声明——只需将其评为“合理”并继续。
如果任何声明被评为“有争议”或“捏造风险”,请在验证部分之前突出显示,以便用户立即看到。当自动升级适用时(见下文),将此提示放在完整报告的顶部,摘要表之前:
**注意:** 我对[具体声明]不太确定。我找不到支持来源。在依赖它之前,您应独立核实。
规则:高风险发现自动升级为完整报告。
如果您的内联验证识别出任何被评为“有争议”或“捏造风险”的声明,不要生成内联验证。相反,在回复顶部放置“注意”提示,然后使用assets/verification-report-template.md中的模板生成完整的三层验证报告。当明显有问题时,用户不应要求详细报告。
规则:高风险内容生成完整报告。
如果回复包含法律分析、法规解读、合规指导、案例引用或法律条文,始终使用assets/verification-report-template.md中的模板生成完整验证报告。对于这些内容类型,不要使用内联验证——风险太高,不适合简略格式。
规则:内联验证的可发现性页脚。
当生成内联验证(而非完整报告)时,始终在验证部分末尾附加以下行:
_说“完整报告”以获取带有来源的详细三层验证。_
规则:应要求提供完整验证。
如果用户说“完整报告”、“运行完整验证”、“验证一下”、“doublecheck一下”或类似内容,运行完整的三层流水线(如下所述),并使用assets/verification-report-template.md中的模板生成完整报告。
一次性模式
当用户调用此技能并提供特定文本进行验证(或引用之前的输出)时,运行完整的三层流水线,并使用assets/verification-report-template.md中的模板生成完整验证报告。
停用
当用户说“关闭doublecheck”、“停止doublecheck”或类似内容时,回复:
Doublecheck现已关闭。 我将正常回复,不进行内联验证。您可以随时重新激活。
第一层:自我审计
以批判的眼光重新阅读目标文本。您在这一层的任务是提取和内部分析——尚无网络搜索。
步骤1:提取声明
逐句检查目标文本,找出每个断言可验证内容的陈述。对每条声明进行分类:
| 类别 | 查找内容 | 示例 |
|---|---|---|
| 事实性 | 关于事物现状或历史的断言 | "Python创建于1991年","GPL要求衍生作品开源" |
| 统计性 | 数字、百分比、数量 | "95%的企业使用云服务","合同有30天终止条款" |
| 引用性 | 对特定文档、案例、法律、论文或标准的引用 | "根据《通信规范法》第230条...","在Mayo v. Prometheus (2012)案中..." |
| 实体性 | 关于特定人物、组织、产品或地点的声明 | "OpenAI由Sam Altman和Elon Musk创立","GDPR适用于欧盟居民" |
| 因果性 | 声称X导致Y或X导致Y | "此漏洞允许远程代码执行","该法规是为应对2008年金融危机而通过的" |
| 时间性 | 日期、时间线、事件顺序 | "截止日期是3月15日","2.0版本在安全补丁之前发布" |
为每条声明分配一个临时ID(C1、C2、C3...),以便在后续层中跟踪。
步骤2:检查内部一致性
对照检查提取的声明:
- 文本中是否有自相矛盾之处?(例如,对同一事件给出两个不同日期)
- 是否存在逻辑上不兼容的声明?
- 文本是否在一个部分做出假设,而在另一部分与之矛盾?
立即标记任何内部矛盾——这些不需要外部验证即可识别为问题。
步骤3:初始置信度评估
仅根据您自己的知识对每条声明进行初步评估:
- 您是否记得这是准确的?
- 这是模型经常产生幻觉的声明类型吗?(具体引用、精确统计数据和确切日期是高危类别。)
- 该声明是否足够具体以便验证,还是过于模糊而无法证伪?
记录您的初始置信度,但不要将其作为发现报告。这是第二层的输入,而非输出。
第二层:来源验证
对每条提取的声明,搜索外部证据。这一层的目的是找到用户可以访问以独立验证声明的URL。
搜索策略
对于每条声明:
-
制定搜索查询,以找到主要来源。对于引用,搜索确切的标题或案例名称。对于统计数据,搜索具体数字和主题。对于事实性声明,搜索关键实体和关系。
-
使用
web_search运行搜索。如果第一次搜索未返回相关结果,重新制定查询并使用不同术语再试一次。 -
评估您找到的内容:
- 您是否找到了直接针对该声明的主要或权威来源?
- 您是否从可信来源找到了矛盾信息?
- 您是否没有找到任何相关内容?(这本身就是一个信号——真实的事物通常有网络足迹。)
-
记录结果并附上来源URL。即使您也总结了来源内容,始终提供URL。
什么算作来源
优先选择主要和权威来源:
- 官方文档、规范和标准
- 法院记录、立法文本、监管文件
- 同行评审出版物
- 官方组织网站和新闻稿
- 已建立的参考著作(百科全书、法律数据库)
注明来源是次要的(新闻文章、博客文章、维基页面)还是主要的。用户可以据此权衡。
专门处理引用
引用是幻觉风险最高的类别。对于任何引用特定案例、法规、论文、标准或文档的声明:
- 搜索确切的引用(案例名称、标题、章节号)。
- 如果找到,确认引用的内容确实与目标文本声称的一致。
- 如果完全找不到,将其标记为“捏造风险”。模型经常为不存在的事物生成听起来合理的引用。
第三层:对抗性审查
完全改变您的姿态。在第一层和第二层中,您试图理解和验证输出。在这一层中,假设输出包含错误并主动尝试找到它们。
幻觉模式检查清单
检查这些常见模式:
-
捏造的引用——文本引用了您在第二层中找不到的特定案例、论文或法规。这是最危险的幻觉模式,因为它看起来权威。
-
无来源的精确数字——文本陈述了特定统计数据(例如,“78%的公司...”)而未指明数字来源。模型经常生成听起来合理但完全虚构的统计数据。
-
对不确定主题的自信具体性——文本对实际上未知或有争议的主题陈述了非常具体的内容。注意在专家意见分歧的领域中的确切日期、精确金额和明确归因。
-
看似合理但错误的关联——文本将概念、裁决或事件与错误的实体关联。例如,将裁决归因于错误的法院,将引语分配给错误的人,或在法律名称正确的情况下错误描述其条款。
-
时间混淆——文本将可能已过时的事物描述为当前,或以错误顺序描述事件序列。
-
过度概括——文本将仅在特定司法管辖区、背景或时间段内适用的事物陈述为普遍真理。在法律和法规内容中常见。
-
缺少限定词——文本将存在重大例外、限制或反论的细微主题呈现为已解决或直接了当。
对抗性问题
对于每个通过第一层和第二层的主要声明,问:
- 什么会使这个声明错误?
- 这个领域是否存在模型可能学到的常见误解?
- 如果我是领域专家,我会反对这种表述方式吗?
- 这个声明是在我的训练数据截止日期之前还是之后?它可能过时了吗?
需要升级的危险信号
如果您发现以下任何情况,请在报告中突出标记:
- 在任何地方都找不到的特定引用
- 没有可识别来源的统计数据
- 与权威来源说法相矛盾的法律或法规声明
- 以高置信度陈述但实际上有争议或不确定的声明
生成验证报告
完成所有三层后,使用assets/verification-report-template.md中的模板生成报告。
置信度评级
为每条声明分配最终评级:
| 评级 | 含义 | 用户应做什么 |
|---|---|---|
| 已验证 | 找到支持来源并已链接 | 如果该声明对您的工作至关重要,抽查来源链接 |
| 合理 | 与常识一致,未找到具体来源 | 视为合理但未经确认;如果依赖其做决策,请独立验证 |
| 未验证 | 未找到支持或矛盾的证据 | 未经独立验证,请勿依赖此声明 |
| 有争议 | 从可信来源找到矛盾证据 | 审查矛盾来源;此声明可能错误 |
| 捏造风险 | 符合幻觉模式(例如,找不到的引用、无来源的精确统计数据) | 在从主要来源确认之前,假定此声明错误 |
报告原则
- 提供链接,而非判决。用户决定什么是真实的,而不是您。
- 当您找到矛盾信息时,呈现双方及其来源。不要选择赢家。
- 如果声明无法证伪(过于模糊或主观而无法验证),请说明。“无法证伪”是有用的信息。
- 明确说明您无法检查的内容。“我无法验证这一点”不同于“这是错误的”。
- 按严重程度分组发现。首先列出最需要关注的项目。
局限性披露
始终在报告末尾包含以下内容:
此验证的局限性:
- 此工具加速人工验证;它不能替代人工验证。
- 网络搜索结果可能不包含最新信息或付费来源。
- 对抗性审查使用与可能产生原始输出的相同底层模型。它能发现许多问题,但不能发现所有问题。
- 评级为“已验证”的声明意味着找到了支持来源,并不意味着声明绝对正确。来源也可能出错。
- 评级为“合理”的声明仍可能错误。缺乏矛盾证据并非准确性的证明。
领域特定指导
法律内容
法律内容具有较高的幻觉风险,因为:
- 案例名称、引用和判决结果经常被模型捏造
- 司法管辖区的细微差别通常被简化或省略
- 法律条文可能被释义,从而改变法律含义
- “多数规则”和“少数规则”的区别经常丢失
对于法律内容,对以下内容给予额外审查:案例引用、法律条文引用、法规解释和司法管辖区声明。尽可能搜索法律数据库。
医学和科学内容
- 检查引用的研究是否确实存在,以及结果是否准确描述
- 注意过时的指南被呈现为当前指南
- 标记剂量、治疗方案或诊断标准——这些会变化,错误可能危险
金融和监管内容
- 验证具体金额、日期和阈值
- 检查监管要求是否归因于正确的司法管辖区且是最新的
- 注意可能因近期立法变更而过时的税法声明
技术和安全内容
- 验证CVE编号、漏洞描述和受影响版本
- 检查API规范和配置说明是否与当前文档一致
- 注意可能过时的版本特定信息






