CodexQA

Industry & PracticeResearch & Benchmarks

智能体评测何时不可靠:预言机把 65.5% 的成功记成了 94.3%

CodexQA 团队43 min read

审计 τ-bench 的奖励函数后,4,320 次回合里数据库通过从 4,194 次降到 2,883 次,成功率从 94.3% 降到 65.5%。八项检查检出 57 个可分离组合中的 54 个。语言配置会改变轨迹崩塌率,换到航空领域后符号相反。

In this piece

智能体评测何时变得不可靠:预言机缺陷与随配置变化的测量

Junjie Chen,南京理工大学计算机科学与工程学院,邮箱 junjie_chen@njust.edu.cn

摘要

智能体评测工具链(evaluation harness,负责跑任务、生成输入并判定结果的软件)本身就是软件:它执行一套测试,驱动测试输入生成器,再用测试预言机(test oracle,根据预期结果判定一次运行是否通过的程序)决定结果。分数表看不出两类质量缺陷。本文审计的就是这套软件。

第一,给出一套系统的预言机完整性审计:五条状态完整性不变量,三条已知答案对照。作者在所研究的实现上测量它的敏感性和特异性,方法是向两个任务领域和一个合成领域注入七类预言机缺陷。每一类注入都被检出;随包发布的修复后预言机没有假阳性。作者不把它说成通用框架:它只在本文报告的实现上评估过,第 6 节写明它不能迁移的地方。用到一个广泛使用的智能体基准后,这套检查暴露了一个缺陷:奖励函数为了构造标准答案哈希,把基准数据库重置掉,并且不再恢复。于是,在回合结束之后才打分的工具链,读到的是参考解的状态。在 4,320 次回合里,存档标签记了 4,194 次数据库通过;把记录下来的工具调用独立重放,得到 2,883 次;测得的成功率从 94.3% 降到 65.5%。

第二,证据强度更弱,分析的是测量过程而不是任何一个模型:把装置本地化,本身是测量的可靠性属性。在 3,240 次回合上按组件做消融,智能体读到的三份文档——策略、工具说明、工具出错时返回的字符串——都带着这个效应。探索性排序里,工具说明最大(−9.2 个百分点),出错字符串最小(−5.3 个百分点)。换到第二个任务领域,语言效应的符号反过来,所以第一项发现被限制在测到它的那套配置上。

第三,报告这套审计不能迁移的地方。用到第二个独立实现的智能体基准时,它暴露的是可移植性约束,而不是一次验证:正向对照需要的参考终态,外部工具链无法从该框架记录的 API 调用日志里重建。作者把这次尝试作为负结果发布。它把主张限制在所研究的实现上,并指出:评测框架必须先暴露怎样的契约,这套审计才能搬过去。

论文附有复现包:审计套件、故障注入目录、预注册与偏离日志、冻结的逐回合记录,以及一个入口。这个入口在没有网络、没有 API 密钥、没有模型调用的情况下,重算全部离线分析。

关键词:测试预言机,不稳定测试,测量效度,基准质量,复现包,大语言模型智能体评测

1 引言

评测一个人工智能智能体,通常是把它放到基准上跑,再报告出来的那个数。这个数是成功率:论文写它,排行榜用它排名,部署决定也越来越靠它。它不是智能体单独产生的。它由评测工具链产生:一套测试用例(基准的任务),一个测试输入生成器(越来越多是语言模型扮演的用户模拟器),以及一个测试预言机——基准的奖励函数——来决定每次运行是否通过。工具链是软件,分数是它的一项输出(图 1)。

图1 评测工具链是被测系统

图 1:评测工具链是被测系统。(a) 智能体基准是一条流水线:任务套件、输入生成器、被测智能体、环境和充当测试预言机的奖励函数。预言机把参考解重放到同一环境里,重新导出预期状态。在被审计的实现里,它写下去的内容从不恢复,所以在会话结束后才打分的工具链,读到的是参考解的状态,不是智能体留下的状态(第 4.1 节)。(b) 同一套装置有两种读法:通常把分数归于模型;本文把工具链当成测量仪器,把分数当成这台仪器的属性。

软件工程研究这个安排的失败方式已经几十年。从实际结果判定预期结果,就是预言机问题,也是测试套件最安静地失败的地方(Barr 等,2015)。代码没变、一次通过一次失败的测试是不稳定测试(flaky test,Luo 等,2014)。被测属性没变、读数却跟着装置变,这是效度失败,不是能力差异(Kitchenham 等,2002)。故障注入继承变异测试(mutation testing,故意放入缺陷再看测试能否发现,Jia 与 Harman,2011)的传统,是询问一套测试到底会不会注意到缺陷的标准做法。这些方法已经定型,应用领域还没有。

智能体基准采用了这套软件,没有采用这些方法。尤其是,基准的奖励函数被当成定义:它定义成功是什么,所以它自己不被测试。于是有两个后果。第一,预言机内部的错误在构造上就看不见,因为预言机正是本来该发现它的仪器,而且返回值可以是对的——缺陷可以出在「读完预言机之后留下了什么」。第二,工具链同时也是配置的表达方式(模拟器说哪种语言,智能体的策略和工具说明写什么),装置一变,就会被读成智能体变了。两个后果都不是假设:本文报告的是审计一个广泛使用的智能体基准时,各找到的一个实例。

因此作者把评测工具链当成被测系统来审计。工作收成三个问题。只有第一个问的是评测系统本身;另外两个是对测量过程的分析,并按这个强度来陈述。

RQ1(主要问题)。评测预言机有多可靠:它会不会注意到自己的缺陷,它自己有没有缺陷?研究对象是评测系统:判决是否正确、是否一致,以及它产出的标签有多忠实。证据是对准预言机的测试套件,以及对准工具链的故障注入。

RQ2 与 RQ3(次要问题)。工具链配置如何影响观察到的评测结果?结论对执行过程中会变的因素有多敏感,又在哪里不再成立?这是对测量过程的分析,跑在同一条被审计的流水线上。对象不是模型:作者并不打算刻画语言模型固有的能力或行为。它们刻画的是,工具链里的设计选择——哪些文档被本地化、用哪个任务领域——如何暴露、放大或遮住基准运行时已经存在的变异,以及由此得到的结论在哪里停止成立。

全文保持这个区分:评测系统的可靠性不是模型的固有行为。RQ1 为前者提供直接证据:对准预言机的测试,找到了预言机自己的缺陷。RQ2 和 RQ3 提供的是测量结果会在什么条件下移动的证据,按观察和边界来报告,而不是关于模型的发现。三者证据权重不相等,作者也不把它们说成相等。

贡献

  1. 一套系统的预言机完整性审计方法,并在所研究的实现上测量了敏感性和特异性。八项检查分两族:五条状态完整性不变量,三条已知答案对照;再加上七类缺陷的故障注入,以及一个有标准答案控制的合成领域。在三个目标上验证;每一类注入缺陷都被检出;随包发布的修复后预言机没有假阳性;每一类都对应一个最小检测器(第 3.2 节)。
  1. 用该方法找到的一处预言机缺陷、一个最小复现,以及基于重放的校正。基准的 Env.calculate_reward() 为了构造标准答案哈希而重置环境数据库,并且从不恢复。它返回的值是对的:这个值用重置之前取到的哈希算出,基准自己的智能体消费这个值,不再读环境,所以基准自己的运行器不受影响。它变成错误标签,只是因为作者的工具链在会话结束后单独给回合打分,于是重读了一个还握着参考解的环境。作者把这记成集成失败,并按集成失败来归属:不安全的副作用在上游,第二次读取是作者这边的;作者不主张上游运行器抬高了它自己的成功率。在 4,320 次回合上,存档标签记了 4,194 次数据库通过;把记录下来的工具调用对着干净数据库重放,得到 2,883 次,成功率从 94.3% 降到 65.5%(第 4.1 节)。
  1. 一项随配置变化的可靠性效应,并定位到它的组件。在正确打分的条件下,改变模拟器的语言,合计成功率没有得到已分辨的差异,但会把某一个智能体轨迹退化的速率改变 2 到 10 倍。把智能体自己的世界本地化——策略、工具说明和出错字符串——是更大的杠杆。在 3,240 次回合上按组件消融,三份文档都带着保护效应。三个效应不能相加:只本地化工具说明,测下来比把三份都本地化还好 1.11 个百分点。作者把这个排序当成观察而不是发现:各臂来自不同的运行时段,这个对比是所报告对比里暴露最多的一个,作者自己的功效分析把这么大的对比放在本设计 17% 的功效上(第 4.2 节)。效应的符号经不起任务领域的更换,因此被限制在测到它的配置上(第 4.2 节)。
  1. 复现包,以及该方法的可移植性边界。作者发布审计套件、七类故障注入目录、预注册与偏离日志,以及本文每个数字背后冻结的逐回合记录,外加一个离线入口:不访问网络、不使用 API 密钥、不调用模型,即可重算分析(第 3.6 节)。作为负结果,作者还报告第二个独立实现的基准,方法没有迁移过去,并指出挡住它的框架契约(第 6 节)。

不主张什么

审计完成在一个智能体基准 τ-bench(Sierra Research,2024)上,另有第二个任务领域、一个合成领域,以及一个未能迁移过去的、独立实现的基准。因此作者主张的是:在所研究的实现上评估过的一套系统审计方法,不是通用框架。可移植性边界作为结果报告,而不是被处理掉。全部限度写在第 6 节。

2 背景与相关工作

2.1 测试预言机、变异测试与预言机问题

从实际结果判定预期结果,是软件测试的基础困难(Barr 等,2015)。麻烦不在于没有预言机,而在于它们不被检查:每次测试运行都在用预言机,却没有测试去测它,所以它自己的故障是安静的。变异测试从这一观察长出来(Jia 与 Harman,2011):注入一个故障,再问套件是否注意到。它仍是测量测试套件实际能检出什么的标准技术。作者把这项技术对准预言机本身,而不是对准被测程序。

预言机有两个性质,使这里的变体不同。第一,它可以有状态:预言机若靠把参考解重放到活数据库上来重新导出预期,可以返回正确的值,同时把系统留在其他读者并不预期的状态。第二,它和工具链的契约通常是隐含的——谁在什么时候读环境,任何地方都没写明——于是第二个读者可以错,而错并不出在预言机自己的运行器上。第一项贡献是:面向机器学习评测工具链的、状态完整性表述的预言机问题,以及测量它的故障注入。

2.2 不稳定测试、测量效度与配置敏感性

不稳定测试在同一份代码上既通过又失败(Luo 等,2014)。在经验软件工程里,同一担忧表现为测量效度:读数响应的是装置而不是被研究的属性,那就不是对该属性更弱的测量,而是对别的东西的测量(Kitchenham 等,2002)。蜕变测试从第三个方向处理这个困难:直接预言机不可用时,检查相关输入之间必须成立的关系(Chen 等,2018)。

第二项贡献处在这三者中间。被检验的关系是一项测量属性:装置的语言变了,任务、智能体、模拟器模型和重复次数保持不动,测得的能力不该变。如果变了,诚实的读法不是智能体在某种语言里变差了,而是工具链有配置敏感性。在智能体评测里,类似的不稳定还有持续集成里的不稳定测试所没有的一层:轨迹。模型的多步行为非确定地退化,而不只是同一次测试返回两个判决。

2.3 测试与评测基于大语言模型的系统

另一条线把语言模型当成被测系统,问如何规定、行使和评判一个输出不确定的系统(Hou 等,2024;Zhang 等,2022)。作者采用这个框架,再往下移一层。本文的被测系统不是模型,而是评测工具链:模型是输入生成器,智能体是工具链所测量的系统。这个区分重要,因为两者经常被混在一起——基准的奖励函数被当成定义,而不是当成有失败方式的软件——也因为工具链里的故障,正好以预言机故障那种方式不可见。

2.4 智能体基准及其测量的可靠性

基准本身是软件制品,其效度和可复现性必须论证,不能假设(Recht 等,2019;von Kistowski 等,2015)。在智能体评测里,论证大多是在测量测量的噪声,而不是在审计装置:模型当裁判的分数随裁判和提示变化(Yin,2026;Mahmood 等,2026);重抽样或更换所报告的统计量,排名会移动(Zheng 与 Yang,2026;Khosravi 与 Huo,2026;Bjarnason 等,2026);合计成功藏住一次运行里实际发生了什么(Khanal 等,2026);基准可以不解决任务就被答出,或无法区分本不相同的系统(Kehkashan 等,2026;Bellibatlu 等,2026);装置本身也在重访已有基准(Yehudai 等,2026;Sierra Research,2024;Barres 等,2026)。作者分享这个关切,并更换它的对象:不问分数吵不吵,而问产出分数的仪器对不对,用对准仪器的测试来问。

2.5 用户模拟器作为测量仪器

用户的回合是生成的而不是固定的,所以用户模拟器与其说是基准的夹具,不如说是测量装置的一部分,它自己的行为会影响读数(Seshadri 等,2026;Zhou 等,2026;Ni 等,2026)。模拟器被当作组件来设计、验证和比较(Dou 等,2025;Jain 与 Sandhu,2026;Lee 等,2026;Ma 等,2026;Sekulić 等,2024;UserSim 组织者,2026),并且越来越多建在真实交互数据上(Zhou 等,2023)。相关工作表明,模拟器的呈现——人设、方言,以及它披露的人口统计线索——会移动测得结果,而不移动模型能力(Taday 等,2026;Haq 与 Saldías,2026;Tonneau 等,2026;Liu 与 He,2026)。装置的语言也是这类配置:跨语言评测对翻译、区域设置和提示语言敏感(Hofman 等,2026;Luo 等,2026;Kuang 等,2026;Li 等,2026;Agrawal 等,2026)。那批文献跨语言测量智能体;作者补上的是把同一种操作读成装置的属性,定位到它的组件,并检查它移动的是成功率,还是只移动运行的可靠性。

2.6 复现与制品评估

本文这类研究,读者能不能重跑,和它发现了什么一样被拿来评判(Winter 等,2022)。那种实践里的两条惯例决定了作者发布什么。第一,复现包应携带冻结的输入,而不是重新生成它们的配方,因为几个月后再跑配方,复现的是另一个系统。第二,包应区分它能检查什么和不能检查什么:本包报告每个来源的核验状态,只把「文件找到了且哈希匹配」的来源计为已核验,不把缺失的存档当成通过。两个选择都记在偏离日志里,而不是被说成原来的计划。

3 方法

3.1 作为被测系统的评测工具链

本研究的对象不是模型,而是评测模型的软件,对应到测试词汇是直接的。基准提供一套测试用例:任务规定用户目标,并对每个任务给出一串满足该目标的参考工具调用。测试输入在运行时由扮演用户的语言模型生成。被测系统是一个会调用工具的智能体——一个模型加上固定的控制循环。测试预言机是基准的奖励函数:它把数据库的终态和参考动作本会产生的状态比较,并要求某些输出字符串出现在智能体说过的话里,从而决定通过或失败。因此断言有两条:与语言无关的状态比较,以及对最终回复做子串匹配,后者与语言有关。

这个安排有两个性质和后面有关。预言机是可变状态的函数:要构造预期,它必须执行参考动作,也就是必须碰到它正在评分的同一个数据库。评分是两个分量的合取,因此两者不一致时,可以把状态分量和文本分量分开。

3.2 预言机完整性测试

图2 预言机完整性审计流程

图 2:预言机完整性审计流程。被测单元是预言机,把它看成带四项操作接口的程序(左):做一份新环境、取状态签名、调用预言机、指出预言机所在的类。三族检查对着这个接口运行(中):五条状态完整性不变量、三条已知答案对照,以及七类缺陷、21 个变体、三个目标共 63 种组合的故障注入。差分探针有效性闸门在计算任何检出数字之前,决定哪些变体–目标组合算可分离(右);探针分不开的组合报为未解析,绝不计为等价。套件检出 57 个可分离组合中的 54 个;在全部三个目标上都漏掉的那一个,在第 4.1 节点名,而不是被摘要盖住。

套件要求任何被审计对象提供四项操作:为给定任务做一份新环境,为正在评分的状态产生可比较的签名,调用预言机,以及指出预言机所在的类,以便注入缺陷。接口里没有任何东西专属于所研究的基准。

在这个接口上定义两族共八项检查。不变量陈述预言机无论任务都必须满足的性质。INV-1:一次直接调用不得改变被评分的状态。INV-2:同一环境上的两次调用,判决必须一致,留下的状态必须相同。INV-3:判决不得依赖回合被打分的顺序。INV-4:若预言机中途抛出异常,状态必须恢复,异常必须继续传出。INV-5:会话结束步骤之后,环境仍须持有智能体留下的状态,终止动作之后不得再追加动作。对照用已知答案核验判决的方向。CTL-1:什么都没完成的回合,以及只说出所需输出、却没有做所需写入的回合,不得被判为已解决。CTL-2:参考解必须被判为已解决。CTL-3:所需输出的一种已被接受的另写,必须被接受。

为测量套件自己的敏感性和特异性,一次向预言机注入一类缺陷,每类与正确实现只差一个维度:永不恢复的状态改写;只在成功路径上恢复;恢复时忘掉已记录的动作;判决经由模块级缓存依赖顺序;永远通过的预言机;忽略状态分量的预言机;不做任何规范化就匹配输出的预言机。未修改的预言机是特异性的对照。

3.3 基准、任务套件与配置空间

使用「智能体–用户–数据库」形式的工具使用基准,取它的两个领域:零售领域,从中为预注册矩阵抽取 30 个测试任务;航空领域,其 50 个测试任务全部使用。航空领域是这一版加上的,需要任务说明的中文版本。翻译由模型生成,再做机械检查:英文里出现的标识符、ISO 日期、航班号、机场代码和每一个数字,都必须原样出现在中文里;英文里没有的拉丁片段不得出现。残留限度是:语义等价依靠机械检查加一遍阅读,而不是第二位独立译者。

操纵两个因素。用户语言是模拟器书写所用的语言。环境语言是智能体所读三份文档的语言:策略维基、工具说明,以及工具出错时返回的字符串。数据库内容——姓名、地址、订单和商品标识——从不翻译,因为它们是数据而不是提示。工具契约要求逐字匹配的枚举字面量,在中文稿里仍保持英文,以免本地化的一臂失败在参数校验上,而不是失败在语言上。环境因素有按组件的形式:三份文档里恰好一份被翻译。还有按长度填充的形式:一段语义冗余的附录把中文提示补回英文的长度。每一臂都要过一道闸门,按组件断言:声称已翻译的文档与项目唯一一套中文稿逐字节相同,声称未翻译的文档按对象同一性仍是英文原文。

3.4 设计与预注册

预注册矩阵在任务、智能体、模拟器模型和重复次数固定的情况下改变用户语言:30 个任务 × 2 种语言 × 6 个模拟器 × 4 个智能体 × 3 次重复 = 4,320 次回合,分析使用存档回合,而不是重新生成。第二个预注册因素把用户语言和环境语言交叉,1,080 次回合,另加长度填充环境中的 1,080 次。这一版增加三个实验,设计在对应运行之前冻结:环境因素的按组件消融(3,240 次回合),在第二个领域重复用户语言操纵(1,200 次回合),以及对崩塌标签的独立裁定(212 个存档回合)。

有两臂在看到试点数据之后被改掉。作者把这报告为偏离,而不是把最终设计说成计划中的设计。第二个领域的实验本要包含一个跨厂商智能体;它的试点在 120 次回合里一次都没有崩塌,于是按预注册的停止规则丢掉该臂,实验减半,独立模型验证仍然开放。裁定本要抽取 200 个崩塌回合;存档里有 106 个,于是变成普查。试点本身是带预注册决策规则的方向检查,不是显著性检验。

3.5 测量与统计

所关心的随机化单位是任务,所以主要推断是按任务聚类的区间:在每个任务内汇总成对差值,再对任务取平均,使用 t(G−1) 参考分布,G 是任务数。比较在同一任务、模拟器、用户语言和重复次数内配对,使组件臂与基线相比的格子只差被操纵的那一个组件。出现精确检验和置换检验时,它们是对估计的交叉核对,绝不单独用来宣布一个效应已经分辨。每一个报告的分数都在第 4.1 节所述的校正评分下计算;存档臂的标签需要重建时,状态分量用重放重建,文本分量保持存档原样,因为缺陷只影响前者。包含零的区间报告为未检出差异。

3.6 复现包

随文的包被装配成:其中每一个数字都可以在一台没有网络、没有 API 密钥、没有模型客户端的机器上离线重算。它有四部分。

  • 审计套件及其故障目录。八项检查(第 3.2 节)、七类注入的预言机缺陷、正负对照,以及从变体到缺陷类的冻结映射,消融按这个映射汇总。
  • 冻结的逐回合记录。v1.0 主矩阵、组件消融和第二个任务领域,以及存档标签和按第 4.1 节重放产生的校正标签。存档值和校正值并排保留,不覆盖。
  • 预注册和偏离日志。预注册的设计,以及一份编号日志,记录每一次离开设计的地方,包括因试点证据丢掉的两臂、第二个基准上的划分调整,以及在作者自己的有效性闸门里找到的两处缺陷。作者记录这些,而不是把最终网格说成计划中的网格。
  • 一个离线入口。一条命令分组运行离线分析,并按组打印退出码:引擎轨迹裁定的重算、审计消融与基线、预言机完整性回归,以及来源绑定检查。入口报告哪些来源存档能够核验、哪些缺失;它不把缺失存档计为已核验。

有两样东西故意不放进包里。第 6 节负结果所用的第二个独立实现基准,其任务数据的许可禁止明文再分发,所以包里有适配器、适用性发现和版本指纹,没有数据。由模型服务产生的回合记录以汇总形式发布,并出现在裁定输入里,模拟用户的回合被换成占位符;作者不主张每一份原始服务商响应都可以再分发。

一份不依赖容器的环境文件钉住分析依赖;模型客户端不在其中。包里没有任何东西调用模型。给定冻结记录,每一个所报告统计量的重算是确定的。

4 结果

4.1 RQ1(主要问题):评测预言机有多可靠?

套件及其验证。作者把第 3.2 节的八项检查实现在四项操作的接口上——做一份新环境、取状态签名、调用预言机、指出预言机所在的类——并在三个目标上运行:零售领域智能体基准的预言机、同一基准航空领域的预言机,以及从零写的合成领域。前两个是同一种评分实现的两个任务领域,不是两个独立框架,作者不主张更多;第二个领域贡献的是不同的任务套件、工具表面和数据库,对着同一份预言机代码。合成领域用来表明套件不是围着一个基准成形的,并提供有标准答案控制的设置。全文所说的三个目标就是这三个。

对每个目标,一次向预言机注入一类缺陷,共七类。表 1 给出结果。

未注入基线的身份很重要,这里写明,否则后面两句会看起来互相矛盾。这套套件所审计的实现,是包里发布的那份副本,而那份副本带有下面描述的修复;因此表 1 里标成随包发布的那一类是修复后的实现,它在每个目标上通过每一项检查。标成状态改写的那一类不是假设:它是修复前同一函数的忠实复现,没有任何恢复语句。对着这个复现,INV-5 在两个领域里所抽样的每个任务上都会报警。三项核对确认了这个分离:随包的源码含有快照与恢复,注入变体完全没有恢复,INV-5 在前者上沉默、在后者上报警,两个领域都如此;这项核对随包发布。因此,若把套件指向修复前的基准,它本会抓住这个缺陷。主张是它抓住七类中的一类,不是它会在作者发布的代码上报警。

类级摘要藏住了什么。表 1 在七类缺陷的层级上汇总注入实验,实验也是按这个层级设计的,而且这个汇总比结果更宽厚。每一类由奖励函数的若干具体变体实现;整组是 21 个变体,对着全部三个目标是 63 个变体–目标组合。主分母是差分探针表明与随包实现在行为上可区分的 57 个组合,其余 6 个被探针留为未解析,绝不计为等价。在这个分母上,完整套件检出 54/57。保守分母把 6 个未解析组合也算进去,检出 56/63。两者都报告,不混用:它们回答的是不同问题,较大的数字不是更强的结果。

因此套件并非没有盲点,而且漏掉的是全部三个目标上的同一种组合:预言机吞掉了自己内部抛出的异常,于是 INV-4 把被探测的路径记成不适用,而不是记成违反。这个机制值得点名,因为它不是这个实现的偶然:一项检查的前提若被它本该检测的缺陷毁掉,就会把那个缺陷记成不适用。作者报告这次漏检,而不是报告把漏检盖住的类级摘要。

哪些检查是承重的。表 1 最后一列是算出来的,不是断言的。去掉某项检查后,该类已检出的某个组合不再被任何剩余检查检出,这项检查对该类就是必要的;「无」表示没有单项检查是必要的,因为两项或更多检查独立覆盖该类。八项检查里有四项对至少一类是必要的,四项对任何类都不是:INV-3(整组里 9 次独特检出)、CTL-1(15)、INV-4(6)、CTL-3(5);INV-1、INV-2、INV-5 和 CTL-2 为零。冗余不是测试套件的缺陷——一项独立检查表示同意,是套件赢得信任的方式——但它确实意味着八项检查不是八项独立能力,复现包里的检测器消融按这个基础计算。两族仍然不能互换:状态干净但判错的预言机,不变量看不见;状态脏了但碰巧判对的预言机,对照看不见。

表 1:缺陷类 × 检测器,由发布的故障矩阵在全部三个目标上算出。触发列出对该类至少一个变体报过警的每一项检查;必要是去掉之后会让该类某个已检出变体不再被任何剩余检查检出的那项检查。同一类里的变体并不都产生相同的报警模式,所以表报告的是并集而不是单一模式。饱和预言机这一类在每个目标上含有一个任何检查都不报警的变体(第 4.1 节)。每个变体都由作者构造,所以这些数字是这组注入的条件属性,不是对未知缺陷的检出率。

缺陷类变体数触发的检查必要
状态改写9INV-1、INV-2、INV-4、INV-5、CTL-1、CTL-2CTL-1
异常泄漏9INV-1、INV-2、INV-4、INV-5、CTL-2、CTL-3INV-4
动作未恢复9INV-1、INV-2、INV-4、INV-5无
顺序依赖9INV-3INV-3
饱和预言机9CTL-1CTL-1
无视数据库的预言机7CTL-1CTL-1
严格输出匹配5CTL-3CTL-3

套件在基准上找到了什么。基准的奖励函数重置环境数据库,以便重放参考解并构造标准答案哈希,之后从不恢复数据库。函数返回的值是对的,基准自己的智能体消费这个值,不再读环境,所以基准自己的运行器不受影响。把副作用变成错误标签的,是在会话结束后单独给回合打分的工具链:第二次读取找到的是参考解的状态,不是智能体的状态。作者的工具链正是这样做的。

不变量 INV-5(终态稳定)会在这个复现上报警,而且不需要任何下游代码参与:会话结束步骤之后,环境不再持有智能体留下的状态。作者把两个阶段分开:缺陷的发现发生在更早研究中未打补丁的实现上,下面分析的就是那些存档回合;检测器的验证是上面的注入实验,其中未打补丁的逻辑被故意复现。INV-5 在作者发布的修复副本上沉默,这份沉默是特异性结果,不是对发现的否定。反例是最小的:构造一个回合,智能体完全不做写操作,只说再见;在存档代码路径上,这个回合被判为数据库通过,修复之后不是。

校正。因为基准不暴露确定性种子,服务商也不提供不可变的模型版本,4,320 个存档回合不能重新生成;但它们可以重放。作者把每个存档的工具调用对着干净数据库重新执行,再把得到的终态哈希和参考哈希比较。两项检查确立重放是忠实的:全部 137 个因碰到步数上限而结束的回合——它们从不经过有缺陷的路径,标签因此本来就是对的——逐一复现了存档标签;全部 33,402 条工具观察与存档字符串逐字符相同,没有不匹配。

在校正标签下,存档的 4,194 次数据库通过变成 2,883 次,总成功率从 94.3% 降到 65.5%。下面报告的每一个数字都在这项校正下计算。

4.2 RQ2(次要问题):工具链配置如何影响观察到的评测结果?

智能体自己的世界写在三份文档里:它读的策略、工具的说明,以及工具出错时返回的字符串。一次操纵全部三份,只能说明世界重要,不能说明是哪一部分;因此作者把每个组件单独跑。三臂分别把策略、工具说明或出错字符串本地化成中文,另外两份保持英文,共 30 个任务 × 6 个模拟器 × 2 种用户语言 × 3 次重复 = 3,240 次回合,没有失败格子。两个存档臂——全英文基线和全中文环境——是复用而不是重跑。每一次比较都在同一个(任务、模拟器、用户语言、重复)格子内配对,并按任务聚类。

表 2 给出结果。四个中文臂的区间都不含零,排序稳定:本地化工具说明的效应最大,策略次之,出错字符串最小,每一对差异的区间也不含零。

表 2:环境本地化的组件消融(零售,每臂 1,080 个配对格子)。Δ 是相对全英文基线的配对差,带按任务聚类的 95% 区间(G = 30,t(29))。成功差异在校正评分器下计算。

臂崩塌Δ 崩塌Δ 成功
英文基线9.81%(106/1080)——
工具说明为中文0.65%(7/1080)−9.17 [−11.61, −6.73]+9.63 [+5.09, +14.17]
中文环境(三份都改)1.76%(19/1080)−8.06 [−10.57, −5.54]+5.56 [+0.45, +10.67]
中文加长度填充1.30%(14/1079)−8.52 [−10.77, −6.28]+5.80 [+0.56, +11.04]
策略为中文2.59%(28/1080)−7.22 [−9.46, −4.98]+5.09 [+0.80, +9.38]
出错字符串为中文4.54%(49/1080)−5.28 [−8.03, −2.52]+5.19 [+1.31, +9.06]

接下来有两个主张,都比本文更早一稿的标题所能支持的更窄。

第一,三个组件都带着保护效应,而且效应不能相加。最弱的单臂仍把崩塌移动 −5.28 个百分点。因此在所测配置里,每个组件单独本地化都会改变测得的崩塌率;但这些单组件对比并不确立三者中任何一个是必要的,作者也不这样主张。最强的单臂(工具说明,−9.17 个百分点)的点估计大于同时改三份文档的那一臂(−8.06 个百分点),所以并不是没有任何单组件达到全部效应——全部操纵并没有超过它自己最大的组件。把两个区间并排放,解决不了这个问题,因为两个各自不含零的区间彼此不一定不同;因此作者直接检验这个对比,逐格配对两臂。只本地化工具说明,比把三份都本地化好 1.11 个百分点,区间 [0.36, 1.86] 不含零。作者不把这个对比读成机制排序,原因有二,见下文和第 6 节:它很小,而且不是同时运行的比较——三个单组件臂在一批里跑,三份都改的那一臂来自同一项目更早的一批,所以对比在任务、模拟器、用户语言和重复上配对,但不是会话内随机化。定量地说:用本设计自己的方差做模拟,1.11 个百分点的对比只有 17% 功效,4 个百分点为 85%,9 个百分点为 100%。就现有证据而言,这个对比在本设计的分辨率上不可判定,而不是已经判给某一臂;不含零的区间不应当被读成已经定案。只本地化出错字符串,比把三份都本地化差 2.78 个百分点 [1.21, 4.34];只改策略与全部操纵没有差异(+0.83 个百分点 [−0.36, +2.03])。因此,在已经本地化的工具说明上再加策略维基和出错字符串,是收回一部分收益,而不是往上加。作者把这描述为观察到的非可加模式,而不是次可加性,因为只有单组件臂和三份都改的臂,识别不了更高阶的交互项。设计所支持的观察是:组件并不作为独立贡献相加,排序有最大项和最小项,而不是有一个原因。组件对比是探索性的:预注册没有对组件之间的差异设假设,区间没有做多重比较校正,所以不应当被读成三份文档的确定排名。

第二,出错字符串是最弱的组件。作者预注册的是相反的方向:更早描述的机制把失败放在工具错误的边界上——返回「找不到用户」的身份检查——因此预期出错词表会承载这个效应。它承载的是三者里最少的。更早的机制叙述和这个结果不一致,作者按不一致来报告,而不是重写一个两边都贴合的故事。

长度。本地化一份文档也会改变它的长度,中文会把它变短:按字符计,中文策略维基是英文长度的 36%,工具说明是 66%,出错字符串是 30%。第四个长度匹配的环境被填回英文提示的长度,相对未填充的中文环境,崩塌移动 −0.46 个百分点,成功移动 +0.24 个百分点,比任何组件效应低一个数量级。在这个分辨率上没有检出长度效应,因此不把长度当成组件效应的解释;填充臂的区间与其他臂一起报告,并且跨过零。不过,长度并没有对单组件臂被完全排除:填充控制的是整个环境的长度,作者没有为每一份文档各做一个长度匹配的对照。要推翻排序,按组件的长度混淆必须比整个环境的长度效应大一个数量级。作者认为这不可信,但并不排除。

第二个领域把符号反过来。作者在基准的航空领域上重复用户语言操纵。那是另一套任务、另一组工具表面,也是明显更难的一组任务:50 个任务 × 6 个模拟器 × 2 种用户语言 × 2 次重复 = 1,200 次回合,没有失败格子。这个领域本希望给更强的智能体一个非零的基率,它没有做到这一点:计划使用的跨厂商智能体在 120 次试点回合里一次都没有崩塌,于是该臂被丢掉,独立模型验证仍然开放(见第 6 节)。

基率非零的那个智能体在第二个领域里确实会崩塌:英文模拟器 9.67%,中文模拟器 4.33%。方向却与先前测到的相反。

领域指标英文模拟器中文模拟器
零售(存档)崩塌6.48%13.15%
航空(本研究)崩塌9.67%4.33%

零售数字是该智能体每种用户语言 540 次回合,1,080 是两臂合计;航空是每种语言 600 个配对格子。航空差异是 −5.33 个百分点,按任务聚类的区间 [−8.15, −2.51],不含零;零售差异是 +6.67 个百分点。分开报告两个区间并不能确立两个领域不同,所以作者也直接检验对比:两个效应之差是 −12.00 个百分点,区间 [−16.33, −7.67](Welch–Satterthwaite,df = 65.76,精确 t 分位数),不含零。符号相反,每一个都已分辨,它们之间的差也已分辨。作者预注册了两种读法,这里是第二种:效应不能推广,于是把它报告为边界,并把更早的发现限制在测到它的配置上——零售配置下的语言效应。在成功一侧,航空差异是 −2.00 个百分点 [−7.05, +3.05],什么都不排除,也不支持任何方向。

这是负结果,作者按负结果报告,并把它保持在两个领域所能支持的范围内。符号在所跑的领域之间不稳定,所以不能把任何方向归于模拟器的语言;效应是测到它的那套配置的属性。这比机制主张更弱,作者也不做机制主张:两个领域各自同时更换任务集、工具表面和基率,分不开配置属性与语言和领域的交互。符号反转所排除的,是更早文献容易引出的读法——中文让智能体变差或变好——作者收回的是这个主张。

4.3 RQ3(次要问题):结论对执行因素有多敏感,又在哪里停止成立?

RQ1 和 RQ2 报告审计找到了什么。RQ3 报告这些答案在哪里停止成立:实现边界,同一套审计方法未能迁移到第二个独立实现的框架;仪器边界,本文所依赖的准则其实是操作定义,由语言模型佐证,而不是人类标准答案。两者都作为结果报告,而不是作为遗漏。任务领域本身是配置的一部分,因此它的效应放在 RQ2 下。

实现边界。作者把同一套预言机完整性检查用到第二个独立实现的智能体框架。这次尝试没有得到验证。正向对照需要的参考终态,外部工具链无法从该框架记录的 API 调用日志重建,因此无法在其留出任务集上估计敏感性或特异性,作者也不报告。框架确实暴露的夹具也不能充当正向对照:21 个留出任务里,看起来可用的三个是假阳性,由对照本就存在来检测的同一种状态重建缺陷产生。约束是契约性的,不是偶然的:框架只在自己的运行循环内部物化一个参考回合。作者把它陈述为:这类审计要搬到一个框架上,该框架必须先满足的前提。第 6 节把它记成它所是的外部效度边界。

独立的语言模型裁定复现了崩塌标签。崩塌准则是机械的操作定义。读者有权问:独立裁判会不会把同样的运行叫作退化。作者把存档里每一个崩塌回合(106 个)和匹配的未崩塌对照放在一起,把语言臂和准则自己的中间量遮住,方法是把每个用户回合换成占位符,再让来自另一个模型族的裁判在不知道假设的情况下决定:智能体是否停止取得进展。212 条里,裁判对 210 条返回了可解析的判决(流失 0.9%)。与机械准则的一致率是 98.1%(Wilson 95% 区间 [95.2, 99.3]),Cohen 的 κ 是 0.962,敏感性 98.1%,特异性 98.1%。

对本论文重要的量不是一致率本身,而是它与语言臂无关:英文臂 98.6%(1 条不一致),中文臂 97.9%(3 条不一致)。如果准则被调成——哪怕是无意地——在一种语言里报警,这里会显出来。它没有。这些数字是与机械准则的一致,不是相对人类参照的准确率:裁定者是语言模型,样本是存档里的阳性加上匹配的阴性,而不是从部署分布里抽取的,所以所报告的敏感性和特异性是这个被选出的样本的属性,不能搬到基率不同的总体。因此有三条限度框住这个结果。一致率在天花板上,所以检验几乎没有功效去发现中等的、随臂变化的偏差;残留泄漏是真实的——要判断智能体是否停止取得进展,裁判必须读智能体说了什么,中文臂里那些词是中文——所以作者主张的是准则的一致率不依赖臂,不是裁判对语言失明。裁判也是语言模型,不是人;本研究没有标注预算,所以准则被报告为带独立佐证的操作定义,而不是一种自然类别。

5 讨论

评测预言机是软件,它需要其他软件所得到的测试。所报告的缺陷并不古怪。一个函数改写它正在评分的状态,在成功路径上恢复、在失败路径上不恢复,是资源处理缺陷的普通形状;它在这里变得重要,是因为这个函数就是评分者,而调用者没有理由怀疑它。套件里的两项检查本会立刻抓住它,而且运行成本为零。重复评分检查——把同一个已结束的回合评两次,并要求判决相同——在第一次调用之后的下一次就会失败,因为第一次调用已经挪动了环境。终态检查——会话结束步骤之后,断言环境仍持有智能体留下的状态——不需要任何下游代码参与就会失败。两者都不需要参考实现、模型调用或人。作者建议:任何给智能体回合打分的工具链,都应把两者放进持续集成,放在钉住修复的回归测试旁边。

跨语言分数表没有说出的东西。分数表报告一次测量。它不报告仪器的失败率。结果正是仪器失败率和测量彼此独立移动的一个例子:在零售配置里,合计分数差异未被分辨,而某一个智能体轨迹退化的速率大约加倍;在航空配置里,同一种操纵把退化速率推向相反方向。因此,比较同一评测的两种语言配置的实践者,不能把比较读成关于模型的陈述,甚至不能假设仪器偏差的方向在任务套件之间是稳定的。跟着来的两个动作是:在分数旁边报告仪器失败率,并且在据以行动之前,在不止一套任务上检查它。

本地化是配置变更,应当按配置变更来测试。组件消融的实际读法不是某一份文档重要、其他不重要;而是改变智能体世界的本地化,会改变测量的可靠性,而且这种改变分布在智能体所读的世界的各个部分上。一个团队若只本地化智能体面向用户的一侧,而把策略、工具说明和出错词表留在英文里,跑的就是一套测量属性既不同于全英文、也不同于完全本地化的配置。消融所建议的,是测试这套配置,而不是假设它是两端之间的一个中间点。

重放作为审计原语。所报告的校正不是重跑:服务商不提供确定性种子,也不提供不可变的模型版本,所以回合不能重新生成。能够重新生成的,是智能体已记录动作对预言机所评分状态的效应。把存档的工具调用对着干净数据库重放,可以精确重建终态,也正是它把抬高的标签变成可测量的标签。前提很窄,作者按前提来陈述,而不是按预测:重放需要基准以外部工具链能够重新执行的形式记录智能体的工具调用,并且对着工具链能够重置的数据库。作者在一个这样的基准上评估了它,第 6 节报告同一前提不成立的那个独立实现。在这个前提之内,它很便宜:重放是确定的,不需要模型,可以缓存。

报告负结果,也报告不一致。本文有两项发现是负的:预注册的机制假设被消融否定;先前报告的效应在第二个任务领域里变了符号。作者逆着叙述的利益报告两者,并把第一项报告为更早机制叙述与新数据之间的明确不一致,而不是重造一个两边都贴合的叙述。对一篇主题是测量是否可信的论文,这是唯一一致的位置。

6 对效度的威胁

6.1 构念效度

RQ2 和 RQ3 不是什么。两个次要问题的边界要写明,因为这是读者最可能伸手去拿的读法。RQ2 和 RQ3 不是对语言模型固有能力或行为的测量。模型是研究的材料,不是对象。这些问题刻画的是一条被审计流水线上的测量过程:工具链里的设计选择如何暴露、放大或遮住基准运行时已经存在的变异,以及所得结论在哪里停止成立。对证据的后果在引言里写明并贯穿全文:RQ1 是关于评测系统的直接证据,RQ2 和 RQ3 按更弱的强度报告为观察和边界。想要「模型在本地化下如何行为」这一主张的读者,在这里找不到,作者也不做这个主张。

崩塌是操作定义:一段最长的连续回复,至少五步,每步最多花费两个补全 token,并且没有工具调用。它是机械的、可复现的,不是自然类别。第 4.3 节的独立裁定确立:这个定义跟踪的是读者会称为停滞轨迹的东西,而且一致率不依赖语言臂;但裁判是语言模型而不是人,一致率在天花板上。准则也定义在智能体的 token 计数上,而 token 不是与语言无关的文本单位。这一脉络里更早的工作表明,差距在字符计数、重复以及不设长度阈值的替代定义下仍然存在,作者依赖的是那份稳健性,而不是主张 token 阈值跨语言可比。因此所测量的是被评测的智能体–模拟器配置的属性——在这套配置下,轨迹多久退化一次——而不是模型单独的属性。

6.2 内部效度

服务商不暴露有效的确定性种子:温度为零时,同一请求仍给出不同轨迹,所以每个格子的三次「重复」是重复索引,不是受控随机化,单次运行不是证据。因此所有比较都在格子内配对,并带按任务聚类的区间报告。另一项内部效度代价是:组件消融和第二个领域跑在一个会定期重建执行环境的平台上,消融批次因此跨过一次这样的边界。经过的间隔不到一小时,一次漂移探针覆盖的区间比这个间隔大一个数量级,没有发现版本漂移的证据,但不能排除。

同一威胁的更大实例附在组件对比上。三个单组件臂在同一批里运行,但把三份文档都本地化的那一臂和全英文基线来自本项目更早的批次;运行时段之间的间隔至少一天,服务商不暴露不可变的模型版本,所以时段之间服务商一侧的变化没有被排除。在任务、模拟器、用户语言和重复上配对,去掉了任务和配置方差,但它不是会话内随机化,去不掉一个时段共有的漂移。后果要说精确:每个组件存在保护效应,这一点有支持;组件的排序应读成这套配置里的观察,而不是已确立的机制;只本地化工具说明与把三份都本地化之间 1.11 个百分点的对比,是所报告对比里暴露最多的一个。同一时段、把臂的顺序反过来的复现可以定案,作者没有跑。

第二个实验的两臂是在看到试点证据之后丢掉的(第 4.2 节)。这是看到数据之后做出的设计决定,作者按此记录,而不是把最终网格说成计划中的网格。

6.3 外部效度

审计方法有一条被测量而不是被假设的可移植性边界。作者把同一套套件用到第二个独立实现的智能体基准。尝试是负结果:正向对照需要的参考终态无法从框架记录的 API 调用日志重建,因此无法在其留出任务集上估计检出率,作者也不报告。约束是契约性的,不是偶然的:框架只在自己的运行循环内部物化参考回合。作者把它陈述为这类审计要搬过去之前框架必须满足的前提。这把贡献 1 限制在实际评估过的实现上。

其余全部结果来自一个智能体基准、两个任务领域、四个智能体和六个模拟器模型,全部由一个服务商提供。轨迹层面的效应由一个智能体承载;其他智能体在两臂上的基率都是零,显示不出这个效应,所以机制跨模型的一般性是从机制推断的,不是观察到的。第二个领域本想放宽这一点,没有做到:跨厂商智能体在试点回合里一次都没有崩塌,该臂被丢掉,独立模型验证仍然开放。跨语言设置是中文模拟器对着英文工具环境;其他语言对没有测试。模拟用户是语言模型而不是人类说话者,因此效应有多少属于模拟器的语言行为、有多少属于智能体,仍然开放。推断以所抽样的任务为条件:零售结果以从基准测试套件抽出的 30 个任务为条件,航空结果以该领域全部 50 个任务为条件。

6.4 结论效度

主要推断是按任务聚类的区间,参考分布是 t(G−1),G 是任务数,把任务当成抽样单位。对关于任务套件的主张,这是对的单位;对关于回合的主张,这是错的单位。所报告的区间以所抽样的任务为条件,并不吸收抽样这一步。精确检验只作为交叉核对报告,不用来宣布效应已分辨。若干次要分析——置换、符号翻转和按任务聚类的自助变体——并不共享同一个零假设,因此不构成独立的证据线;它们作为对同一个估计的敏感性分析来报告。最后,包含零的区间报告为未检出差异,而不是没有差异的证据。

7 结论

智能体评测工具链是一块软件,它产出的分数是仪器读数。作者审计了这样一台仪器,报告两项发现。它的测试预言机改写了它正在评分的状态,在这些运行里把记录的成功率从 65.5% 抬到 94.3%,而且本会静静地这样做;机制是缺少恢复,检测是重复评分或终态检查,校正是重放已记录的动作,而不是重跑。装置的语言是测量的配置参数,而不是模型的属性:把智能体自己的世界本地化,会改变轨迹退化的速率;智能体所读的三份文档各自带着保护效应,没有任何一份单独解释另外两份,效应也不能相加。这个效应的符号经不起任务领域的更换。一张分数表若既不报告仪器的失败率,也不报告取这个读数时的配置,它报告的就比看上去更少。

声明

  • 资助。开展本研究没有收到资助。
  • 利益冲突。作者声明没有利益冲突。
  • 伦理批准。本研究没有人类参与者,也没有动物受试者。全部实验里的「用户」都是语言模型模拟;没有招募、测试或记录人类受试者。
  • 数据可得性。软件制品和冻结的评测数据集分别存档在 Zenodo。软件制品在 https://doi.org/10.5281/zenodo.23290600 (v1.0.0),包含预言机完整性套件、故障注入、产生本文表格和由数据导出的图的分析、版本绑定清单,以及这些分析所读的小型冻结输入。这些分析背后有四份冻结存档:带存档标签和重放校正标签的 v1.0 主实验(4,320 次回合);S2 发布,含组件消融(3,240 格)、跨领域实验(1,200 格)和盲裁定输入(212 条);增强轮,含留出变体组、检测器消融、功效分析和跨框架移植尝试;以及第一份的匿名副本。合计 232 MB,另存在 https://doi.org/10.5281/zenodo.23290703 ,并附发布条款和校验和文件。本文每个数字都绑定到这些存档修订中的恰好一份;从存档到实验再到章节的映射,连同 SHA-256 校验和,记在包的发布清单里。有两样东西故意不分发。可移植性结果所用的第二个独立实现框架,其任务数据的许可只允许加密形式再分发,所以包里有适配器、适用性发现和版本指纹,本文不报告它的检出率。由模型服务产生的回合记录以冻结记录分发;它们含有第三方模型服务的输出,不按无条件开放许可提供。为本研究所写的代码按 MIT 许可发布。冻结记录不在该许可之内,带有包里写明的自己的条款:派生结果和逐回合记录可在署名下用于研究并再分发;回合记录的大规模再分发或商业使用应先提出请求,因为它们含有第三方模型服务的输出。关于逐字节可复现:分析从冻结记录出发是确定且可重算的,但 PDF 不是逐字节可复现的,因为 LaTeX 引擎会把构建时间戳和文档标识写进它产生的每个文件。因此已发布的 PDF 应当用源码的哈希绑定到已发布源码,而不是用 PDF 的哈希。
  • 代码可得性。分析和实验代码在上述存档中,也可在 https://github.com/JunjieChen0/SimGlot (标签 v1.0.0)取得。三个入口驱动全部离线分析:一个给 S2 一侧,一个给增强一侧,一个给 v1.0 分析。预言机完整性套件由一条命令运行,不需要网络、凭据或模型;它审计基准自己的预言机,并打印表 1 所报告的缺陷类 × 检测器矩阵。端到端分析可由再一条命令从存档回合复现,该命令既不读取 API 密钥也不打开网络连接,并且若环境里存在密钥就拒绝运行,以免声称的离线复现悄悄变成在线复现。套件的接口宽四项操作,因此可以指向另一个工具链的预言机,而不必改套件本身。
  • 大语言模型的使用。语言模型是本研究的实验材料:它们充当被测的工具调用智能体、生成测试输入的用户模拟器、产生中文任务说明的译者(带第 3.3 节所述的机械保真检查),以及第 4.3 节的独立裁定者。模型在全文中按名称和版本指明,给裁定者和译者的提示随包发布。语言模型也协助起草了文稿和分析代码;作者审阅并对全部内容、分析和结论负责。

参考文献

只保留作者、题名与定位,编号按原文出现顺序中的姓氏排列。

  • Agrawal 等,2026,Translating the translator,https://arxiv.org/abs/2609.15079 。
  • Barr 等,2015,The oracle problem in software testing,IEEE TSE 41(5)。
  • Barres 等,2026,τ²-bench,ICML,https://arxiv.org/abs/2506.07982 。
  • Bellibatlu 等,2026,Do agent benchmarks do what they say,https://arxiv.org/abs/2609.37315 。
  • Bjarnason 等,2026,On randomness in agentic evals,https://arxiv.org/abs/2602.07150 。
  • Chen 等,2018,Metamorphic testing,ACM Computing Surveys 51(1)。
  • Dou 等,2025,SimulatorArena,EMNLP。
  • Haq 与 Saldías,2026,Dialect vs demographics,FAccT,https://arxiv.org/abs/2604.21152 。
  • Hofman 等,2026,MAPS,Findings of EACL。
  • Hou 等,2024,Large language models for software engineering,ACM TOSEM 33(8)。
  • Jain 与 Sandhu,2026,UserProxyBench,https://arxiv.org/abs/2609.38043 。
  • Jia 与 Harman,2011,mutation testing 综述,IEEE TSE 37(5)。
  • Kehkashan 等,2026,From benchmarks to deployment,Artificial Intelligence Review。
  • Khanal 等,2026,Beyond pass@1,https://arxiv.org/abs/2603.29231 。
  • Khosravi 与 Huo,2026,Rank confidence sequences,https://arxiv.org/abs/2609.32211 。
  • von Kistowski 等,2015,How to build a benchmark,ICPE。
  • Kitchenham 等,2002,Preliminary guidelines for empirical research in software engineering,IEEE TSE 28(8)。
  • Kuang 等,2026,BabelArena,arXiv:2609.23490。
  • Lee 等,2026,KnowSim,https://arxiv.org/abs/2608.17150 。
  • Li 等,2026,PolyWorkBench,https://arxiv.org/abs/2607.06008 。
  • Liu 与 He,2026,Disclosure-gated user simulation,https://arxiv.org/abs/2609.00982 。
  • Luo 等,2014,An empirical analysis of flaky tests,FSE。
  • Luo 等,2026,Lost in execution,ACL。
  • Ma 等,2026,Verifiable user simulation,10.1145/3805712.3808645。
  • Mahmood 等,2026,Multilingual prompt localization for agent-as-a-judge,https://arxiv.org/abs/2604.04532 。
  • Ni 等,2026,A survey on LLM-based conversational user simulation,EACL。
  • Recht 等,2019,Do ImageNet classifiers generalize to ImageNet,ICML。
  • Sekulić 等,2024,Reliable LLM-based user simulator,https://arxiv.org/abs/2402.13374 。
  • Seshadri 等,2026,Lost in simulation,ACL。
  • Sierra Research,2024,τ-bench,https://github.com/sierra-research/tau-bench 。
  • Taday 等,2026,persona-conditioned LLMs,https://arxiv.org/abs/2602.18462 。
  • Tonneau 等,2026,Different demographic cues,https://arxiv.org/abs/2601.18486 。
  • UserSim Organizers,2026,UserSim workshop,https://usersim-workshop.github.io/ 。
  • Winter 等,2022,artifact evaluations 十年回顾,ESEC/FSE。
  • Yehudai 等,2026,A survey on evaluation of LLM-based agents,Findings of ACL。
  • Yin,2026,Does the judge prefer English,https://arxiv.org/pdf/2606.14278 。
  • Zhang 等,2022,Machine learning testing,IEEE TSE 48。
  • Zheng 与 Yang,2026,near-tied LLM rankings,https://arxiv.org/abs/2609.00482 。
  • Zhou 等,2023,SOTOPIA。
  • Zhou 等,2026,Mind the sim2real gap in user simulation,https://arxiv.org/abs/2603.11245 。

出处:Junjie Chen,When Agent Evaluation Becomes Unreliable: An Empirical Study of Oracle Failures and Configuration-Dependent Measurement in an LLM Agent Benchmark,2026-10-12,https://arxiv.org/abs/2610.16067 ,CC BY 4.0。

Found it useful? Pass it on

WeChat

Scan with WeChat to open it on your phone and forward it.

Subscribe via RSS

Submit a correction