CodexQA

行业与实践研究与基准测试

评判看见评测所要求的内容了吗?面向 LLM 智能体评测的输入保证

CodexQA 团队阅读约 30 分钟

一条 30 条轨迹的流水线里,哈希匹配、检查通过、暂存成功,仍漏掉全部结构化工具调用,60 个被评步骤里 53 个是空白。恢复调用后,J0 的后续上下文反差从 13 降到 2。

本文目录

评判看见评测所要求的内容了吗?面向 LLM 智能体评测的输入保证

Boming Xia 1 , Qinghua Lu 2 , Runze Li 3 , Dino Sejdinovic 4 and Liming Zhu 2

单位: 1 Responsible AI Research Centre, Adelaide University, Australia(阿德莱德大学负责任人工智能研究中心,澳大利亚) 2 CSIRO, Australia(澳大利亚联邦科学与工业研究组织) 3 UNSW Sydney, Australia(新南威尔士大学悉尼分校,澳大利亚) 4 Adelaide University, Australia(阿德莱德大学,澳大利亚)

摘要

LLM 评判从文本数据包评估智能体步骤。渲染器把记录下来的运行转成这些数据包,软件检查器则按要求检验记录和数据包。我们问:什么证据表明一个数据包就是评测所要求的,并提出四项输入保证义务:所需内容在渲染后仍然保留,检查器覆盖其要求,一次失败的检查阻止后续使用,以及评判读到的是最后被检查过的字节。在一条含 30 条轨迹的流水线里,哈希匹配、检查器通过和暂存成功(把数据包复制给评判)与四项义务的违反同时存在,后两项出现在集成测试中。渲染器漏掉了每一次结构化工具调用,使 60 个被评判步骤中的 53 个成为空白,尽管哈希仍然匹配。对一种评判配置,后续上下文使错误步骤上的错误标记比正确步骤多增加 13 个。恢复每一次调用把这一反差降到 2,减少了 11(每条轨迹 0.37,95% 聚类自助区间为 0.17 到 0.53)。在结束于被评判步骤的数据包上,该配置对每一个空白步骤至少弃权一次,另外四种配置有时弃权,但也会把空白的错误步骤和正确步骤标成错误。两个分别编写的检查器都接受了一条没有匹配调用的工具结果。在集成测试中,替代评判的桩读到了一次失败构建的数据包,以及一份在暂存之后被改过的副本。三项新增控制在桩读到任何数据包之前拦住了 19 个构造故障案例中的 18 个。剩下的那份过期脚本从未运行。我们把这些义务变成四项测试,并计划评估它们向独立流水线的迁移。

索引术语:

AI 工程,LLM 智能体,LLM 充当评判,评测软件,输入校验,测试预言机,故障注入

I 引言

LLM 评判被用来评估使用工具的智能体在记录下来的运行(轨迹)中的单个步骤 [1, 2]。 在我们研究的流水线里,渲染器把结构化轨迹记录变成给评判的文本数据包。 两个软件检查器按书面要求检验源记录和数据包。 智能体可以让消息文本为空,而只把动作放在结构化的工具调用字段里。 如果渲染器只复制消息文本,它就会漏掉这次调用,使被评判的步骤看起来是空白。 数据包仍可以与其记录的哈希匹配,因为哈希只表明字节没有改变。

我们问:什么证据能够确立评判的输入满足评测的要求,并把这种证据称为输入保证。 该输入必须满足的内容与校验规则构成评判的输入契约。 我们为准备该输入的软件提出四项义务:(1)所需内容在渲染后仍然保留,(2)每个检查器覆盖其写明的要求,(3)一次失败的检查阻止后续使用,(4)评判读到的是最后被检查过的字节。 每一项都需要不同的证据:内容要与源记录比较,要求覆盖要用违反案例,失败处理要用集成测试,完整性要在使用时做字节检查。

这条流水线比较轨迹前缀(结束于被评判步骤)上的判断与完整轨迹上的判断,以评估后续上下文如何改变错误标记。 它的渲染器保留了工具结果,但漏掉了每一次结构化工具调用,使原始数据包中 60 个被评判步骤里的 53 个成为空白。 我们把这些数据包与调用已恢复的数据包作比较。调用已恢复的数据包在每个数据包全程恢复调用。比较在五种评判配置(模型、提示和投递设置)下进行。 使用原始数据包时,从前往后的完整数据包在第一种配置 J0 下,使错误步骤上的错误标记增加 15 个,正确步骤上增加 2 个,反差为 13。 调用恢复之后,这一反差为 2。

研究软件可以在有缺陷的情况下仍然产出可复现的结果 [3],直接的数据校验可以暴露从模型质量上看不出来的问题 [4]。 关于评测支架的工作处理实现选择与可复现性 [5],基准审计则找出任务设置和评分中的缺陷 [6]。 AgentRewardBench 表明,轨迹的表示方式会影响评判与专家的一致性 [1]。 评判稳健性研究考察被故意改过的输入 [7],没有内容的回答也可以得到有利裁决 [8, 9]。 故障注入研究考察智能体失败 [10, 11],SPADE 则为 LLM 流水线输出合成并选择断言 [12]。 与这些研究不同,我们考察的是:从渲染到使用,评判的输入契约是否被保留并被强制执行,以及流水线自己的检查对评判所读字节确立了什么。 我们把两个分别编写的检查器当作测试预言机来评估 [13],并用一个记录桩代替评判,以观察集成测试中被读到的字节。

在真实数据包上,两个检查器都通过了,暂存(把数据包复制给评判并检查其哈希)也成功了。 然而变异案例表明,两者都接受了一条没有匹配调用的工具结果,代码检查还发现一处永远不可能失败的哈希比较。 构造的集成测试表明,失败的或被改过的数据包仍然能够到达使用点。 这些缺陷反映的是已有的软件工程关切:不完整的测试预言机 [14],分别编写的程序中的共同失败 [15],冗余断言 [16],构建失败处理 [17],以及检查时刻与使用时刻之间的间隙 [18]。 基于输出的测试要求故障的影响到达一个被观察到的结果 [19],但评判的回答虽然受到这一遗漏的影响,并没有指出缺失的调用。 在前缀数据包中,一个空白步骤是引出弃权还是错误标记,取决于评判配置。

本文作出三项贡献。 它把已有的保证实践组织成四项义务,针对记录下来的轨迹与评判输入之间的边界,并为每一项给出直接测试(表 I)。 它展示了一种被匹配哈希所保留的渲染遗漏、被通过的检查器所错过的要求,以及在集成测试中被读到的失败或被改过的数据包,并度量恢复调用如何改变一项基于评判的反差。 它在 19 个构造故障案例上评估 3 项控制,并提出对这些测试向独立流水线迁移的评估。

II 案例与研究设计

II-A 目标与渲染

每一次判断针对一个智能体步骤,即目标步骤,它被标在一份文本数据包里。数据包包含任务上下文和记录下来的轨迹消息。 前缀数据包结束于该步骤、位于其工具结果之前,而完整数据包一直延续到轨迹结束。 我们使用 AgentProcessBench [2] 中的 BFCL(Berkeley Function-Calling Leaderboard)[20] 和 tau2 [21](带有模拟用户工具调用的客户服务)子集。 该基准把智能体步骤标为 +1(正确且有效)、0(中性)或 -1(不正确或有害)。 依赖于某个错误的步骤保持为 -1,直到该错误被纠正,或一个独立子任务开始。 这些标签用来选择目标,但不放进评判数据包。

图 1:增加控制之前的流水线(上),以及一个错误目标 bfcl:527 在其源记录和前缀数据包中的样子(下)。原始(O)数据包漏掉了该目标的工具调用,调用已恢复(R)的数据包则包含它。在两次抽取中,J0 对 O 弃权,对 R 回答 yes。虚线箭头标出检查器的位置,它们的方框列出其所读输入。下游步骤并不强制执行检查器的结果。

图中文字:

  • 结构化
  • 轨迹
  • 构建 R
  • 数据包
  • O/R
  • 归档
  • 暂存:
  • 复制 + 哈希
  • 已暂存
  • 数据包文件
  • 分发:
  • 评判读取副本
  • 内联检查器:
  • 源、内存中的数据包、O 归档
  • 磁盘检查器:
  • 源 + 已归档文件
  • 清单 + 作业列表
  • 发出脚本

图 1:增加控制之前的流水线(上),以及一个错误目标 bfcl:527 在其源记录和前缀数据包中的样子(下)。原始(O)数据包漏掉了该目标的工具调用,调用已恢复(R)的数据包则包含它。在两次抽取中,J0 对 O 弃权,对 R 回答 yes。虚线箭头标出检查器的位置,它们的方框列出其所读输入。下游步骤并不强制执行检查器的结果。

每条被选中的轨迹贡献两个目标步骤。 错误目标是最早的、开始一段 -1 标签连续区间的工具调用步骤。 比较目标是更早、距离最近、被标为 +1 的工具调用步骤。 在 500 条轨迹中,应用这些规则并排除此前运行用过的 32 条之后,剩下 99 条。 早先的一项研究用固定种子从中随机抽取 30 条,14 条 BFCL、16 条 tau2,我们复用该队列(补充表 S1 与第 I 节)。

原始渲染器保留了消息角色和文本,但漏掉了结构化工具调用字段(messages[].tool_calls)。 因此,消息文本为空的目标看起来是空白:30 个错误目标中的 26 个,以及 30 个比较目标中的 27 个(60 个中的 53 个)。 其余七个有文本,但仍然丢失了它们的调用。

我们比较原始(O)数据包和调用已恢复(R)数据包(图 1)。 O 逐字节复用早先研究归档的数据包,并且每一个仍然与其记录的哈希匹配。 R 在其来源消息的文本之后,把每一个缺失的调用插入为 [TOOL CALL] name(arguments),并保留调用顺序和参数。 R 在每个数据包全程恢复调用,而不只在目标处恢复,因此 O/R 比较针对的是整个渲染。 在两种渲染中,工具结果都省略了工具名以及把它们连到调用上的 id,tau2 数据包还省略了工具定义。 因此 R 恢复了调用行,但并不是完整渲染(补充第 I 节)。 两种目标类型、两种数据包范围和两种渲染给出八个格子,每格 30 个数据包,共 240 个数据包。 每种评判配置为每个数据包安排两次分开的判断(抽取),即每种配置 480 次,共识错误标记要求两次抽取都回答 yes。 对每种渲染,反差为 G=(F_{E}-P_{E})-(F_{C}-P_{C}),其中 F 和 P 分别统计完整数据包和前缀数据包中的共识标记,E 和 C 分别表示错误目标和比较目标。

II-B 流水线与证据

构建器创建 R 数据包,并为全部 240 个 O/R 数据包写出一份期望哈希的清单,以及一份为每次抽取指定其数据包的作业列表。 暂存把数据包复制到另一个文件夹,并对照清单检查其文本的哈希。 发出把作业列表变成脚本,标明每次抽取的数据包,分发则运行这些脚本。 两个软件检查器校验的是源记录和数据包,而不是判断智能体行为。 内联检查器在构建器内部、暂存之前运行,磁盘检查器稍后重新读取源记录和已归档的 O/R 数据包。 本研究的书面计划给两个检查器都分配了十项要求,包括调用的放置位置和已暂存文件的哈希(补充第 II 节)。 两个检查器根据同一份计划分别编写,磁盘检查器的编写者没有阅读构建器的代码。

两个检查器都报告,十项要求在真实数据包上全部满足,并且 J0 在诊断运行中判断了全部 240 个数据包(第 V 节)。 我们阅读了两个检查器的代码,并在合法输入以及 38 个构造的变异案例上运行它们。每个变异案例都意图通过改变源记录、内存中的数据包或已保存文件来违反一项要求。 当变异仍然存在而检查器却报告没有问题时,我们计为一次漏检。 共享变异案例是其中 34 个,其改动到达了两个检查器都会读取的输入(补充第 II 节)。

十二个集成测试考察:在一次失败的检查或文件改动之后,数据包是否仍能到达后续步骤。 我们在四种累积条件下分别运行 19 个构造故障案例:P0 没有新增控制,P1 到 P3 依次加入控制(第 IV 节)。 八个案例复用了变异案例或集成测试,十一个使用按固定规则选择的新注入点。 这些测试中,一个记录桩代替评判,并对它读到的任何数据包做哈希,从而表明哪些字节到达了使用点。

表 I:输入保证的义务及其测试(第 VI 节)、本案例显示出的情况和控制。第 1 行使用真实数据包,第 2 到 4 行使用代码检查和构造案例。已测试:在本研究中实际执行。建议:尚未执行。

义务与测试本案例显示出的情况控制与状态
1. 所需内容在渲染后仍然保留。测试:渲染一个只放在结构化字段里的动作数据包漏掉了每一次调用,却仍与其哈希匹配恢复调用行(R):已测试
2. 检查器覆盖其要求。测试:在它所覆盖的对象上、并在它所覆盖的流水线步骤上违反每一项要求两者都接受了一条被注入的、没有匹配的结果,并且都不读取已暂存副本反向匹配(P3):在三个案例上已测试。磁盘检查器修复:建议
3. 一次失败的检查阻止后续使用。测试:在失败之后继续一次失败构建的数据包被暂存并被读取失败即停止(P1):已测试
4. 评判读到的是最后被检查过的字节。测试:改动一个已检查的文件桩读到了一份在暂存之后被改过的副本,以及一份在暂存之前换了行尾的数据包使用前检查(P2):在暂存之后已测试。构建时的精确字节哈希在暂存时检查:建议

III 通过的检查器没有显示出什么

检查器可以通过,却没有覆盖每一项被分配的要求(义务 2)。 覆盖取决于它检查哪些性质、读取哪些文件,以及何时运行。 两个检查器都接受了真实数据包,但代码检查和变异案例表明,两者都没有检查没有匹配调用的工具结果,也没有检查已暂存副本。

III-A 一项只在一个方向上被检查的要求

一项要求是:源记录中的工具调用与结果要一一匹配。 两个检查器都核实了每一次调用都有结果,但没有核实每一个结果都有调用。 内联检查器的循环从调用出发,并跳过没有调用的消息:

tcs = m.get("tool_calls") or [] if not tcs: continue

当我们向一条源记录加入一个没有匹配调用的工具结果并重新构建数据包时,两个检查器都成功退出。 这是 34 个共享变异案例中唯一一个两者都接受的案例。 在这 34 个案例中,内联检查器在两处违反仍然存在时成功退出,磁盘检查器在一处违反仍然存在时成功退出。 它们的错误输出在 23 个和 30 个案例中分别指向被违反的要求,其余非零退出则指出了其他失败或发生崩溃(补充表 S3)。 磁盘检查器拒绝了一条无效的 JSON 参数字符串,而内联检查器接受了它。 这一共同遗漏说明,为什么不能假定基于同一份计划、分别编写的检查器会独立失败 [15]。

III-B 一项在错误文件上被检查的要求

计划要求 240 个已暂存文件,每个文件的哈希与其清单条目匹配,并把这项要求分配给两个检查器。 内联检查器在暂存创建这些文件之前运行,因此它无法检查它们。 磁盘检查器运行得更晚,但它读取的是已归档数据包,而不是已暂存副本或写出的清单。 只有暂存自己的哈希检查把已暂存文件与清单作了比较。

磁盘检查器自己的哈希比较,用它已经载入的归档文本构造期望哈希,然后再次对同一段未改动的文本做哈希。 这里 O 和 R 保存那段已载入文本,m 是由它构造的期望哈希条目:

"sha256": sha256_hex(txt), ... txt = (O if rend == "O" else R)[(rid, cond)] if sha256_hex(txt) != m["sha256"]: sha_bad += 1

由于两个哈希都来自同一段未改动的文本,这一比较检测不到被改过的文件。 它与软件测试中冗余断言的失败机制相同 [16]。 要覆盖被分配的已暂存文件要求,磁盘检查器必须检查已暂存文件集合,并把每个副本的哈希与先前记录的清单条目比较(表 I)。

表 II:19 个构造故障案例在累积控制下的结果,以及记录桩的读取情况。P0 在失败后继续,P1 在失败时停止,P2 还在使用前检查文件,P3 还把每一个结果匹配到一次调用。

故障与注入点案例数P0 下的结果首次停止或拒绝
恢复的调用在构建期间被删除或改动5被改过的数据包被读取P1:构建
恢复的调用在构建之后被删除1被改过的数据包被读取P1:暂存
源记录中的参数 JSON 无效1被改过的数据包被读取P1:磁盘检查
向源记录加入没有匹配的结果3被改过的数据包被读取P3:反向匹配
清单哈希在构建之后被破坏3暂存失败后仍读到未改动的数据包P1:暂存
失败的构建,但先前的输出仍然存在1读到先前构建的输出P1:构建
数据包在暂存之后被改动3被改过的数据包被读取P2:分发之前
暂存之前存在额外文件1运行完成,并多出一个已暂存文件P2:分发之前
额外的过期脚本1脚本未被使用无:在 P0–P3 下都未使用
合计19

IV 成功的暂存没有拦住什么

在加入控制之前,下游步骤并不要求更早的步骤已经成功,而且当评判读取已暂存数据包时,没有任何东西检查其字节(义务 3 和 4)。

IV-A 后续步骤读到了失败的和被改过的数据包

在一个集成测试中,构建器写出一个缺少目标工具调用的数据包,并以错误退出。 测试故意继续经过暂存和发出。 两者都成功了,记录桩在两次排定的抽取中都读到了被改过的数据包。 暂存通过,是因为失败的构建用同一段被改过的文本写出了数据包及其清单哈希。 在另一个测试中,我们在暂存通过之后改动一个已暂存数据包,桩读到了被改过的字节:这是检查时刻到使用时刻的间隙 [18]。 第三个测试在构建之后、暂存之前,把一个数据包的行尾改成 CRLF。 暂存把数据包当作文本做哈希,并把 CRLF 规范化为 LF,因此检查通过,尽管桩读到的是被改过的字节(补充第 III 节)。

IV-B 不同的控制拦住不同的案例

我们在四种累积条件下运行 19 个构造故障案例(表 II)。 P0 即使更早的步骤失败也调用后续步骤,并且只分发为该次运行发出的脚本。 P1 在某一步以错误退出,或某个必需的检查器没有报告成功时停止。 P2 在暂存时记录每个已暂存数据包的精确字节哈希,并在磁盘检查之前和之后,对照这些哈希检查已归档数据包。 在分发之前,它要求本次运行的校验成功,并且期望的、未改动的已暂存文件、清单、作业列表和脚本都在。 记录桩也在读取时检查每个数据包的哈希(补充第 IV 节)。 P3 增加反向匹配:源记录中的每一个工具结果都必须回应一次调用,包括模拟用户作出的调用。

P1 拦住了 11 个案例。 P2 又拒绝了四个案例的分发:三个在暂存之后被改动的数据包,以及一个额外的已暂存文件。 三个没有匹配结果的案例通过了 P2,因为两个检查器都没有强制反向匹配,而且它们的文件保持未改动;P3 拦住了它们。 剩下的案例是一个额外的过期脚本,在每一种条件下都未被使用。 在 P0 下,被 P1 到 P3 拦住的 18 个案例中有 14 个导致读取了被改过的或过期的数据包。 两个没有注入故障的案例(未改动的队列,以及一个在暂存文件夹之外放了无关文件的案例)在所有条件下都完成了,诊断运行中桩读到的每一个数据包都与清单中的哈希匹配。 在单独的测试中,P2 和 P3 下的桩在两次抽取中都拒绝了一个在分发前最后一次检查之后被改动的数据包。 暂存之前作出的行尾改动不在这 19 个案例之中。 根据代码检查,P2 和 P3 会接受它:暂存对规范化后的文本做哈希,精确字节的数据包哈希只从暂存才开始。

V 评判的回答没有显示出什么

恢复调用改变了 J0 的反差,但评判的回答并没有指出缺失的调用(义务 1,表 III)。 每个评判都被指示只使用所提供的数据包,来决定目标步骤对用户任务是否不正确或起反作用。 允许的回答是 yes、no 和 cannot_decide。

表 III:每个格子 30 个目标中的共识错误标记(两次抽取都为 yes),原始(O)到调用已恢复(R)的数据包。

错误目标比较目标(+1)
键模型别名前缀完整前缀完整
J0claude-opus-52\to 2017\to 220\to 22\to 2
J1gpt-5.6-terra22\to 1913\to 1815\to 96\to 3
J2gpt-5.6-luna22\to 2012\to 2123\to 78\to 5
J3claude-sonnet-58\to 219\to 157\to 94\to 3
J4qwen3.6:27b21\to 1918\to 1617\to 715\to 4

J0 的 O 与 R 抽取以随机交错的顺序运行,以限制与时间相关的混杂,每一次都在新的会话中从文件读取其数据包。 记录下来的读取返回了每一个数据包的每一行。 J1 到 J4 稍后运行,以考察配置之间的差异,它们在提示中收到数据包文本,并且没有工具。 对每一次 J1 到 J4 请求,记录下来的哈希与按下述方式计算的哈希匹配:先取清单所列数据包字节,再跟一个分隔换行。 我们在配置层面解释差异,因为模型、提示包装、输出模式强制、推理设置、客户端与服务软件、数据包投递和日期是一起改变的(补充第 V 节和第 VI 节)。

对 J0,错误前缀的标记数从 O 的 2 升到 R 的 20:18 个目标获得了共识标记,没有一个失去标记(补充表 S9)。 使用 O 数据包时,完整数据包在错误目标上比前缀数据包多 15 个标记,在比较目标上多 2 个,得到 G=13。 17 个错误完整标记中有 14 个涉及在原始前缀数据包中为空白的目标,J0 曾在这些目标上弃权。 使用 R 数据包时,G=2,减少了 11(每条轨迹 0.37)。 对由共享用户请求形成的 22 个聚类重抽样,并固定已记录的裁决,给出该减少量的 95% 自助区间(按轨迹)为 0.17 到 0.53,恢复后反差的区间为 -0.05 到 0.21(补充表 S7)。 使用 O 数据包时,J1 到 J4 的反差为 0、5、4 和 -1,而 J0 为 13。

在 J0 的原始前缀数据包中,两次抽取对全部 26 个空白错误目标都弃权,并且对 27 个空白比较目标中的每一个,至少有一次抽取弃权。 这样的弃权不能产生共识错误标记。 在 R 前缀数据包中,没有任何一次 J0 抽取对这些目标弃权。 在同样的空白 O 前缀目标上,J1 到 J4 标出了 26 个错误目标中的 20、20、7 和 19 个,以及 27 个比较目标中的 13、22、7 和 17 个(补充表 S8)。 共识错误标记并不能揭示目标动作是否出现在数据包中,弃权也不能指出缺失的调用。 在 J3 下,30 个原始错误前缀数据包中有 17 个至少一次抽取弃权;在 J1、J2 和 J4 下为 3 到 6 个,全部发生在空白目标上(补充第 VI 节)。 基准标签是用完整轨迹指定的,因此空白前缀错误目标上的标记并不能确立评判检测出了被省略动作的错误。 把数据包内容直接对照其来源做校验,可以不依赖评判回答而指出缺失的调用 [4]。

VI 启示

LLM 评判,无论是在评估智能体步骤,还是在标注软件制品 [22],都只是测量过程的一部分:来源选择、渲染、检查和回答汇总也会塑造它的结果。 在本案例中,回答模式没有表示输入有缺陷的类别,J0 在空白的原始前缀目标上的弃权被计为没有错误标记。 完整数据包随后在其中一些目标上产生标记,促成了所测得的反差,尽管它们的工具调用仍然被省略。 对构念效度 [23] 的工程含义是:评测应当报告评判输入满足其要求的证据。 下面四项测试为输入契约提供直接证据,不需要实时调用评判,需要时使用记录桩,并且可以在输入表示或流水线组件改变时充当回归测试。 每项测试都包含一个必须继续被接受的合法输入。

测试 1:渲染所需内容。 从输入契约为每种数据包类型导出必需字段和排除字段。 渲染一条文本为空、动作只在结构化字段中的消息,然后对照来源检查该动作的名称、参数和位置。 检查被排除的信息仍然不在,例如基准标签,或前缀数据包中目标的工具结果。 对截图或无障碍树,对照来源检查契约所要求的信息,并允许被许可的变换。 作为次级诊断,把弃权与 no 分开报告,并检查被标为正确的步骤上的错误标记。

测试 2:违反每一项要求。 对每一项要求,写明其对象、流水线步骤和期望行为,然后用预期通过和预期失败的案例测试其谓词。 对一一关系,两个方向都要测:有调用无结果,以及有结果无调用。 内容检查应从源记录取得期望值,完整性检查则应把当前字节的哈希与一份在它必须检测的任何改动之前记录下来的参照作比较。 契约必须与评测目标一致:这里要求合法 JSON,但当被评判的正是畸形调用的行为时,就应当保留这些畸形调用。 要求和检查必须覆盖每一个参与者:模拟用户作出了该队列 311 次调用中的 40 次,一个只从助手消息取调用的匹配器把它们的全部 40 个结果都标成没有匹配。

测试 3:在失败之后继续。 让一项必需检查失败,同时保留失败运行或更早运行的数据包,然后调用正常的下游入口。 要求失败运行的任何输出,或被拿来顶替它的过期输出,都不得到达评判或记录桩。 如同构建失败处理 [17],失败的前提必须挡住依赖它的工作。 失败构建写出的清单可以与其有缺陷的输出精确匹配,因此哈希匹配并不授权使用。

测试 4:在使用前改动一个已检查的文件。 对基于文件的输入,在暂存之后改动一个已暂存数据包,并另行在分发前的最后一次检查之后再改一次。 两种情形都要求在使用前拒绝。 P2 从暂存到使用的哈希比较,类似于 in-toto 框架的文件完整性检查 [24]。 在构建时记录、在暂存时检查的精确字节哈希,也能检测构建与暂存之间作出的改动,包括行尾改动。 J0 的文件读取工具返回数据包时并不检查其哈希。 对这样的评判,在读取时验证,或投递已校验字节而不再做一次未检查的读取,可以补上这一间隙。 对其他投递方式,要测试最后一次检查与使用之间的边界。

范围。

这项探索性案例研究考察一条流水线。该流水线是在发现其渲染遗漏之后被选中的,含有来自 22 个不同用户请求的 30 条轨迹。 这些控制是在同一队列上开发的,在两个没有注入故障的案例上测试,并在了解代码之后写出的构造故障案例上评估。

未来评估。

我们计划在两个目标上测试迁移:AgentRewardBench 的轨迹到评判流水线 [1],其截图和无障碍树输入需要改写测试 1;以及为留出的 AgentProcessBench 轨迹独立编写的评判适配器。 对每个目标,一位没有看过其检查器的评估者将根据其文档和评测目标,导出输入契约、适用的义务,以及合法案例和故障案例。 我们将在看到这些案例之前改写测试。 评估者在没有看到测试结果的情况下,将把观察到的流水线行为对照每一项适用义务所要求的行为进行分类。 这些分类将为统计检出的违反和误报提供参照,两者都带分母。 我们还将记录改写工作量,以及修复在相同配置下是否改变评判结果。 在预先定义的案例上,如果一项测试检出其义务的每一项已确认违反,且不把合规行为标成问题,则该测试发生了迁移。 若某项适用义务没有案例或没有已确认的违反,则检出仍然未经评估。

VII 结论

基于 LLM 的评测不仅取决于评判,也取决于它的输入。 在本案例中,被省略的工具调用在哈希匹配的情况下仍然存在,而在数据包全程恢复调用,把 J0 的后续上下文反差从 13 改成了 2。 两个检查器在一个变异案例中都接受了没有匹配的工具结果,而构造的集成测试暴露了失败处理和检查到使用之间的间隙。 这些发现促成四项输入保证义务,每一项都有一项直接测试。

制品。

制品仓库提供研究计划、已发布的观察、用于重建、重放和再分析的源代码与脚本:https://anonymous.4open.science/r/evaluation-artifact-342B/。

参考文献

[1] X. H. Lù, A. Kazemnejad, N. Meade, A. Patel, D. Shin, A. Zambrano, K. Stańczak, P. Shaw, C. J. Pal, and S. Reddy (2025). AgentRewardBench: evaluating automatic evaluations of web agent trajectories. In Proceedings of the Second Conference on Language Modeling (COLM). Note: arXiv:2504.08942. Cited by: §I, §I, §VI. 中文题名:AgentRewardBench:评估对网页智能体轨迹的自动评估。著录:第二届语言建模会议(COLM)论文集。注:arXiv:2504.08942。被引用于:第 I 节、第 I 节、第 VI 节。

[2] S. Fan, X. Ye, Y. Huo, Z. Chen, Y. Guo, S. Yang, W. Yang, S. Ye, J. Chen, H. Chen, X. Cong, and Y. Lin (2026). AgentProcessBench: diagnosing step-level process quality in tool-using agents. In Proceedings of the 32nd ACM SIGKDD Conference on Knowledge Discovery and Data Mining V.2. External Links: Document. Cited by: §I, §II-A. 中文题名:AgentProcessBench:诊断使用工具的智能体的步骤级过程质量。著录:第 32 届 ACM SIGKDD 知识发现与数据挖掘会议论文集第 2 卷。外部链接:文档。被引用于:第 I 节、第 II-A 节。

[3] S. Papi, M. Gaido, A. Pilzer, and M. Negri (2024). When good and reproducible results are a giant with feet of clay: the importance of software quality in NLP. In Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 3657–3672. External Links: Document. Cited by: §I. 中文题名:当良好且可复现的结果是泥足巨人:软件质量在自然语言处理中的重要性。著录:计算语言学协会第 62 届年会论文集(第 1 卷:长文),第 3657–3672 页。外部链接:文档。被引用于:第 I 节。

[4] E. Breck, N. Polyzotis, S. Roy, S. E. Whang, and M. Zinkevich (2019). Data validation for machine learning. In Proceedings of the 2nd SysML Conference, Palo Alto, CA, USA. Cited by: §I, §V. 中文题名:机器学习的数据校验。著录:第 2 届 SysML 会议论文集,美国加利福尼亚州帕洛阿尔托。被引用于:第 I 节、第 V 节。

[5] S. Biderman, H. Schoelkopf, L. Sutawika, et al. (2024). Lessons from the trenches on reproducible evaluation of language models. arXiv preprint arXiv:2405.14782. Cited by: §I. 中文题名:来自一线的教训:语言模型的可复现评测。著录:arXiv 预印本 arXiv:2405.14782。被引用于:第 I 节。

[6] Y. Zhu, T. Jin, Y. Pruksachatkun, et al. (2025). Establishing best practices for building rigorous agentic benchmarks. arXiv preprint arXiv:2507.02825. Cited by: §I. 中文题名:为构建严格的智能体基准确立最佳实践。著录:arXiv 预印本 arXiv:2507.02825。被引用于:第 I 节。

[7] S. Dev, A. Sloan, J. Kavner, N. Kong, and M. Sandler (2026). Judge Reliability Harness: stress testing the reliability of LLM judges. arXiv preprint arXiv:2603.05399. Note: Accepted at the ICLR 2026 Agents in the Wild Workshop. Cited by: §I. 中文题名:Judge Reliability Harness:对 LLM 评判可靠性的压力测试。著录:arXiv 预印本 arXiv:2603.05399。注:被 ICLR 2026 Agents in the Wild 研讨会接收。被引用于:第 I 节。

[8] X. Zheng, T. Pang, C. Du, Q. Liu, J. Jiang, and M. Lin (2025). Cheating automatic LLM benchmarks: null models achieve high win rates. In Proceedings of the Thirteenth International Conference on Learning Representations (ICLR). Cited by: §I. 中文题名:欺骗自动 LLM 基准:空模型取得高胜率。著录:第十三届学习表征国际会议(ICLR)论文集。被引用于:第 I 节。

[9] Y. Zhao, H. Liu, D. Yu, et al. (2025). One token to fool LLM-as-a-judge. arXiv preprint arXiv:2507.08794. Cited by: §I. 中文题名:一个词元就能骗过充当评判的 LLM。著录:arXiv 预印本 arXiv:2507.08794。被引用于:第 I 节。

[10] G. Tan, Z. Sun, J. Shi, T. Zhang, Z. He, Q. Wu, S. Liang, W. Sun, J. He, P. Chen, C. Zhang, L. K. Shar, and D. Lo (2026). AgentChaos: chaos engineering for agent systems via programmatic fault injection. arXiv preprint arXiv:2608.06790. Note: Accepted at ASE 2026. External Links: Document. Cited by: §I. 中文题名:AgentChaos:通过程序化故障注入对智能体系统做混沌工程。著录:arXiv 预印本 arXiv:2608.06790。注:被 ASE 2026 接收。外部链接:文档。被引用于:第 I 节。

[11] Z. Seyedghorban, E. Klimov, A. van Deursen, A. Panichella, and B. Kulahcioglu Ozkan (2026). Observability and fault injection for LLM-based multi-agent systems in software engineering. In Proc. IEEE Int. Conf. Software Testing, Verification and Validation (ICST), pp. 211–215. External Links: Document. Cited by: §I. 中文题名:软件工程中基于 LLM 的多智能体系统的可观测性与故障注入。著录:IEEE 软件测试、验证与确认国际会议(ICST)论文集,第 211–215 页。外部链接:文档。被引用于:第 I 节。

[12] S. Shankar, H. Li, P. Asawa, M. Hulsebos, Y. Lin, J. D. Zamfirescu-Pereira, H. Chase, W. Fu-Hinthorn, A. G. Parameswaran, and E. Wu (2024). SPADE: synthesizing data quality assertions for large language model pipelines. Proceedings of the VLDB Endowment 17 (12), pp. 4173–4186. External Links: Document. Cited by: §I. 中文题名:SPADE:为大语言模型流水线合成数据质量断言。著录:Proceedings of the VLDB Endowment 第 17 卷第 12 期,第 4173–4186 页。外部链接:文档。被引用于:第 I 节。

[13] G. Jahangirova, D. Clark, M. Harman, and P. Tonella (2016). Test oracle assessment and improvement. In Proceedings of the 25th International Symposium on Software Testing and Analysis (ISSTA), pp. 247–258. External Links: Document. Cited by: §I. 中文题名:测试预言机的评估与改进。著录:第 25 届软件测试与分析国际研讨会(ISSTA)论文集,第 247–258 页。外部链接:文档。被引用于:第 I 节。

[14] E. T. Barr, M. Harman, P. McMinn, M. Shahbaz, and S. Yoo (2015). The oracle problem in software testing: a survey. IEEE Transactions on Software Engineering 41 (5), pp. 507–525. External Links: Document. Cited by: §I. 中文题名:软件测试中的预言机问题:综述。著录:IEEE Transactions on Software Engineering 第 41 卷第 5 期,第 507–525 页。外部链接:文档。被引用于:第 I 节。

[15] J. C. Knight and N. G. Leveson (1986). An experimental evaluation of the assumption of independence in multiversion programming. IEEE Transactions on Software Engineering SE-12 (1), pp. 96–109. External Links: Document. Cited by: §I, §III-A. 中文题名:对多版本编程中独立性假设的实验评估。著录:IEEE Transactions on Software Engineering SE-12 卷第 1 期,第 96–109 页。外部链接:文档。被引用于:第 I 节、第 III-A 节。

[16] A. Peruma, K. Almalki, C. D. Newman, M. W. Mkaouer, A. Ouni, and F. Palomba (2019). On the distribution of test smells in open source Android applications: an exploratory study. In Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering (CASCON), pp. 193–202. Cited by: §I, §III-B. 中文题名:开源 Android 应用中测试坏味道的分布:一项探索性研究。著录:第 29 届计算机科学与软件工程国际年会(CASCON)论文集,第 193–202 页。被引用于:第 I 节、第 III-B 节。

[17] R. M. Stallman, R. McGrath, and P. D. Smith (2023). GNU make: a program for directing recompilation. for GNU make version 4.4.1 edition, Free Software Foundation. Note: Section 5.5, Errors in Recipes. Cited by: §I, §VI. 中文题名:GNU make:一个指导重新编译的程序。著录:GNU make 4.4.1 版,自由软件基金会。注:第 5.5 节,配方中的错误。被引用于:第 I 节、第 VI 节。

[18] D. Dean and A. J. Hu (2004). Fixing races for fun and profit: how to use access(2). In 13th USENIX Security Symposium (USENIX Security 04). External Links: Link. Cited by: §I, §IV-A. 中文题名:为乐趣和收益修复竞态:如何使用 access(2)。著录:第 13 届 USENIX 安全研讨会(USENIX Security 04)。外部链接:链接。被引用于:第 I 节、第 IV-A 节。

[19] J. M. Voas (1992). PIE: a dynamic failure-based technique. IEEE Transactions on Software Engineering 18 (8), pp. 717–727. Cited by: §I. 中文题名:PIE:一种基于动态失败的技术。著录:IEEE Transactions on Software Engineering 第 18 卷第 8 期,第 717–727 页。被引用于:第 I 节。

[20] S. G. Patil, H. Mao, F. Yan, et al. (2025). The Berkeley function calling leaderboard (BFCL): from tool use to agentic evaluation of large language models. In Proceedings of the 42nd International Conference on Machine Learning, PMLR, Vol. 267, pp. 48371–48392. Cited by: §II-A. 中文题名:伯克利函数调用排行榜(BFCL):从工具使用到大语言模型的智能体评测。著录:第 42 届国际机器学习会议论文集,PMLR 第 267 卷,第 48371–48392 页。被引用于:第 II-A 节。

[21] V. Barres, H. Dong, S. Ray, X. Si, and K. Narasimhan (2025). \tau^{2}-Bench: evaluating conversational agents in a dual-control environment. arXiv preprint arXiv:2506.07982. Cited by: §II-A. 中文题名:\tau^{2}-Bench:在双控制环境中评估对话智能体。著录:arXiv 预印本 arXiv:2506.07982。被引用于:第 II-A 节。

[22] T. Ahmed, P. Devanbu, C. Treude, and M. Pradel (2025). Can LLMs replace manual annotation of software engineering artifacts?. In Proceedings of the IEEE/ACM 22nd International Conference on Mining Software Repositories (MSR). External Links: Document. Cited by: §VI. 中文题名:LLM 能否取代对软件工程制品的人工标注?著录:IEEE/ACM 第 22 届软件仓库挖掘国际会议(MSR)论文集。外部链接:文档。被引用于:第 VI 节。

[23] P. Ralph and E. Tempero (2018). Construct validity in software engineering research and software metrics. In Proceedings of the 22nd International Conference on Evaluation and Assessment in Software Engineering (EASE), pp. 13–23. External Links: Document. Cited by: §VI. 中文题名:软件工程研究与软件度量中的构念效度。著录:第 22 届软件工程评估与考核国际会议(EASE)论文集,第 13–23 页。外部链接:文档。被引用于:第 VI 节。

[24] S. Torres-Arias, H. Afzali, T. K. Kuppusamy, R. Curtmola, and J. Cappos (2019). In-toto: providing farm-to-table guarantees for bits and bytes. In Proceedings of the 28th USENIX Security Symposium, pp. 1393–1410. Cited by: §VI. 中文题名:In-toto:为比特和字节提供从产地到餐桌的保证。著录:第 28 届 USENIX 安全研讨会论文集,第 1393–1410 页。被引用于:第 VI 节。

觉得有用,转给同事

微信扫码

用微信扫一扫,在手机上打开后即可转发。

用 RSS 订阅

提交勘误