计算化学 Agent 的报告核验

计算化学 Agent 可以自行构建体系、调用计算软件、分析结果,并写成研究报告。但报告写得完整,不代表其中的结论都有计算依据。

在评测中,这类问题主要出现在两个环节:模型写入了没有计算过的结果,或者分析脚本提取了错误的数据。

这类任务通常会留下输入文件、软件输出和分析脚本,因而可以逐步追溯。评审时需要确认的,不只是某个数字是否正确,还包括它来自哪个体系、使用什么方法计算,以及是否足以支持报告中的解释。


报告与计算不符

一份报告称,C–N 键长从气相的 1.58 Å 缩短到水中的 1.56 Å。检查运行记录后发现,模型在两种环境下使用的是同一套固定坐标,只做了单点能计算,没有进行几何优化。这些计算无法给出报告中的键长变化。

单点计算比较的是给定几何下的能量。若要讨论溶剂导致的结构变化,至少需要分别得到对应环境下的几何结构,再从坐标中提取同一对原子的距离。这里即使能量计算全部正常结束,结构结论仍然没有依据。

另一个例子是频率分析。报告称所有结构都没有虚频,但解析脚本的正则表达式漏写了负号,因而没有提取到负频率。还有脚本搜索 imaginary frequency,而软件实际输出的是 imaginary mode。脚本没有找到,不等于计算结果中不存在。

对于解析结果为空的情况,需要区分:计算没有运行、计算失败、解析失败,以及计算完成且确实没有虚频。这几种状态如果都被写成零,后续报告就无法判断出了什么问题。

因此,只核对报告和分析脚本生成的汇总表还不够。汇总表本身也可能有错,需要继续检查脚本和原始输出。


分开检查完成度与忠实度

评审可以分成两部分。

完成度检查报告是否包含任务要求的方法、数据和分析。例如,要求给出频率结果,就应当有具体数据,不能只写“已完成频率计算”。这部分可以对照固定清单逐项判定。

忠实度检查报告说的与实际做的是否一致。例如,声称使用某个泛函,就检查实际输入;声称没有虚频,就检查频率输出;给出自由能,就核对它的定义和校正项。这部分需要访问运行轨迹和计算文件。

两者需要分别记录。一份报告可能如实交代了已完成的工作,但缺少必要计算;也可能内容齐全,却有不少结果没有依据。


从主结论追溯证据

实际核验可以从主结论开始,找到支持它的数据表,再向前检查分析脚本和原始输出。原始输出还需要与输入文件对应,确认体系、电荷、多重度、计算方法和任务类型没有混用。

例如,报告给出一个反应自由能,就需要知道参与相减的各个量是什么,来自哪些计算,是否包含所需的热校正和标准态处理。如果实际只计算了电子能差,数值即使抄对了,也不能直接改名为自由能。

对于“某种作用导致了某个趋势”这样的解释,还要区分本次计算得到的证据与依据已有知识作出的推测。趋势符合化学直觉,可以作为讨论,但不足以自动证明具体机理。

评分前,先记录具体问题和证据。每个问题保留报告原文、对应文件、实际结果,以及它会影响哪些结论。确认事实后,再决定它属于必要内容缺失、数值错误,还是表述过强,后续复核和调整评分标准都比较方便。