Vercy · 可复现研究

工具没有弥合差距,反而把它拉大了。

目的
本系列的每项研究都关闭了工具,并把这一点列为主要局限:一旦有了 shell 和数据文件,错误中的算术成分会变化,各表示形式之间的平衡也可能移动。本研究就是对此的检验。
设计
已发布的语义落地基准原样重跑,只改一处:五张表从提示词中移出,作为 CSV 文件放到磁盘,并为每次调用提供一个全新的工作目录,agent 获得 Bash、Read、Glob 与 Grep。六种上下文条件、40 个题项、基准答案与评分器全部照旧。共 240 次调用,每题一次重复,每次中位耗时 55 秒。
主要结果
工具只在含义已知的地方消除了算术错误。四种带完整定义的条件升到 97.1% 至 100%。两种没有定义的条件没有变化:仅有表结构从 26.5% 变成 23.5%,不完整文档从 29.4% 变成 32.4%。
不舒服的部分
在缺少定义的地方,工具让 agent 错得更有底气。给出的答案恰好等于已废止规则所产生数字的比例,在仅有表结构时从 16.2% 升到 29.4%,在不完整文档时从 35.3% 升到 47.1%;而恰当弃答从 83.3% 掉到 50.0% 与 66.7%。
结论
这一局限得到了解决,但方向与通常的预期相反。工具不能替代知道这些词是什么意思;它抬高了不知道的代价。有定义与没有定义之间的差距,从没有工具时的 50 个百分点扩大到有工具时的 74 个。
97%版本化记录,开启工具
24%仅有表结构,开启工具
29%仅有表结构,按已废止规则作答

改了什么,以及故意没改什么

改了:五张表从提示词移到磁盘,每次调用给 agent 一个全新工作目录里的 shell。真实部署就是这个样子,这也正是本研究的目的。没改:六种条件、40 个题项、基准答案、输出契约与评分器都取自已发布的研究,而上下文仍然通过提示词提供,因为上下文才是被检验的处理。把它也放到文件里,就会同时改动两件事。

准确率,前后对比

条件定义没有工具有工具变化
A 仅有表结构缺失或不完整26.5%23.5%-2.9
B 文档,不完整缺失或不完整29.4%32.4%+2.9
E 散文,完整完整76.5%100.0%+23.5
C 版本化记录完整76.5%97.1%+20.6
F 记录 + 无关填充完整85.3%100.0%+14.7
D 记录 + 联邦规则完整77.9%100.0%+22.1

分界非常干净。凡是知道这些词含义的条件都触到天花板;不知道的条件一个都没动。shell 会算你让它算的东西,而“算什么”正是定义要回答的问题。

两类错误

准确率在这里是最不有趣的一列。真正重要的是另外两列:agent 有多常返回恰好等于已废止或竞争规则所给的那个数字,以及它有多常正确地拒答一个数据无法回答的问题。

条件按已废止规则作答,无工具有工具恰当弃答,无工具有工具
A 仅有表结构16.2%29.4%83.3%50.0%
B 文档,不完整35.3%47.1%83.3%66.7%
E 散文,完整2.9%0.0%66.7%50.0%
C 版本化记录1.5%0.0%58.3%66.7%
F 记录 + 无关填充0.0%0.0%66.7%50.0%
D 记录 + 联邦规则1.5%0.0%66.7%83.3%

在缺少定义的地方,这两项都朝错误的方向移动。给了计算器却没给定义,agent 总会算出点什么,而算出来的东西更常是已废止规则会给出的那个数字。它也不再说自己答不了:仅有表结构时的恰当弃答掉了三分之一。而在有定义的地方,按已废止规则作答的比例在每种条件下都归零。

按问题族,开启工具

条件计算按过去日期面向交易对方不可回答
A 仅有表结构41.7%20.0%8.3%50.0%
B 文档,不完整41.7%50.0%8.3%66.7%
E 散文,完整100.0%100.0%100.0%50.0%
C 版本化记录100.0%100.0%91.7%66.7%
F 记录 + 无关填充100.0%100.0%100.0%50.0%
D 记录 + 联邦规则100.0%100.0%100.0%83.3%

带定义的条件在三个可回答的族上都完美或接近完美。不可回答的那一族才是工具带来损害的地方:agent 手里有 shell,于是它给出一个数字,而不是拒答。

先前研究所倚赖的那些比较

比较无工具时的 p起点(有工具)终点(有工具)有工具时的 p
A 仅有表结构 对比 C 版本化记录0.0005523.5%97.1%0.0
B 文档,不完整 对比 C 版本化记录0.0015132.4%97.1%0.0
E 散文,完整 对比 C 版本化记录1.0100.0%97.1%1.0
C 版本化记录 对比 D 记录 + 联邦规则1.097.1%100.0%1.0
A 仅有表结构 对比 E 散文,完整0.0015123.5%100.0%0.0

支撑原研究的那项发现——真正提高准确率的是提供定义本身——不但存活而且加强了:25 个题项变好,没有一个变差。而不利于我们的那项发现同样存活:完整散文与版本化记录依然无法区分,现在分别是 100% 与 97.1%,唯一有差异的那个题项还偏向散文。

结论

工具解决了先前研究所声明的局限,而且解决的方向与常见假设相反。它们并不能弥补语义的缺失:它们让失败更安静、也更自信,因为一个能计算的 agent 就不再说自己答不了。实际的读法是:给 agent 数据库访问权却不给它定义,比看上去更糟,而且看上去比实际更好。

这项研究没有说明什么

每题只有一次重复而不是两次,因此没有题项内平均,估计比原研究更嘈杂。一个模型、一个合成世界,以及带本地 CSV 文件的 shell,而不是带查询规划器与权限的真实数据库。使用工具的时间成本大约是五倍:每次调用中位 55 秒,而不用工具时约 10 秒。上下文条件仍然通过提示词提供;如果部署把定义也放到磁盘上,表现可能不同,这也是接下来要检验的。

打开 result.json运行器原始运行原始研究