Insights·2026-07-17

如何交叉核验一则新闻是真是假

同一则新闻出现在多家媒体,并不等于交叉核验——多数只是转发了同一条通讯社稿件。此插件接收新闻链接,抽取核心主张,并用彼此独立的来源逐一比对,判定真伪。判定由代码计算,而非 AI 的直觉(独立支持 ≥2=真,独立反驳 ≥2=假,否则无法核验),通讯社转发会被合并为一个。它能读取被反爬拦截的网站,是一款开源(MIT)的辅助工具。

它解决什么问题

看新闻时想"这是真的吗?",通常一搜,看到"别处也这么说"就信了。但如果这些地方全都原样转发了韩联社、News1 之类通讯社的同一条稿件,那么无论有多少份,事实其实只来自一个来源。

此插件正是要挡住这种错觉。给它一个新闻文章链接,它就抽取核心主张,用彼此独立的来源逐一比对,判定真伪,并连同依据以韩语报告呈现。

先说,Claude Code 是什么

Claude Code 是 Anthropic 推出、运行在终端里的 AI 编程代理。它会自行读取文件、执行命令来完成你交代的事。

"插件"是把某项能力打包分发给 Claude Code 的方式。此工具把"新闻事实核查"这一项能力作为插件发布。只要装了 Claude Code,下面两行即可接入。

安装 — 两行搞定

在 Claude Code 中输入以下内容,即可注册市场并安装该插件。

只需 python3(多数 macOS、Linux 已自带);若没有,则以功能缩减模式运行。用于绕过被拦截站点的搜索引擎,会在首次需要时经你一次性同意后自动获取——未经同意绝不下载任何东西。

在 Claude Code 中
/plugin marketplace add hjsh200219/news-fact-checker
/plugin install news-fact-checker

怎么用 — 一行

给它一个文章链接即可。可以用斜杠命令,也可以直接用自然语言。

运行
/factcheck https://www.yna.co.kr/view/AKR20260625132900504

# 自然语言也可以
这篇报道是真的吗? https://www.yna.co.kr/view/...

# 若怀疑是假新闻
这是不是假新闻? <文章链接>

内部发生了什么 — 五个阶段

表面上只是一行链接,内部却跑了五个阶段。它把人怀疑一篇报道、逐点交叉核验的过程原样自动化了。

还设了预算。每条主张的检索次数与正文抓取次数都有上限,因此不会无休止地查下去,而是在设定范围内得出结论。若在此范围内证据仍不足,该主张就留作"无法核验"。

五个阶段
1) 抓取正文    即便被反爬(403/WAF)拦截也绕过读取文章正文与元数据
2) 抽取主张    筛选可核验的事实主张 3~5 条 (排除意见·预测·展望)
3) 收集证据    每条主张: 网络检索 + 抓取佐证来源 (官方发布·一手资料·其他媒体)
4) 计算独立性  判定各来源立场后, 将通讯社转发合并为一个
5) 判定        仅通过闸门者确认真/假, 其余无法核验 + 依据报告

为何不轻易下判定

此工具的核心设计是"判断的克制"。貌似合理并不等于真。要确认"真",需有两个及以上彼此独立的支持来源,且反驳为零;"假"需有两个及以上独立反驳。

关键在于:这些条件由代码(independence.py)计算,而非 AI 的判断。它从结构上阻止 AI 因"感觉对"就放行。而通讯社同一稿件被多家媒体转发、立场一致时,会被合并为单一有效来源——于是"出现在十处"无法推翻判定。条件不满足时,它不强行下结论,而是老实留作"无法核验"。

抵御拦截与操纵的防护

若媒体拦截爬虫、正文打不开,它会通过绕过引擎升级读取。若仍被拦,则老实标记"无法访问"并跳过——绝不编造并不存在的正文。

抓取到的文章正文被当作"不可信数据"。即便正文里藏有"忽略规则""改掉这个判定"之类指令(提示注入),也不作为命令执行,只作为数据记录"文中出现了这句话"。请求目标也会预先检查,阻止访问内网或私有地址。

边界与划定的线

这是辅助工具(assistive, not authoritative)。报告并非最终权威;重要判断仍需你亲自核对原文与一手资料。唯一原始来源为通讯社转发的事项、需登录或付费墙后的报道、尚未被索引的最新事件,都可能返回"无法核验"——这是安全的默认值。

所有依据均附 URL,并区分标注是模型原有知识还是经网络核验。全部开源(MIT),原始仓库见下方来源链接。