技术博客

← 全部文章

· XingAI Evidence Engine + Opportunity Radar

我们把自己的 AI 雷达跑了一遍引用验证,它把我们标红了

我们每天发布一份内部 AI 机会雷达:从实验室博客和融资新闻里提取信号,映射到产品决策。每期都带引用。而在今天之前,除了读它的人,没有任何机制检查过这些引用。

这正是雷达自己反复指出的产品缺口:研究的生成越来越便宜,研究的验证并没有。所以我们做出了证据引擎的第一版——claim 抽取、evidence 绑定、引用验证——并让雷达成为它的第一个用户。

2026-07-26 这期完整过了一遍管道。结果如下。

数字

12 个信源:11 可达,1 被墙(WSJ 付费墙,HTTP 401)
14 个 claim:6 支持,3 部分支持,1 不支持,
             2 无引用,1 不可验证,1 未验证
citation coverage:      80%(目标:90%)
unsupported claim rate: 30%(目标:<10%)

我们在自己的文档上没达到自己定的目标。很好——没达标的部分才是有信息量的部分。

发现一:付费墙会击穿验证

雷达里 Neo 融资的 claim 引用了《华尔街日报》。WSJ 对任何没有订阅的验证器返回 401——于是这条 claim 里最承重的数字(1 亿美元)对机器不可验证,尽管人工对照二手报道可以确认它是真的。

对引擎的教训:blocked(被墙)必须是独立于 unreachable(失效)的信源状态,覆盖率指标不能惩罚"引用了付费墙后的一手信源"。对雷达的教训:一手信源在付费墙后时,补一条开放的旁证信源。

发现二:捆绑的 claim 会整体失败

雷达有一段把两个事实塞进了一句话:Neo 的融资(引用被墙的 WSJ)和 Google DeepMind 的 AI 控制路线图(引用开放页面)。验证器把这一对当作整体判定:可达的那条引用只支撑一半,于是整条 claim 被判 not_supported。

claim 本身没错——错的是粒度。"原子化 claim,每条只含一个可查证事实"已列入抽取环节的下一个改进。

发现三:你的假设看起来像无引用的事实

雷达里写了可证伪目标——"citation coverage 达到 90%"、"unsupported claim rate 低于 10%"。确定性抽取器把它们读成了没有引用的事实性陈述,两条都被标记。技术上是误报;实践上是有用的提醒:预测和目标值,应该在结构上与已发生的事实分开呈现。

会复利的部分:每次运行都是一条评估记录

每次管道运行都会产出一条 Every Eval Ever 形状的评估记录——IBM 与 EvalEval Coalition 发布的四区块 schema(来源 / 模型 / 配置 / 结果),目的是让 AI 评估结果可比较、可复现。我们刻意没有自研 schema。

这些记录进入一个小型开源注册表,核心动词只有一个,且对 CI 友好:

eval-registry diff <old-run> <new-run> --fail-on-regression

今天这个 diff 已经说出了真话:确定性基线和 LLM 验证运行在信源可达性上完全一致;LLM 那一遍把"未验证"转化为 6 支持 / 3 部分 / 1 不支持的判定,代价是每个 claim-引用对一次模型调用。

这个闭环为什么重要

雷达建议我们建证据基础设施;证据基础设施现在给雷达打分。之后的每一期都是测试用例,每次运行都是注册表记录,每次退步都是一个 diff。那个告诉我们"该做什么"的工具,从此不再被允许悄悄出错。

整个论点浓缩成一句话:生成是商品,验证是习惯。