证据优先的智能体验证 Evidence-First Agentic Verification
调查与验证分离,先核实状态与轨迹中的证据再下判定,抗奖励黑客且更便宜
前置知识
Rubric(评分量规)
Rubric 把“任务做得好不好”拆解成一组成文的判据(criteria),每条判据描述一个可检验的要求,如“操作利润率计算正确”“报告数值与执行中取回的数据一致”。评价时对每条判据给出 MET(满足)/UNMET(未满足)的二值判定,适用于答案不唯一、无法用精确匹配或自动化测试检查的长程开放任务。本文每个任务平均带约 26 条人工标注判据。
SAURON 的输入就是一組 rubric 判据,全文围绕“如何可靠地给每条判据下判定”展开,理解 rubric 是读懂实验设置的前提。
LLM-as-a-Judge 与智能体法官
用 LLM 给模型输出打分或下判定的评估范式。传统 LLM 法官只看放进 prompt 的文本(如智能体的最终回答),容易被位置偏差、长度偏差和自报告误导。智能体法官(agentic judge)更进一步,可以调用工具主动在环境里翻找证据,如 Gandalf 会自适应检查产物与环境状态。本文证明一个关键事实:能访问证据不等于结论有据。
SAURON 的四个基线(Gandalf、AAAJ、Archipelago、Autorubric)全部属于这两类范式,理解它们的差异才能看懂对比实验的设计意图。
奖励黑客
在强化学习中,策略针对有缺陷的奖励函数优化,学会钻空子拿高奖励却没有真正完成任务。具体到本文场景:如果 rubric 判定被用作 RL 奖励,而法官轻信智能体“我已完成任务”的自报告,策略就会学会编造令人信服的虚假成功报告来骗取奖励。论文用故障注入套件 PAFault 显式模拟了规范博弈、评估感知捷径、捏造声明等此类行为。
这是 SAURON 要解决的核心风险——验证器的错误判定会被 RL 放大成智能体的系统性不良行为,也是 PAFault 实验的存在理由。
执行轨迹与环境状态
环境状态 S 指任务结束后环境的最终快照,包括各种键值和产物文件(如保存的报告、账户目标金额),反映“最终结果”;执行轨迹 τ 指智能体行动与观察的逐步记录(中位数 53 个事件、20 次工具调用),反映“过程做了什么”。两者互补:保存的报告里写了余额是多少,而轨迹里才看得到查的是哪个账户。
SAURON 的核心设计就是同时调查这两个来源,并交叉核对二者的一致性,这直接对应结果型、过程型、一致性三类判据。
有界查询
一种受限的证据检索模式:完整轨迹和状态始终不进入验证器上下文,按需通过宽查询(定位相关条目、产物或轨迹事件)和窄查询(取具体值、产物片段或短轨迹窗口)分步获取,每次返回内容有上限,整个会话还有总预算约束。访问思路接近 RLM——把长输入当作可编程检查的外部环境而非一次性塞进上下文。
这是 SAURON 成本低于最强基线、速度更快的关键机制,也是消融实验的重点考察对象(全轨迹入上下文成本 3.03 倍只换来 +0.01 F1)。
研究动机
长程半可验证智能体任务(如财务规划、个人助理)无法靠精确匹配判分,业界普遍用 rubric 判据加 LLM 法官评分,并把判定结果当作 RL 奖励。问题在于:判定所需的证据散落在三处——智能体的最终回答、环境最终状态、执行轨迹。论文开篇的例子很典型:“追踪二月支出并更新购房基金报告”的任务,智能体只回了一句“Done—report updated”,背后却横跨 51 个轨迹事件和多次环境变更;检索到的账户数据只存在于轨迹里。传统 LLM 法官只看最终回答,Autorubric 这类纯文本法官在 PA100 上的 F1 从未超过 0.70;智能体法官虽然能访问环境(如 Gandalf),但“能访问”不等于“结论有据”——法官可能看错地方漏掉证据,也可能接受缺乏支撑的断言,尤其容易轻信智能体自己的成功报告。一旦这类错误判定进入 RL 循环,策略会学会钻空子:编造令人信服的虚假成功来骗取奖励,这正是奖励黑客在评估管线中的具体形态。
本文的目标是本文要构建一个证据优先的智能体验证器 SAURON,让每条 rubric 判据的 MET/UNMET 判定都建立在经过独立核实的证据之上。具体目标包括四点:其一,同时调查环境状态与执行轨迹,既能核对最终结果(状态),也能核对过程动作(轨迹),还能交叉验证两者一致性;其二,每条断言必须先对照其来源独立验证后才能被采信,每个判定附带可审计的证据回执;其三,通过有界查询和按共享证据聚类判据,把长任务验证的上下文占用与成本压下来。量化目标是在 PA100(100 个长程个人助理任务、2,586 条人工标注判据)上超过 Gandalf 等四个基线的 F1 同时成本更低,并在故障注入套件 PAFault 上做到高检出注入故障(含模拟奖励黑客)、低误报干净对照。最终在 GPT-5.6 Sol 上 F1 达 0.96、成本比 Gandalf 低 23%,全部达标。
与已有工作不同的是,已有工作的盲点是把“访问证据”当成“验证证据”:Gandalf 让法官自适应翻查环境产物与状态,Agent-as-a-Judge 为代码任务设计了模块化取证流程,但调查和验证仍由同一个模型一肩挑,调查者此前的推理会污染后续判断。SAURON 的独特切入是把声明级事实性核查(把回答拆成原子声明逐条对证)引入 rubric 验证,并把核对对象从单一文本扩展到状态、轨迹以及两者的一致性。每个待验断言被形式化为证据原子 $a=(x,t,\ell)$——断言 $x$、证据类型 $t$ 和来源定位符 $\ell$ 的三元组,由一个隔离的验证器只看断言和被引用的原文做判断,切断调查推理带来的偏见。此外,作者注意到验证器可靠性直接决定 RL 奖励的可信度,因此设计了成对故障注入评估(覆盖规范博弈、评估感知捷径、捏造声明等 13 类故障),用 $\Delta_{\text{fault}}$ 显式量化“被奖励黑客利用的脆弱性”,这是以往法官论文缺失的评估视角。
核心方法
SAURON 的直觉像一个不轻信下属汇报的审计员:汇报者(调查员)去现场取证并提出断言,但每条断言都要由另一个人(验证员)回到原始账本核对后才能写进结论,最终每条结论都附上引用了哪些证据的回执。技术路线分三步(Figure 1):第一步规划(每个任务一次),用小模型把 rubric 判据按“可能共享证据”聚类——例如“保存的 Amazon 总额是否与取回数据一致”和“报告前是否查过 Chase 账户”都依赖 Chase 账户数据,归为一簇,并生成一份简短的任务摘要 g;第二步调查(每簇一个并行会话),调查员通过有界查询自适应地翻查状态与轨迹,提出断言交给证据验证器核实,结果写入该簇共享的证据库;第三步决策,调查员另行提出判定,终结器只在被核实断言足以支撑时才接受判定,并记录证据回执。整个过程中完整的状态和轨迹从不进入模型上下文,只按需取回相关片段。
核心创新是调查与验证的强制分离。已有智能体法官(Gandalf、AAAJ)让同一个模型边找证据边下结论,即使有环境访问权,判定也可能是“先有结论再找证据”。SAURON 规定:调查员提出的每条断言必须附带证据类型 $t$ 和来源定位符 $\ell$,构成证据原子 $a=(x,t,\ell)$;验证器据此从原始来源取回被引内容,再按类型选检查方式——精确型断言(如“存储的购房基金目标为 $20,000”)用机械比对,声明值等于存储值即通过;解释型断言交给一个隔离的忠实性检查器,它只看到断言和被引文段,看不到调查员的推理过程,从而抑制先入为主的偏见;定位符取不到来源的断言直接拒绝并退回理由。被拒原子与通过原子都记入证据库,形成完整审计线索。最终,终结器只在被核实断言足以支撑时接受判定建议,每条接受的判定都附带列出所用原子的回执。一句话总结:断言不核实就不能引用,判定没有回执就不算数——这是与所有基线的本质区别。
方法步骤详情
完整流程如下。第一步规划:输入用户请求 $u$、最终回答 $y$、状态 $S$、轨迹 $\tau$ 与判据集 $C$,小模型按可能共享的证据把判据聚类并生成任务摘要 g,摘要只起导航作用、不可作为证据引用。第二步并行调查:每簇启动一个调查员会话,每轮根据待判判据和已收集证据选择下一个有界查询——宽查询定位相关条目或事件(如 state_search("Amazon") 命中 4 处含 feb_summary.md),窄查询取具体值、产物片段或短轨迹窗口(如 state_get(budget.house_fund.goal) 读出 $20,000,trace_ordering(e12, e35) 核对事件先后);查询返回量有上限,会话有总预算。第三步断言提交:调查员为每个判据提出断言并标注证据类型与定位符。第四步证据验证:验证器按定位符取回原文,机械比对或隔离忠实性检查,被拒原子连同理由退回,调查员可修正后重提。第五步判定终结:调查员提出 MET/UNMET 建议,终结器核对所引被核实原子是否足以支撑,接受则写入回执。第六步收尾:会话在全部判据判定完毕或预算耗尽时结束,未决判据默认 UNMET。
技术新颖性
技术新颖性体现在三个融合。其一是把声明级事实性评估(把回答拆成原子声明逐条对证)迁移到智能体验证,但核对对象扩展为最终状态(结果型判据)、执行轨迹(过程型判据)和两者交叉一致性(如保存的 Amazon 总额 $1,147 与轨迹中取回的 $1,832.48 不符),这个三源组合此前没有工作同时覆盖。其二是访问模式:受 RLM 启发,用有界查询让完整轨迹和状态始终留在上下文之外,消融显示换成全轨迹入上下文 F1 仅 +0.01 但成本 3.03 倍、调查轮数 2.65 倍,证明该模式几乎无损而大幅省钱。其三是联合调查:按共享证据聚类判据,一次读取 Chase 账户数据同时服务 Amazon 总额和 Chase 查询顺序两条判据,相比 Gandalf 的固定大小分批更合理;消融显示去掉聚类成本升 63%、轮数升 2.55 倍而 F1 只降 0.01。另外,针对“判定作为 RL 奖励”场景设计成对故障注入与 $\Delta_{\text{fault}}$ 指标(检出率减误报率),在验证器论文中也是新的评估口径。
实验结果
三个基准上的结论一致。PA100(2,586 条人工标注判据,GPT-5.6 Sol):SAURON 取得 F1 0.96、MCC 0.94、成本 $297.69,领先 Gandalf(0.92 / 0.89 / $388.25)、Archipelago(0.92 但成本 $2,058,为其 6.9 倍)、AAAJ(0.52)与 Autorubric(0.65,八个骨干上从未超过 0.70);SAURON 在全部八个骨干上 F1 均第一,平均领先 Gandalf 0.03 F1、成本约低 20%,精确率 0.94 对 0.90、召回率 0.97 对 0.94;过程判据子集 PAProc(411 条)上领先扩大到 0.97 对 0.90,直接体现轨迹访问的价值。PAFault(637 对故障-对照,13 类故障):$\Delta_{\text{fault}}$ 达 0.95——检出 97% 注入故障、仅误报 2% 干净对照;即便给基线喂全轨迹,Gandalf_trace 与 Autorubric_trace 也只有 0.67 和 0.71,且前者成本是 SAURON 的 4.7 倍;在“状态不一致”和“静默写失败”两族上,带轨迹基线低至 −0.27 和 −0.94(放行对照比抓故障还多),SAURON 为 0.90 和 1.00。TRAIL(148 条真实错误轨迹):GAIA 上 wF1 0.53、定位 0.73、联合 0.44,全面超过 Gandalf 与 TRAIL 自带法官(最好 0.46 / 0.55 / 0.25);SWE-bench Lite 上 wF1 0.68 领先,但成本 $841 为基线 2-3 倍。消融(PAAbl 860 条):去状态访问掉 0.15 F1(最大降幅),去断言验证掉 0.03 而省 40% 成本,全轨迹入上下文仅 +0.01 F1 但成本 3.03 倍,去聚类 −0.01 F1 但成本 +63%。人工分析 65 例人机分歧:48 例(约 74%)是 SAURON 读判据更严格,仅 3 例涉及证据本身误读;效率上 10 集切片 17 分钟对 Gandalf 的 71 分钟,八路并发仍快 2.1 倍。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| PA100 长程个人助理任务评分(100 集、2,586 条判据,GPT-5.6 Sol) | F1(UNMET 为正类) | 0.96(MCC 0.94,成本 $297.69) | Gandalf 0.92(MCC 0.89,$388.25);Archipelago 0.92($2,058) | +0.04 F1、+0.05 MCC,成本降低 23%,八个骨干上 F1 全部第一 |
| PA100 过程判据子集 PAProc(411 条,需轨迹证据) | F1 | 0.97 | Gandalf 0.90(无轨迹访问);Autorubric 0.77 | +0.07,且在全部八个骨干上对 Gandalf 的领先都大于结果判据子集 |
| PAFault 成对故障注入(13 族 × 49 对,含模拟奖励黑客) | Δfault(故障检出率 − 干净对照误报率) | 0.95(检出 0.97,误报 0.02,$0.21/变体,30 秒/变体) | Gandalf_trace 0.67、Autorubric_trace 0.71、AAAJ 0.36,默认配置基线均 <0.10 | +0.24 以上,成本仅为最强带轨迹基线的约 1/4.7 |
| TRAIL 真实错误检测与定位(GAIA 117 条轨迹,GPT-5.6 Sol) | wF1 / 定位准确率 / 联合准确率 | 0.53 / 0.73 / 0.44 | Gandalf 0.46 / 0.53 / 0.25;JudgeTRAIL 0.46 / 0.55 / 0.22 | wF1 +0.07、定位 +0.18、联合 +0.19(成本 $841 高于基线 2-3 倍) |
| TRAIL SWE-bench Lite(31 条轨迹,GPT-5.6 Sol) | wF1 | 0.68 | Gandalf 0.61;JudgeTRAIL 0.47 | +0.07;GPT-5.6 Terra 版 SAURON 以约一半成本达到相同水平 |
局限与改进
作者承认的局限:其一,人机分歧分析显示 65 例分歧中 48 例(约 74%)源于 SAURON 比标注者读判据更严格——34 例因字面措辞或单个子句未满足而判 UNMET,14 例对负面判据(描述不良行为的判据)的违反计数更苛刻,说明严格性校准仍是开放问题;其二,会话预算耗尽时未决判据默认 UNMET,预算设定会直接影响结果;其三,TRAIL 上成本是基线的 2-3 倍($841 对 $405-441),因为排查“轨迹中不存在某类错误”需要检查整条轨迹,有界查询在此收益有限。我的补充观察:忠实性检查器本身也是一次模型调用,验证环节仍可能出错,只是把单点错误概率压低;验证强依赖环境暴露可查询的状态接口和结构化轨迹(含工具调用摘要),对只有黑盒文本日志的环境不适用;PA100 与 PAFault 抽自 Scale AI 内部 700 集语料,独立复现主结果的口径受限;消融只在 860 条判据的 PAAbl 子集上做,部分结论(如机械检查可去除、gist 只影响效率)的统计功效有限。
独立分析的弱点
独立分析四个弱点。第一,判据聚类和证据共享预判由小模型完成,若聚类错误会把不相关判据塞进同一会话,既浪费预算又可能诱导调查员张冠李戴,而论文未报告聚类质量本身——改进方向是允许会话中途分裂或重聚类,并监控簇内证据命中率作为质量信号。第二,未决判据默认 UNMET 的设计在预算紧张时系统性偏向悲观判定,而 UNMET 恰是 F1 的正类,预算配置可能虚增论文主指标,这在“判定作为 RL 奖励”场景下会反向惩罚未完成任务之外的正常行为——改进方向是把“预算耗尽”单列为 UNCERTAIN 状态并单独报告。第三,验证器对模糊引用很不友好:Figure 3 的 a3 案例表明定位符取不到来源就一票否决,但真实环境中产物路径不规范、轨迹事件无索引的情况很常见,可能错杀真实但难定位的证据——可为调查员提供定位辅助查询或允许模糊定位符降级处理。第四,全部评估基于固定的事后轨迹(PA100 用 Opus 4.8 智能体的录像),无法回答在线场景下验证器能否跟上智能体执行节奏,也未测试多智能体协作或工具返回不确定值的情形——需要在线验证与更丰富环境类型的补充实验。
未来方向
作者在结论中明确把“将证据优先验证作为 RL 奖励来源”留作未来工作——既然 PAFault 证明 SAURON 能识破规范博弈、评估感知捷径和捏造声明等模拟奖励黑客,下一步自然是把它接入 rubric-based RL 训练循环,检验策略在抗黑客验证器下是否收敛到真实任务能力而非利用法官。基于成果可延伸的方向包括:其一,验证器与智能体的博弈演化——当策略知道法官会核对轨迹时,可能出现“伪造轨迹-状态一致性”的新攻击面,需要审计轨迹本身真实性的机制;其二,在线验证,把事后核查前移到执行过程中,在不可逆动作(发送邮件、转账)发生前拦截;其三,把回执机制反哺数据质量——论文中 74% 的人机分歧源于判据措辞歧义,回执可以自动定位低质量标注判据,改进 rubric 撰写规范;其四,降低 TRAIL 类“全轨迹排查”场景的成本,例如按错误类别先验分配预算、层次化排查或跨轨迹共享类别级证据。
复现评估
论文给出代码仓库 github.com/rsanayei/sauron,方法复现的工程路径清晰:调查员、验证器、终结器都是标准 LLM 调用,加上一组状态/轨迹查询接口(state_summary、state_get、state_search、trace_search、trace_ordering、trace_tool_calls 等),无需训练任何模型,主要工程量在实现有界查询层和会话预算管理。数据方面:TRAIL 是公开基准,可直接复现表 3 的对比;但 PA100 和 PAFault 抽自 Scale AI 内部 700 集个人助理语料(含 2,586 条人工标注判据),论文未承诺完整开源,独立复现 PA100 的绝对数字大概率不可行,只能自建类似环境验证趋势。算力与成本:无需 GPU 训练,纯推理 API 成本——PA100 全量约 $298(GPT-5.6 Sol),10 集切片串行 17 分钟、八路并发再提速 2.1 倍,个人研究者在几百美元预算内即可复现主要对比实验;总体难度中等偏低,瓶颈在标注数据而非算力。
论文图表