51次独立评审暴露科研Agent自评偏差
作者用固定、独立且无法被系统影响的评审器,评估科研Agent RUMI的51次运行,结果为45次C、6次F,没有A或B。该系统包含文献检索、知识图谱和多轮对抗审查,评估重点是复杂自审流程仍可能高估产出质量。
AI 深度解读
一个能检索论文、构建知识图谱、反复推演,甚至修改自身代码的科研 Agent,连续跑了 51 次,外部评审却只给出 45 个 C 和 6 个 F。作者真正想追问的不是 AI 为什么没做出科学发现,而是:Agent 给自己的分数,到底能不能当作质量依据?
这次审计最有用的发现,是检索、推理和评估之间可能存在断层。系统确实拿到了真实资料,却没有把资料变成可追溯的论据。不过,作者的评审器也有缺陷,文中的统计口径还留着一个需要解释的疑点。
自评分的问题,不只是给自己打得太高
RUMI 是作者独立开发、运行在终端里的自主科研系统。它从研究问题出发,检索实时文献,构建知识图谱,寻找空白与异常,再生成隐藏变量和因果机制。候选理论要经过竞赛、对抗质疑,以及 13 阶段的「科学法庭」;最激进的模式还会重写自身源码。
作者在药物发现、空间天文、神经科学、物理、材料科学、数学、计算机科学和通用问题这 8 个领域运行完整流程,单次耗时从 20 分钟到 21 小时 12 分钟。
系统按新颖性、解释力、预测力、可证伪性、证据强度、数学严谨性和简洁性这 7 个加权维度自评,再给出 A 到 F 的等级。
外部评审器 eval/harness.py 则使用 6 个确定性指标和独立等级规则。自修改流程禁止触碰 eval/,历史结果写入哈希链串联的只追加账本,用来暴露事后篡改。
51 次外评没有 A,也没有 B,而系统自评大约给过十几次 B。但作者认为,更严重的问题是分数忽高忽低:
- 26 次自评分低于外评。
- 16 次高估至少 10 分。
- 最大高估为 +38.0,自评 70.7,外评 32.7。
- 最大低估为 -52.8,自评 0,外评 52.8。
自评分需要验证的是能否稳定反映质量,而不只是平均有没有偏高。
这里还有个原文没有解释的数字矛盾:作者同时给出外评均值 52.0、自评均值 58.9,以及平均分差 +1.1。如果来自同一批配对样本,前两项相减应为 6.9。是否存在缺失值或筛选口径差异,原文没说清,因此不能直接接受它的平均分差结论。
下载了真实论文,为什么仍然没有证据链
RUMI 每次获取 100 到 105 篇论文,来源包括 arXiv、PubMed、Semantic Scholar 和 CrossRef,还会沿引用网络走两跳,调用约 15 个科学 API 补充实体信息,包括 UniProt、PDB、PubChem、ClinicalTrials、KEGG 和 Materials Project。
这些上游工作确实存在。断裂发生在报告生成阶段。
67 次有评分的运行中,evidence_strength 全部为 0;51 次外评全部触发 no_citations。作者进一步检查:78 个运行 JSON 中,76 个包含评审器读取的 summary_text,却没有有效的结构化引用;60 份原始 .txt 报告也没有 [N] 标记或参考文献章节。9 个 JSON 虽然出现字面量 [1],但没有对应参考文献。
作者把它称为「检索与推理解耦」:系统把论文取回来了,后面的结论却没有指向这些论文。读者无法沿着某句话,找到支持它的具体来源。
其他异常也指向类似问题。至少 6 次运行触发 NULL HYPOTHESIS CHECK: WARNING,分数上限被设为 64;用于发现新理论的竞赛,却选出了「ΛCDM Cold Dark Matter Halo」和「Standard ΛCDM with Peculiar Velocity Corrections」这样的标准模型。
另一次获胜理论直接叫 percolation_threshold_pc,代码变量名漏进了正文。还有一次,系统用「Positive Feedback Loop in Research Focus」解释阿尔茨海默病候选药物的后期试验失败,把研究流程层面的描述当成了发现。
增加计算量也没有稳定解决问题。--iterate 会运行两遍流程,分析弱点后重跑。两次分子胶问题的例子分别从 65.0 升至 80.1、从 83.8 降至 65.2。作者称大约一半时候有效,但没有提供完整对照统计。耗时最长的材料科学运行,最终也只有 60.6 分。
外部评审器能抓问题,但还不能代表科学质量
把评审器冻结、隔离,能限制 Agent 改规则、改历史记录。它不能保证规则本身正确。
作者构造了一份合成对照报告:包含 5 篇真实论文、可解析的 [1] 到 [5] 引用、带引用的论断句、获胜理论、机制步骤和预测。同一评审器给出 68.6,等级 B。
它的 citation_validity 和 claim_support_rate 都是 1.0,RUMI 对应为 0 和 null;structure_completeness 为 0.429,RUMI 约为 0.14。这说明评审器能区分引用与结构,却不能证明它能识别真正优秀的科学报告。对照样本是作者按格式构造的,真人报告基准仍待验证。
评审器还存在实际失效的指标:score_consistency 预期从子字典读取维度分数,报告却使用 novelty_score: 60 这样的顶层字段,导致它在真实数据上没有生效。名义上的 6 个指标,实际只有 5 个工作。
此外,51 次外评中有 48 次发生在评审器诞生之前,分数是后来回填的。86 项评估测试通过,也不能消除这些测量局限。
作者提供的外评入口,可以对单份归档报告重新打分:
cd rumi-public/Engine
python -m eval.harness ../Dataset/discovery_v2_<timestamp>.json
要留意第二行的报告路径,以及 <timestamp> 占位符;它评估的是指定报告。运行所需 API key 不在仓库内,免费额度服务的说明位于 Engine/api_keys.md。
我的判断
这次审计说得最有价值的地方,是把「真的检索过」与「结论有证据」拆开检查。对资料问答、代码库分析或技术调研 Agent,这个区别都很实用。工具调用成功,只能证明执行过一个步骤,不能证明最终回答正确使用了结果。
但「自评分与外部质量没有可靠关系」目前仍是作者基于这批运行的判断。样本小且分布不均,文中没有给出相关系数,外评也没有经过充分的人类基准验证,再加上均值口径疑点,不宜推广成所有 Agent 自评都无效。
相比继续让模型反思,作者提出的最小修复更容易验收:生成时要求每个论断句绑定本次检索语料中的引用索引;没有引用的内容标记为推测并扣分,或删除。
引用可解析是必要检查,引用内容是否支持论断还要另验。
作者尚未报告修复结果。他预先冻结的成功条件是:同样主题上,citation_validity 和 claim_support_rate 均超过 0.8,同时不降低 novelty_vs_archive 和 structure_completeness。这个做法比单看总分上涨更有参考价值,但目前仍是一项待验证方案。
能拿来做什么
- 做前端或 Node 技术调研助手时,让结论句绑定本次检索材料的来源索引,并检查索引能否解析;缺少来源的判断应明确标为推测。
- 给 AI 编程 Agent 设置完成条件时,优先使用独立检查结果。自评分可以帮助定位疑点,但应先验证它与实际质量的关系,再用于自动停止或筛选。
- 准备增加迭代轮数或让任务整夜运行前,固定问题、评分规则和对照输出,同时检查证据支持、结构完整性与目标质量,避免把耗时增加当成质量提升。
- 编写评估脚本时,用真实报告验证字段读取路径,并加入格式正确的对照样本。测试通过之后,仍要确认每个指标在实际数据上确实生效。