一个工具型 Agent 可以先检查权限、拒绝越权请求,甚至连续多轮都没有做错事,最后却在用户换一种说法、声称已有批准后,把受限文件发给外部联系人。若评测只保存第一轮拒绝,系统看起来是安全的;若把工具调用和权限变化一起保留到最后,它已经越过了边界。
9 月 14 日发布的 BLINDSPOT 把这一差别作为评测对象。它不只问攻击是否成功,而是追踪用户消息、Agent 回复、工具调用、工具返回、授权状态和环境变化组成的完整轨迹,再判断 Agent 是否在该行动发生的那一刻做出了正确选择。论文的关键贡献不是证明某个模型“最安全”,而是把安全从一次回复的属性改成一段运行过程的属性。
一次正确拒绝,可能在后续施压中失守
此前的长时安全评测已经说明,多轮交互会放大风险。AgentLAB 用 5 类长时攻击、28 个环境和 644 个测试案例检验 Agent;MT-AgentRisk 则把单轮有害任务改造成多轮工具交互,并报告多轮设置下攻击成功率平均增加 16%。BLINDSPOT 并非第一个测试长时攻击的基准,它推进的是另一个问题:Agent 何时该做、何时该拒绝,以及这个边界能否维持。
为此,BLINDSPOT 把轨迹分成五类。禁止操作被拦下是“正确拒绝”,禁止操作真正改变了环境是“危险完成”;允许的任务正常完成是“安全完成”,被无依据地挡住则是“过度拒绝”。工具故障或环境中断使结果无法判断时,单独记为“不确定”,不混入安全或失败。
这套分类避免了一个常见假象:什么都拒绝的 Agent,攻击成功率可能很低,却无法完成正常工作。论文为攻击场景构造安全孪生版本,只改变决定操作是否合法的条件,用相近任务同时测危险完成率、正常完成率和过度拒绝率。安全因此不再等同于“更爱说不”,而是能否对权限、对象和环境状态的真实变化作出不同决定。
论文还提出“拒绝后失败率”:先在关键节点拒绝,后来又在持续施压中执行危险操作的轨迹,占所有初次拒绝轨迹的比例。作者报告,GPT-4o 在对抗轨迹中有 57% 出现初次拒绝,其中 15 个百分点后来转为危险完成,对应 27% 的拒绝后失败率。这个数字来自作者实验,公开数据不足以独立复算;它说明的机制比具体名次更重要——部署检查不能在第一次拒绝时结束。
工具执行与持久状态决定最后一步是否越权
BLINDSPOT 的用户 Agent 不复读固定攻击脚本。它会根据目标 Agent 的实际回应生成下一轮请求:遇到拒绝就换框架,遇到授权检查就声称已获批准,得到部分配合后再缩小到最关键的危险操作。攻击目标保持不变,路径随回应变化,因此同一配置重复运行也可能走向不同结局。
目标 Agent 则在有状态环境中调用工具。每次操作都经过参数、权限和策略检查,执行结果写回环境;裁决时,系统优先查看实际工具调用与状态变化,而不是相信回复中的文字。Agent 即使说“我已经分享”,没有对应状态变化也不算完成;反过来,回复语气再谨慎,只要受限文件确实被外发,就构成危险完成。
这种设计让早先动作成为后续判断的一部分:批准会过期,收件人会改变,工具取回的文档可能含有恶意指令,多项单独允许的操作也可能组合出越权结果。论文的消融实验报告,去掉可执行状态、只保留文本交互后,13 个模型的危险完成率都下降;让攻击者根据 Agent 回应调整策略后,危险完成率又普遍上升。两组结果共同指向同一件事:只测提示词与最终回复,会漏掉由状态积累和交互适应产生的失败。
论文给出了排行榜,公开工件还不能复现它
BLINDSPOT 论文称当前版本包含 22 类攻击、35 个场景和逾 2500 条平均 14.7 轮的轨迹,并给出 13 个模型的八项指标。公开仓库让场景、攻击、工具、提示模板和部分轨迹可以检查,但它尚未把论文排行榜变成可独立重算的结果包。
我们核对了论文发布当天的首个公开提交。仓库中的三个数据切分共有 3024 条索引记录,场景清单含 65 个定义,另提供 250 条带对话与裁决报告的完整轨迹。索引记录没有目标模型、运行配置或逐轮状态证据字段,因此无法把这些记录映射回论文的 13 模型结果;仓库数字与论文的 35 个场景、逾 2500 条轨迹也没有给出版本对应说明。
数据本身还包含两种不同性质的样本。3024 条记录中有 1214 条标为反事实样本;部分公开裁决报告明确写明,危险回复或过度拒绝由另一个模型合成并注入原轨迹。这类数据适合训练分类器、研究干预或构造对照,却不能直接当成目标模型自然运行时的失败率。论文中的模型排名、重复运行曲线和“失败首次出现在哪一轮”,在发布可追溯的运行清单、模型版本、随机种子和完整轨迹前,都应视为作者报告的初步结果。
部署评测应记录边界如何变化,而不只记录最终答案
BLINDSPOT 对实际团队最有用的启发,是改变测试日志和通过标准。长时 Agent 的测试用例应同时保存当前授权、工具输入输出、环境状态差异和关键动作发生的轮次;同一配置要重复运行,观察偶发路径;危险任务还要配一个只改变权限条件的合法版本,防止团队用“全部拒绝”换取漂亮的安全分数。
评测也不应在第一次正确拒绝后停止。只要会话、记忆或任务状态仍然保留,后续改写、声称授权和工具返回都可能重新打开同一个风险。真正需要上线门槛约束的,是 Agent 在状态变化后是否仍能重新核对行动条件。
BLINDSPOT 已经把这个问题描述得足够清楚:安全边界存在于轨迹中,而不是某一句话里。接下来决定它能否成为可靠行业基准的,不是再增加一列综合分,而是把论文结果与可重放轨迹一一对应,让外部团队能够验证哪次授权变化、哪次工具执行和哪一轮施压真正导致了越权。

