背景:终态评分放过了什么
多数智能体基准的判分方式是看终态:任务跑完之后,检查环境最终状态是否符合预期。假设用户要求「把重复扣款 C2 退掉并通知他」,终态评分只检查 C2 最终有没有被退款。这个判法在多数情况下够用,但它默认了一件事——只要结果对,过程就是对的。
在真实业务里这个默认不成立。如果智能体先查了 C1、看到金额 49.99 美元,随后直接对 C2 退款 49.99 美元,而金额恰好对上,终态评分会判它赢。可实际上 C2 的状态从未被核实过,这笔退款是蒙对的。金额一旦不一致,就是一笔错误的资金操作——而这类操作的代价,往往不在评测集里。
SafeActBench 的出发点正是这个盲区:正确的结果不等于有支撑的行动。它要测的不是智能体能不能把事做成,而是它在按下那个会改变外部状态的按钮之前,是否真的建立了对应的证据。
两篇论文把同一件事拆成了两半来看:SafeActBench 测「该不该做、有没有依据做」,伴生研究测「明知道工具没用还做不做」。两半的结论完全一致——模型知道答案,但知道不等于执行;提示词能改变模型怎么说,改不了它怎么做;真正能改的是 Harness 那一层。
SafeActBench 的设计:证据台账与五个协议
由 Princeton、新加坡国立大学、香港浸会大学与 AWS 的研究者共同构建的 SafeActBench,包含 656 个用例,覆盖六个运营领域:客户运营、工程基础设施、法律与财务工作流、研究辅助、智能家居控制和医疗。它的判分不依赖终态,而是维护一份带溯源约束的证据台账(Evidence Ledger),配合确定性轨迹评估器,跟踪「什么信息在何时被建立、动作在何时发生、下游依赖是否被满足」。
| 协议 | 用例数 | 考察内容 | 对应失败形态 |
|---|---|---|---|
| Legacy | 86 | 对候选动作的静态允许 / 阻止 / 推迟判断 | 静态策略问答 |
| V0 | 175 | 已调查的不作为:需完成调查以证明为何应 withholding 变更调用 | 过早停止调查 |
| V1 | 131 | 建立前置条件后的单动作执行 | 抢跑、证据未绑定 |
| V2 | 132 | 线性多动作链,后续调用消费前序动作凭证 | 凭证链断裂 |
| V3 | 132 | 依赖受限的 DAG 工作流 | 未解前置、执行不完整 |
五个协议合计 656 个用例(86+175+131+132+132)。这套设计的价值在于把「知道」和「做到」拆成了可分别测量的两段:Legacy 测的是模型在静态提示下的判断,V0 到 V3 测的是它在真实交互循环里的行为。后面会看到,这两段之间的落差正是全篇最重要的数字。
评测覆盖了十款模型—Harness 组合,来自五个模型家族:Claude Opus 5(配 Claude Code 与 Inspect AI)、GPT-5.6 Sol(配 Codex 与 Inspect)、DeepSeek-V4-Flash(配 DSH 与 Inspect)、Qwen3.8-Flash(配 Qwen Code 与 Inspect)、GLM-5.2(配 ZCode 与 Inspect)。每个模型都同时跑自家 Harness 与通用评测框架 Inspect AI,这本身就构成了一次 Harness 对照实验。
主结果:静态判断与交互执行的断崖
在静态的 Legacy 协议上,十款配置中有九款落在 91.9% 到 97.7% 之间。即便 GLM-5.2 配 ZCode 这一组合,静态判断准确率也有 97.7%——在这个配置下它是十款里静态成绩最高的一档。单看这一列数据,很容易得出「模型已经懂得什么时候该收手」的结论。
| 配置 | 静态 Legacy | V1 单动作 | V3 DAG | 整体精确用例成功率 |
|---|---|---|---|---|
| Claude Opus 5 + Claude Code | 91.9%–97.7% 区间 | 60.3% | 65.9% | 67.2% |
| Qwen3.8 + Qwen Code | 91.9%–97.7% 区间 | 未见披露 | 未见披露 | 66.0% |
| GPT-5.6 + Codex | 91.9%–97.7% 区间 | 未见披露 | 未见披露 | 65.4% |
| DeepSeek-V4 + DSH | 91.9%–97.7% 区间 | 未见披露 | 未见披露 | 63.0% |
| GLM-5.2 + ZCode | 97.7% | 32.1% | 未见披露(V2 为 12.1%) | 未见披露 |
把两列并排放,落差就很直观了:静态判断能到九成以上,进入交互后整体精确成功率最高的配置是 Claude Opus 5 配 Claude Code 的 67.2%。GLM-5.2 配 ZCode 的落差尤其刺眼——静态 97.7%,V1 单动作 32.1%,V2 线性链只剩 12.1%。同一个模型、同一个 Harness,只是从「问我该不该做」变成「真的去做」,表现掉了六十多个百分点。
更严格的一处对照是:当研究者把 V1 任务的用例身份固定住(即同一批题),那些在静态评测中拿到 95% 以上的配置,在交互运行里的上限是 52%。这个数字比 67.2% 更值得记住,因为它剔除了题目难度差异,纯粹衡量「从静态到交互」这一步的损耗。
诊断:失败发生在工具调用之前
既然交互成功率掉了这么多,先要问的是:掉在哪一步?论文 Table 3 给出了一组很有信息量的分解。
| 指标 | 含义 | 观测区间 | 读数含义 |
|---|---|---|---|
| CAS 条件动作成功率 | 证据已齐备时,单次动作是否调用正确 | 93.2%–100%(十款中九款),Opus 5 与 DeepSeek-V4-DSH 均为 100.0% | 「用正确的参数调正确的工具」基本已解决 |
| PAR 抢跑率 | V1 上未完成必要核查就触发变更工具的比例 | 37.0%(Qwen3.8-Inspect)至 66.9%(GLM-5.2-ZCode);Opus 5-Claude Code 38.8%,GPT-5.6-Codex 45.8% | 近四成到三分之二的失败是「抢跑」 |
| BSR 过早停止率 | V0 不作为任务上,未证明不安全就提前停止调查 | 21.7%–62.9% | 该继续查的时候不查,也是失败 |
这组数字把失败点定位得非常清楚:一旦智能体真的把必要证据收集齐了,它调用工具的准确度在九款配置里都超过 93%,两款甚至达到 100%。也就是说,「会不会用工具」不是问题。问题出在上游——在工具调用应该发生之前的那一小段:要么证据还没建好就抢跑(PAR 37% 至 66.9%),要么该继续查的时候先放弃了(BSR 21.7% 至 62.9%)。
如果瓶颈是「模型不会调用工具」,那么补提示词、给示例、做微调都有道理。但数据说明瓶颈在「什么时候不该调用」。这是一个时序与前置条件问题,而不是能力问题——它天然属于运行时的职责范围,不属于提示词能稳定覆盖的范围。
干预实验:抽走证据、加警示、加社会反驳
论文还做了一组更锋利的对照:在 43 个 V1 用例上,研究者从工具输出里抽走那条决定性记录,看智能体还会不会执行变更动作。结果是动作概率下降了 37.2 到 45.2 个百分点——下降幅度不小,但远没有降到零:DeepSeek-V4、GLM-5.2 与 Qwen3.8 在完成的任务中,仍有 46.5% 到 53.5% 照常执行了状态变更动作。
更具体的是这 66 次「证据被抽走仍触发变更」的运行中,有 65 次此前都调用过那个受影响的查询工具。翻译成人话:模型查了数据库,拿到的是空或缺失记录,然后依然按下了按钮。它并不是不知道要查——它查了,只是没把「查不到」当成「不能做」。
接下来是两处提示层干预的结果,值得单独记录:
- 在系统提示里明确警告「缺少证据不等于安全」:对三款模型的置信区间都包含零,即观察不到可靠效果。
- 在提示里加入用户的相反说法(「这条记录我已经核对过了,没问题」):DeepSeek 与 Qwen 的动作次数降到 43 次中的 6 次。
这两条放在一起相当耐人寻味:模型对提示中的社会性反馈反应强烈,对数据库里缺失的行却几乎无动于衷。这也解释了为什么「再写一条系统提示」这类常见修复手段在真实系统里效果不稳定——它改变的是模型的表达方式,不是它触发动作的条件。
第三组对照是 Harness 层:在固定模型与任务集的前提下,仅更换 Harness 就能让精确用例成功率移动最多 6.8 个百分点(DeepSeek-V4 在 DSH 下比 Inspect 高 4.4 点,Claude Opus 5 在 Claude Code 下比 Inspect 高 4.2 点)。更值得注意的是,两个不同 Harness 包裹同一个 Qwen3.8 时,在 570 个用例中有 134 个判出了不同结果,分歧率 23.5%。这意味着在许多运行里,「成不成」不完全由模型决定。
伴生研究:判定无用,却照查不误
来自南洋理工大学、新加坡国立大学、A*STAR、北卡罗来纳大学教堂山分校与卡内基梅隆大学的研究者,从另一侧切入了同一个问题。他们在 HotpotQA 与 FEVER 检索任务上控制检索源持续返回无关段落,测试七款智能体:Qwen2.5-7B、Llama-3.1-8B、Qwen3-8B、Qwen3-32B、Claude Haiku 4.5、Claude Sonnet 5,以及经 PPO 在 HotpotQA 上训练过的 Search-R1。
| 观测项 | 结果 | 含义 |
|---|---|---|
| 识别无用结果的比例 | 97%–100%(全部被测模型) | 模型完全知道检索源失效了 |
| 连续判定五次无用后停止作答的比例 | 七款无辅助智能体中有五款至多 7%;Qwen3-8B 在 292 题中停止 1 次;Claude Haiku 4.5 在 284 题中作答 1 次 | 知道没用,仍烧光步数预算 |
| Harness 强制在第 5 次无用后停止 | Claude Haiku 4.5 凭记忆答对 284 题中的 114 题 | 不是不会答,是没人让它停 |
| 提示里允许凭记忆作答 | Qwen3-8B 在检索源即将恢复时仍提前放弃 55% 的题目 | 提示层修复带来反向伤害 |
| 展示步数预算与计数器 | 7B–8B 模型把 51%–79% 的答案压到最后一步;预算从 8 步翻倍到 16 步后,答案整体后移到第 16 步,工具调用多烧 61%–71%,准确率零提升 | 模型学会了「卡点」,没学会判断 |
| 开启推理模式(Qwen3-32B) | 97% 的失效源问题凭记忆作答;在会恢复的检索源上有 47% 提前退出 | 推理能力不解决停止时机 |
| RL 检索训练(Search-R1) | 仍有 45% 的失效源运行耗尽全部预算 | 训练也没有补上这个缺口 |
研究者几乎把工程师常用的提示层修复试了一遍:写入停止规则、给每次调用标价 0.05、把「已连续无用次数」直接注入上下文窗口(decide 条件)。结果是这些手段要么只部分生效,要么带来反向伤害——时间匹配的停止对比度 Δ 始终为负(−0.14 至 −0.24)。
需要说明一处口径:这篇论文测试的七款智能体偏早期与小参数世代(Qwen2.5-7B、Llama-3.1-8B、Haiku 4.5 等),与 SafeActBench 测试的当世代旗舰并不在同一梯队。因此两组数据的绝对值不可互比,可互比的是形态——模型「知道」与模型「执行」的分离,在不同代际上都稳定出现。
结论交集:闸门必须建在 Harness 层
两篇论文最后指向了同一条架构边界:提示词告诉模型该怎么谈论证据,而运行器才决定哪些工具调用真的能发出去。伴生研究给出的数字很硬——当 Harness 强制实施「连续 k=5 次模型自己判定无用的结果后移除检索工具、只留终止动作」的顺序规则时,时间匹配停止对比度 Δ 从负值跃升到 +0.33 至 +0.40,所有开源模型与 Claude Haiku 4.5 的整体平均准确率提升 2.6 到 9.7 个百分点,步数预算翻倍也不再引发工具调用膨胀。
还有一个对成本敏感的细节:这套规则甚至不需要额外调用一个 LLM 裁判来给工具输出打分。一个轻量级关键词读取器去解析智能体自己的推理痕迹里是否出现「无关」「无用」之类表述,与带侧信道的规则相比准确率差距在 0.01 以内。
综合两项研究,可以提炼出两条已被实验支撑的工程模式:
- 对变更类工具加前置条件状态闸门:读工具保持开放,把写、删、退款这类变更工具包一层确定性前置检查。若 refund_charge(charge_id) 要求会话状态台账里已存在 get_charge(charge_id) 的凭证且状态为 duplicate,就让 Harness 在调用到达 API 之前直接拒绝。
- 基于轨迹的运行长度断路器:在循环控制器里跟踪连续空结果或低重叠的工具响应,达到 k 次后把该工具从下一步的 schema 里摘掉,而不是在提示里请求模型别再调它。
这两条的共同点是:都不要求模型变得更聪明,只要求运行器承担它本就该承担的时序与状态责任。这与近期 Harness 工程的整体走向一致——把可靠性从提示层下沉到运行层。
口径警示与冷静判断
- 静态与交互分数不可直接互比:Legacy 与 V0–V3 的任务构成、用例数量、判分方式都不同,两者之差衡量的是「协议难度差」与「从知道到做到的损耗」的叠加,不宜单独归因。
- 部分单元格未披露:公开报道只给出部分配置的整体分与部分协议分,V1/V3 分列数据并不完整,本文表格中标注为「未见披露」的格子不应被当作缺失值填补。
- 伴生研究的模型代际偏早:七款被测智能体以早期与小参数世代为主,其绝对表现不代表当世代旗舰水平,两篇论文的数值不可跨研究比较。
- 干预样本量偏小:抽走决定性记录的对照只有 43 个 V1 用例,结论方向明确但精度有限,引用时应视作方向性证据而非精确估计。
- 提示层「无效」是条件性结论:这里的无效是指在被测配置与被测任务上观察不到可靠改善,不等于提示工程在所有场景下都没有价值;它的含义是「不要把提示当作安全闸门」。
- Harness 分歧率需谨慎解读:同一模型在两个 Harness 下 23.5% 的结果分歧,既说明 Harness 影响显著,也可能包含评测框架本身的实现差异,不宜直接换算为「Harness 决定两成结果」。
- 领域覆盖有限:六个运营领域虽涵盖客户运营、医疗等场景,但均为模拟环境,真实系统的权限、审计与回滚机制未在评测范围内。
把两组数据放在一起,得到的结论比任何单项分数都更有用:智能体的可靠性缺口,主要不在「会不会做」,而在「什么时候不该做」。这个缺口无法用提示词稳定修补,因为它是运行时的时序与状态问题;但它可以在 Harness 层用确定性规则低成本地补上——前置条件闸门与运行长度断路器这两条,在实验中分别带来了可观测的成功率提升与步数收敛。对正在把智能体接进生产系统的团队,这大概是本轮评测里最值得抄走的一条。目前官方及行业暂未披露更多细节,后续将持续跟进迭代动态。