把科学规则变成可调用检查:R2T 在 SciCode 修复中把 26/30 提升到 29/30,但增益集中在少数任务
核心概要
Rules to Tools(R2T)把公开科学要求(边界条件、方程、输出文件等)打包成可调用的可执行检查工具,在匹配的 SciCode 修复对比中让文本组与工具组共享书面规则、起始程序、模型与预算,结果两个任务 ID 队列的完整修复为文本 26/30、工具 29/30,八 ID 队列为 13/16 对 15/16,而十二任务共享定义队列打平在 13/24,说明增益依任务而定,同时工具组在部分队列中报告输出更少、公共 CPU 使用更高。
深度剖析
R2T 把公开科学要求转成对“当前程序”的可执行测量:诊断由公开关系、探针输入、容差与报告规则构成,工具组可调用预制实现,文本组用普通 Python 自行实现同一过程,最终由独立评测器对成品打分。 此前工作已确立反馈驱动修订(Self-Refine、Reflexion、CRITIC)与可执行规格(CodeMetaAgent、SecTDD、CodeSpec)等模式,R2T 的差别在于把公开数值关系做成对“演化中程序”的检查,并在匹配修复中固定书面标准、起始程序、模型与预算,只改变是否提供预制实现。 论文给出诊断的形式化定义、规格等价性说明,以及表 1 中四条公开要求到测量的映射(如 SciCode 12 的 Numerov 递推、SciCode 22 的旋转场重建、SciCode 73 的倒格子几何、PDE 流的边界与方程残差);检查由研究团队编写或审阅,八 ID 队列做了静态预检与起始模块执行。
在匹配的 SciCode 修复对比中,提供预制检查带来任务相关的完整修复增益:两个任务 ID 队列合计文本 26/30、工具 29/30;八 ID 队列 13/16 对 15/16,七 ID 扩展 13/14 对 14/14。 增益并非普遍:八 ID 队列中两个任务偏向工具、一个偏向文本、五个打平,去掉任务 77 后其余七个任务差异为零;十二任务共享定义队列两组打平在 13/24。 八 ID 队列的任务宏平均差为 12.5 个百分点,任务簇自助法 95% 区间为 [-12.5, 43.75] 个百分点;七 ID 扩展差为 7.14 个百分点,区间下端点为零;非平局任务效应的精确双侧符号检验在八 ID(2:1)、七 ID(1:0)与合并 3:1 模式下给出相应 p 值。每个任务每组两条续跑,共 32 条分配续跑全部完成并获最终评分。
增益并不要求初始检查先报出违规:任务 17 有初始违规且偏向工具,任务 77 与任务 11 的初始检查报告无违规却仍偏向工具,任务 37 无初始违规却偏向文本。 这补充了“检查先发现问题再修复”的直觉图景:任务 77 的起始程序通过全部五项公开检查,两条成功的工具轨迹随后用普通 Python 修改周期包裹与压力计算;开发暴露的任务 22 起始四项旋转检查均无违规,工具组仍修复 2/2 而文本组 0/2。 论文报告全部十六条留出工具轨迹都调用了检查器,共 34 次调用;初始报告标记了任务 17 与 48;任务 77 的初始检查报告无违规,任务 11 的两项初始检查同样无违规。
访问形式与成本被分开测量:源码经普通 Python 交付与专用命令在八 ID 上同为 15/16,但任务级结果不同;匹配的 PDE 对比中详细文本 23/24、检查 24/24,检查的报告输出低 31.2%。 论文把“完整修复”“原生步骤进度”“资源成本”作为不同端点分别报告,并指出八 ID 队列中两组原生步骤完成率同为 95.83%,说明完整修复的差异并不伴随平均子任务完成率的变化。 八 ID 队列文本到工具的总模型 token 为 7.25M 对 7.88M、输出 token 为 767,871 对 819,981、公共 CPU 为 456.90 秒对 633.15 秒;两队列合计报告输出至少为文本 1,327,295 对工具 1,262,059,工具至少低 4.9%,公共 CPU 从 779.43 秒升至 1,459.88 秒;开发暴露队列节省 22.9% 报告输出,PDE 为 1,062,099 对 730,723。
启示与展望
这项工作面向科学计算中“修订已有程序”的场景:智能体已拿到完整问题陈述、书面标准与普通代码执行能力,额外获得的是对当前程序的可执行测量。适用对象是构建科学编码智能体评测与工具链的研究者与工程团队,可用于 SciCode 类数值模块、PDE 求解器、分子模拟工作流与科学软件仓库等基准。论文把检查限定在可测量的公开要求上,如边界值、物理关系、方程与必需输出文件,并强调最终成绩由独立评测器给出、诊断观测本身不计分。下一步可探索的是:在更多任务族与更多起始程序上重复这种匹配设计,把检查作者成本纳入记账,并在不同交付形式(专用命令、源码经普通 Python、初始报告)之间做更多重复以区分任务级差异。
读者仍会关注:八 ID 队列的 95% 区间跨零且下端点为零,七 ID 扩展同样下端点为零,因此任务级增益的稳健性依赖更多重复;十二任务共享定义队列打平在 13/24,说明增益并不在所有队列出现。任务 77 与任务 11 的增益发生在初始检查报告无违规的情况下,检查器覆盖范围与智能体自行调查之间的关系仍是开放问题。成本方面,部分请求缺少返回用量(如七 ID 文本请求、PDE 检查请求、流队列两次文本请求),论文以发出上限给出下界,因此输出节省的精确幅度仍待确认;公共 CPU 在多个队列上升,而流队列在 25 响应敏感性下输出成本排序未定。此外,检查作者时间未记录,历史 MDArena 与 AInstein 面板存在触发冲突与未解析日志,这些都属于范围与记账边界而非结论本身。
