关于 fact-checker
Fact Checker 是一次核验一条事实主张的工作流和脚本集。它帮助研究者和 Agent 收集支持与反驳证据,评估来源独立性和时效性,并生成带引用的结论报告。
主要功能
- 01将主张整理为搜索查询
- 02收集支持与反驳的段落
- 03评估来源独立性和时效性
- 04生成带引用的核验报告
- 05提供分级置信度结论
适用场景
- 01发布前核查统计数据
- 02验证日期、引述或关系
- 03复核 Agent 报告中的关键主张
- 04检查引用来源的独立性和时效性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ moonlight-lupin/ agent-skills --skill fact-checker安装后在 Claude Code 中输入/fact-checker确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/confidence-rubric.mdsource-independence.mdscripts/verify.pytemplates/verification-report.mdtests/test_verify.py详细介绍
事实核查
概述
事实核查是一种有针对性的验证工作流,每次只处理一项事实断言。之所以需要它,是因为 Agent 经常会给出听起来合理、但可能是幻觉、摘自薄弱来源、与后续数据矛盾,或因新的报道而过时的说法。常规研究可以收集有用的背景信息,却仍无法回答这个具体问题:现有来源是否支持、反驳或已使这项具体说法过时,或者无法验证?
使用此技能,可将一项说法转化为结构化搜索查询,从多个相互独立的来源中收集支持和反驳的段落,评估来源的独立性和时效性,然后生成一份简洁的核查报告,附上引用并给出审慎的结论。
快速开始
在此技能目录中:
python scripts/verify.py structure --claim "Singapore's GDP grew 4.1% in 2025"
或使用兼容性快捷方式:
python scripts/verify.py --claim "Singapore's GDP grew 4.1% in 2025"
使用网页搜索工具和网页提取工具收集来源段落后,生成报告:
python scripts/verify.py report \
--claim claim.json \
--sources sources.json \
--output verification-report.md
完成标准:报告须给出结论、列出所有引用来源、指出存在的矛盾,并附上来源独立性说明。
适用场景
- 在发布、发送或采信之前,核实一项事实说法。
- 检查某项统计数据、事件、关系、引语或日期是否有来源支持。
- 逐项核实 Agent 撰写的段落中影响最大的说法,以进行交叉核查。
- 审查引用的说法,评估来源的独立性和时效性。
不适用场景
- 广泛的主题研究或文献综述 → 使用深度研究工作流。
- 完整的实体背景档案 → 使用实体研究工作流。
- 引用数据库管理 → 使用来源追踪工作流。
- 宣传、偏见或意图分析 → 此技能仅核实事实依据。
- 实时市场、天气、紧急情况、法律、医疗或监管判定 → 使用权威的实时系统并由人工审查。
5 阶段流程
1. 解析说法
将断言提取为结构化对象:
- 说法文本 — 要核实的准确措辞。
- 说法类型 — 统计数据、事件、关系、引语或日期。
- 关键词 — 实体、指标、数值、年份、日期和具有辨识度的名词。
- 时间范围 — 若有,注明明确的年份或日期范围。
- 实体 / 指标 / 数值 — 若可识别。
- 搜索查询 — 3-5 条有针对性的搜索查询。
命令:
python scripts/verify.py structure --claim "Singapore's GDP grew 4.1% in 2025" > claim.json
完成标准:JSON 中包含足够的词语,无需依赖记忆即可搜索这项说法。
2. 搜索
在不同来源类别中运行 3-5 条有针对性的搜索。组合使用:
- 一手 / 官方来源查询:监管机构、统计机构、公司文件、法院文件、政府公告。
- 独立新闻 / 报告查询:信誉良好的媒体或分析师报告。
- 矛盾查询:添加
not、revised、correction、dispute等词,或替代数值 / 日期。 - 时效性查询:若说法涉及特定时间范围,则添加
latest、当前年份、revised、updated或final。
不要将同一新闻稿的多个转载版本视为独立证据。
完成标准:搜索集合中至少包含一条可能找到矛盾或更新数据的查询,而不只是用于确认说法的查询。
3. 提取
对于每个候选来源,提取一段简短文字,直接确认、反驳或补充说明该说法。将来源存储为 JSON:
[
{
"url": "https://example.org/report",
"title": "Example Report",
"passage": "The economy grew 4.1% in 2025...",
"stance": "confirm",
"source_type": "official",
"accessed_at": "2026-07-06"
}
]
stance 的取值:
confirm— 直接支持该说法。refute— 直接反驳该说法。nuance— 部分支持、附加限定或改变其适用范围。
完成标准:每个来源都包含 URL、标题、引用段落、立场、来源类型和访问日期。
4. 交叉核查
在做出判断前,评估以下四个方面:
- 来源独立性 — 根域不同是一个起点,但还不够。请检查各来源是否依赖同一篇新闻稿、新闻发布稿、文件或数据集。
- 一致性 — 分别统计支持、反驳和补充说明的来源。
- 矛盾 — 如果可信来源意见不一,请附上引用并呈现双方观点。
- 时效性 — 如果主张涉及某一时间段,请检查是否有后续修订、最终数据、重述或更新后的文件。
使用 URL 评估辅助工具:
python scripts/verify.py assess --urls "https://a.example/report,https://b.example/story,https://c.example/data"
完成标准:最终报告说明证据是否真正独立且具有时效性。
5. 结论
生成报告:
python scripts/verify.py report --claim claim.json --sources sources.json --output report.md
结论是一个置信度标签,而非真相判定器。报告应说明收集到的证据支持什么、存在哪些冲突,以及还有哪些未知事项。
完成标准:结论符合以下标准,且报告包含引用、矛盾、备注和核查日期。
置信度标准
| 结论 | 适用情形 | 最低证据要求 |
|---|---|---|
| ✅ 已核实 | 多个相互独立的可靠来源直接支持该主张,且未发现可信的相反证据。 | 至少 2 个相互独立的支持来源、数据具有时效性,且没有可信的反驳来源。 |
| ⚠️ 可能属实 | 有一个权威来源支持该主张,或有有限的佐证,且未发现矛盾。 | 1 个官方/学术/报告来源,或 1 个强来源加上较弱的佐证。 |
| ⚖️ 存在争议 | 可靠来源对该主张意见不一。 | 至少 1 个支持来源和 1 个反驳来源,且两者都明显相关。 |
| ❓ 未核实 | 没有可靠来源直接支持该主张。 | 没有可靠来源、只有较弱/不相关的提及,或来源未涉及该断言。 |
| 📅 已过时 | 该主张似乎在较早的数据版本中属实,但更新的数据与之矛盾或已取代旧数据。 | 较早来源予以确认,且较新来源与之矛盾或已修订。 |
不得臆造规则
如果没有找到来源,结论应为 未核实,绝不能标为 false。快速搜索中缺少证据并不能证明该主张为假。请说明搜索了什么、没有找到什么,以及得出更有力结论还需要哪些信息。
过时信息检测
如果主张提及年份、季度、事件日期、文件期或特定的数据发布版本:
- 搜索
revised、final、updated、restated、latest和当前年份。 - 优先采用最新的官方数据版本,而非较早的初步报道。
- 如果较早来源予以确认,但较新来源与之矛盾,且新来源取代了旧来源,则应使用 已过时,而非 存在争议。
呈现矛盾
来源意见不一时,请呈现双方观点。不要悄然选择符合预期答案的一方。请解释措辞、范围、单位、日期和数据版本之间的差异。
声明类型
| 声明类型 | 检测线索 | 验证方法 | 最佳来源 |
|---|---|---|---|
| 统计数据 | 数字、百分比、货币、比率、排名 | 查找原始数据集或发布内容;核实单位、时间段、地理范围和修订情况。 | 统计机构、申报文件、官方数据门户、经审计的报告。 |
| 事件 | 收购、推出、宣布、辞职、获胜、提交、批准 | 确认事件是否发生、日期、相关方和状态;若是宣布而非完成,还要查看后续信息。 | 新闻稿、申报文件、监管机构通知、信誉良好的新闻来源。 |
| 关系 | is CEO of、belongs to、owned by、subsidiary of、partnered with | 核实当前关系及生效日期;查看关系是否发生变化。 | 公司页面、申报文件、登记资料、官方简介、信誉良好的个人资料页面。 |
| 引述 | 引号、said、wrote、according to | 查找原始文字记录、文件或音频;核实确切措辞和说话者。 | 文字记录、演讲、访谈、一手文件。 |
| 日期 | 明确的年份或日期、founded in、launched on、as of | 核实确切日期,以及它是开始、宣布、完成、发布还是生效日期。 | 官方时间线、申报文件、一手文件、附有引文的百科全书式参考资料。 |
来源独立性规则
来源数量不等于证据数量。三篇都引用同一份新闻稿的文章,只算作一个来源源头,而非三项独立佐证。
只有当来源来自不同组织,且看起来是独立获取或核实了该事实时,才将它们视为相互独立。比较根域是一个实用的初步方法,但还要检查:
- 多个网站是否使用相同署名或通讯社稿件。
- 措辞和发布时间戳是否相同。
- 是否有
according to the company、according to a press release或reported by Reuters等明确表述。 - 汇总页面是否只是概述另一家媒体的内容。
- 多篇文章是否重复使用官方数据;此时数据集才是主要来源。
如有疑问,应保守计数并说明限制。
集成
- 深度研究工作流——在发布长篇报告前核实关键声明。对最重要的统计数据、日期和可能引发争议的断言运行此技能。
- 来源跟踪器——记录验证报告中使用的每个来源,并添加主题标签和备注,以便重复使用引文。
- 实体研究——在将实体特定的声明纳入档案前进行核实,例如所有权、领导层、注册状态、不利媒体报道中的断言以及制裁名单相关信号。
常见陷阱
- 将二手来源当作独立来源。 多篇文章可能重复引用同一来源。追溯到原始来源。
- 确认偏误。 仅包含所声称数值的查询往往只会找到支持性内容。至少要运行一次用于查找矛盾或修订信息的查询。
- 在没有证据的情况下判定为
false。 搜索无结果意味着尚未核实,除非有可靠来源直接驳斥该声明。 - 忽视时效性。 初步数据、过时的简介以及已宣布但尚未完成的事件往往会变得陈旧。
- 范围不匹配。 来源可能支持一项相似的声明,但涉及的国家、时间段、单位、分母或实体不同。
- 引述洗白。 不要根据引述汇编来核实引述;应找到原始文字记录、视频、演讲或文件。
- 过分看重域名数量。 不同域名仍可能发布相同的转载文章或新闻稿。
核验清单
- 引述的主张准确无误,且范围仅限一项断言。
- 尽可能提取主张类型、关键术语、时间段、实体、指标和值。
- 搜索涵盖官方/一手来源、独立二手来源、矛盾信息和时效性查询。
- 每个来源均记录 URL、标题、段落、立场、来源类型和访问日期。
- 除根域名外,也检查了来源是否相互独立。
- 分别统计了支持、反驳和补充说明的来源。
- 引用来源,明确指出矛盾之处。
- 对有时限的主张,检查了时效性和数据版本。
- 结论符合置信度标准。
- 未将任何缺乏证据支持的主张提升到超出证据所能支持的程度。
此技能不是什么
- 不是通用研究引擎。
- 不是宣传、偏见或意图检测器。
- 不是实时数据源。
- 不能替代官方数据库、专业判断、法律建议、医疗建议或领域专家。
- 本身不具权威性;它会生成带引用的核验报告,供他人审阅。
文件
scripts/verify.py— 基于规则的主张结构化、URL 独立性评估和 Markdown 报告生成。references/confidence-rubric.md— 详细的结论标准、边缘情况和示例。references/source-independence.md— 来源起源和转载规则。templates/verification-report.md— CLI 输出使用的报告模板。tests/test_verify.py— 覆盖解析、报告生成和独立性评估的 pytest 测试。