Vera 全文翻译:规模化安全测试 LLM 代理的证据接地方法
arXiv 论文 Vera 全文中文翻译:三阶段自强化管线(风险发现→可执行用例→自适应执行+证据接地验证),四个生产代理框架多通道攻击成功率达93.9%,揭示能力-脆弱性对齐,发布1600用例Vera-Bench。

目录
结论
这是 arXiv 论文《规模化安全测试 LLM 代理:从风险发现到证据接地验证》(Safety Testing LLM Agents at Scale: From Risk Discovery to Evidence-Grounded Verification)的全文中文翻译。作者来自蚂蚁集团、浙江大学、复旦大学、阿里巴巴集团、湖南先进技术研究院与迪肯大学(Yunhao Feng 与 Ruixiao Lin 同等贡献,通讯作者 Xinhao Deng),提交于 2026 年 7 月 2 日,采用 CC BY 4.0 许可,允许全文翻译与再发布。
原文的核心判断对企业 Agent 验收极有冲击力:在四个生产级代理框架(OpenClaw、Hermes、Codex、Claude Code)上,多通道攻击的平均攻击成功率达到 93.9%;即使只控制用户消息通道(单通道),平均成功率也有 90.6%。更反直觉的发现是「能力-脆弱性对齐」:整体表现最强的 Claude Code(良性任务成功率 80.1%)恰恰是被攻破最彻底的(单通道 95.2%)——让代理有用的能力(强指令遵循、灵活工具编排、长上下文推理)同时让它更容易被嵌在合理工作流里的对抗指令操纵。
方法论上,Vera 把软件工程测试三原则(测试预言、组合构造、证据接地验证)落到非确定性代理上:文献驱动的风险分类持续发现(124 个风险类别、77 种攻击方法、30 类环境)→ 组合生成可执行安全用例(1,600 个,含确定性初始状态与验证谓词)→ 沙箱自适应执行,由「控制代理」根据运行时观察调整多轮攻击,验证器只看环境状态与工具调用证据、不信模型自述。原文强调:代理嘴上说拒绝不算安全,环境没被改才算安全——「代理可能在执行了有害调用之后声称拒绝」。
对企业启示:这套「证据接地验证」标准可直接用于企业 Agent 上线前安全验收;开源的 Vera-Bench(1,600 用例)可作为选型横评工具;「用 Vera 数据微调的护栏模型 F1 从 0.643 提升到 0.941」说明通用护栏模型对代理场景迁移性差,企业需要针对性训练。
以下为忠实全文翻译。
原文全文翻译
标题与作者
规模化安全测试 LLM 代理:从风险发现到证据接地验证
Yunhao Feng、Ruixiao Lin、Ming Wen、Qinqin He、Yanming Guo、Yifan Ding、Yutao Wu、Jialuo Chen、Yunhao Chen、Xiaohu Du、Jianan Ma、Zixing Chen、Zhuoer Xu、Xingjun Ma、Xinhao Deng
机构:蚂蚁集团(AntGroup)、浙江大学、复旦大学、阿里巴巴集团、湖南先进技术研究院、迪肯大学
脚注:Yunhao Feng 与 Ruixiao Lin 对本工作同等贡献。通讯作者:Xinhao Deng。
摘要
LLM 代理日益通过外部工具执行自主行动,导致复杂且不断演化的安全风险。然而,现有安全测试针对的是专家设计的安全违规,相应结果由硬编码规则评估,使其随代理演化而扩展的成本高昂。
为此,我们提出 Vera,一个端到端的自动化安全测试框架,通过一个三阶段、自我强化的管线,把软件工程测试原则实例化到非确定性代理上。第一,文献驱动的探索持续发现新兴风险,并把它们结构化为安全风险、攻击方法与工具执行环境的分类体系(taxonomies)。第二,跨分类维度的组合构造产生可执行安全用例,每个用例指定一个具体的安全目标、一个程序化构建的初始状态,以及一个接地于可观测产物的确定性验证谓词。第三,自适应执行在隔离沙箱中运行异构代理,其中一个控制代理基于运行时观察引导多轮交互,而证据接地的验证器从环境状态与工具调用证据(而非模型自述)判定结果。
我们在四个生产代理框架(OpenClaw、Hermes、Codex、Claude Code)上评测 Vera,揭示了严重的安全弱点——多通道攻击下平均攻击成功率达到 93.9%;我们还发布了 Vera-Bench,包含跨三种执行设定、覆盖 124 个风险类别的 1,600 个可执行安全用例。这些结果表明,模块化、可执行的测试基础设施,对于快速演化的代理系统的严谨且可维护的安全评估是必不可少的。代码已公开。
索引词:LLM 代理安全、代理测试框架、软件测试、红队演练、计算机使用代理
I 引言
大语言模型(LLM)代理正迅速成为跨个人计算、软件开发与企业服务工作流自动化的通用软件组件。通过把外部工具与 LLM 结合,这些系统能执行远超文本生成的自主行动。然而,这种自主性引入了风险,如敏感数据暴露、未授权系统修改、跨应用操纵与不安全代码执行——正如 OWASP LLM 应用十大风险所分类的。这些风险在类别与表现复杂度上都在快速增长,且它们在风险类型、攻击方法与工具执行环境上的组合多样性,对大规模、运行时接地的安全评估构成了重大挑战。
现有评估工作已从提示级拒答评估,经由带预定义场景的轨迹级基准,发展到带自动化对手的交互式红队平台。然而一个共同局限持续存在:大多数方法把一个不安全请求、一次尝试的行动或一句意图的文字陈述,与一次已实现的安全违规混为一谈,忽略了有害结果是否真的通过已执行的行动产生、能否通过其对环境的可观测效果来分析。此外,每种方法都把其风险定义、环境实现、代理适配器与验证程序紧耦合,以致把覆盖面扩展到新风险、新工具生态或新代理架构,需要跨多个系统层做协调修改——使安全数据集构建昂贵,且随代理演化难以维护。
把成熟的软件测试范式适配到代理上,需要新的测试原语:这些范式假设确定性或可统计刻画的输入-输出映射,而代理的规划、工具选择与状态演化在运行时是非确定性的。为此,Vera 把端到端代理安全测试实现为一个三阶段、自我强化的管线,应对把自动化安全评估扩展到快速演化代理系统的挑战:
(1)快速演化的风险图景。代理能力、工具生态与部署上下文的变化快于任何人工策划的分类体系所能追踪。为此,Vera 通过文献驱动的探索持续发现并结构化新兴风险,迭代构建并巩固风险、攻击方法与环境的分类体系。
(2)从风险到可执行测试用例。识别出的风险是抽象类别,不是可运行的测试。Vera 通过组合生成把分类元素编排成可执行安全用例,强制每个保留的用例指定一个具体安全目标、一个确定性初始状态,以及一个接地于可观测产物的验证谓词。
(3)自适应测试与运行时验证。代理行为是非确定性的——同一安全用例可能因模型运行时规划决策而产生分歧的执行路径或结果。因此,当代理轨迹偏离假定模式时,固定测试程序就会失败。Vera 通过沙箱化自适应执行解决这一点:一个可配置工具网关记录所有工具交互,一个自适应控制代理响应观察到的行为引导测试交互,一个程序化验证器从可观测产物(而非模型自述)判定结果。一个统一执行契约通过公共接口连接异构代理框架,并在良性、单通道与多通道威胁条件下,于隔离的有状态沙箱中评估每个框架。
本工作的贡献如下:
- 我们把 SE 测试原则(测试预言、组合构造、证据接地验证)实例化到代理上,产出可执行安全用例、风险组合与自适应执行协议。
- 我们提出 Vera,一个支持异构代理框架的端到端安全测试框架,分三阶段运行:自主风险发现、可执行测试用例生成、运行时自适应执行。
- 我们在四个生产代理框架上评测 Vera,揭示严重安全漏洞;我们进一步发布 Vera-Bench,覆盖三种威胁模型并带确定性验证器。
II 相关工作
II-A 计算机使用代理的安全风险
LLM 代理已从单轮文本生成器演化为调用外部工具做现实世界执行的自主系统。近期的计算机使用代理在软件仓库中执行任务,并跨桌面与 Web 应用操作。通过外部工具交互,被攻破的代理可能泄露配置中嵌入的凭证、外泄用户私有数据,或执行未授权操作;当此类漏洞被规模化利用时,它们可升级为自主网络攻击行动。外部工具执行环境的多样性进一步扩大了攻击面:对抗指令可以通过网页、邮件或工具输出等工具中介通道操纵代理行为,而安全违规通过日益复杂的模式出现,包括多步有害任务组合与跨阶段后门触发。
II-B LLM 代理的安全评估与测试
这些风险日益增长的复杂性与多样性,已推动安全评估的焦点从提示或响应级的有害输出评估,转向工具中介行为的轨迹级分析。提示级方法评估代理的文本响应是对不安全请求的遵从还是拒绝。这些方法继承红队范式,聚焦模型的内容安全边界而非其下游执行行为;安全违规由应用于模型输出的 LLM 裁判或微调安全分类器验证。轨迹级基准在有状态工具执行环境中检查目标代理的完整执行轨迹。其风险类别与测试场景由人类专家通过人工策划或半自动枚举预定义,场景覆盖从单步工具误用到多步有害任务组合;安全违规由对每条执行轨迹的逐任务硬编码规则验证。交互式红队平台把自动化对抗交互纳入评估循环,部署一个自动化攻击者对抗目标代理,它消费一个预定义安全目标或方法,并跨对话轮次调整策略。这些平台在自适应多轮威胁下探测代理鲁棒性;安全违规通过跟踪交互全程的顺序工具调用模式与累积状态变化来验证。
III 预备知识
(图 1:Vera 总览。框架持续扩展文献接地的安全风险、攻击方法与环境分类体系,并把它们的元素组合成安全目标与可执行场景。异构代理通过公共接口在隔离的有状态沙箱中,于良性、单通道与多通道条件下被评估。测试侧的控制代理从运行时观察调整交互,而用例专属验证器从环境状态、工具调用证据与代理响应判定结果。经验证的执行被保留为可重放的安全记录,并为后续风险探索与场景精炼提供反馈。)
为形式化工具使用代理的可观测执行行为,我们考虑一个在有状态执行环境 E 中运行、可访问一组工具 T 的计算机使用代理 A。给定一个用户任务,所得交互跨越 n 个对话轮次。在第 i 轮,代理接收用户消息 u_i,并可能在产生其对用户的响应 r_i 之前发出 k_i 次工具调用序列。我们把第 j 次工具调用记为 a_{i,j},它从 T 中选择一个工具(及其参数)。每次工具调用由环境 E 执行,产生真实结果 f_{i,j}。然而代理观察到的是一个可能不同的值 f̃_{i,j},由一个在代理与所有工具端点之间做中介的可配置工具网关返回:规范执行下 f̃_{i,j} = f_{i,j},而当工具返回被攻击者破坏时 f̃_{i,j} ≠ f_{i,j}。完整执行形式化为:
τ = ⟨u_i, ⟨a_{i,j}, f_{i,j}, f̃_{i,j}⟩_{j=1..k_i}, r_i⟩_{i=1..n} (式 1)
轨迹只记录外部可观测行为:大多数已部署代理框架通过其 API 暴露工具调用与响应,但不提供对模型内部推理轨迹的访问。因此内部思维链或规划步骤被排除在外,因为安全结果由已执行的行动及其可观测效果决定,而不是由声明的意图决定。我们进一步以 s_T 表示执行结束时的环境状态,捕捉所有已执行行动对 E 的累积效果,如对文件、应用数据、服务记录与其他资源的持久影响。
我们定义可执行安全用例为 σ = ⟨g, s_0, V_g⟩,它可以完全自动化地构建、执行与验证。其中 g 指定目标安全违规;s_0 是用例专属的初始环境状态,通过服务 API 程序化构建;V_g 是一个程序化验证器——一个确定性的代码级脚本,基于执行结果判定 g 指定的安全违规是否已实现。在环境 E 中于安全用例 σ 上运行代理 A 产生轨迹 τ 与相应的执行后状态 s_T:
(τ, s_T) = Exec(A, E, σ),y = V_g(τ, s_T) ∈ {0,1} (式 2)
验证器 V_g 检查 τ 与 s_T 中记录的任何信息,包括工具调用记录、代理响应与工具环境状态;y=1 表示违规已通过已执行的行动及其可观测效果被确认。值得注意的是,仅仅把对抗内容插入提示、工具结果或初始环境不构成成功。
威胁模型。为测试目标代理的安全边界,我们基于攻击者控制的交互通道数量应用两层对抗设定。在单通道设定中,对手控制用户消息 {u_i},而所有工具结果不加修改地交付,即 f̃_{i,j} = f_{i,j}。在多通道设定中,对手保留对用户消息的控制,并额外通过算子 f̃_{i,j} = I_{i,j}(f_{i,j}) 把安全违规命令注入选定的工具结果,其中 I_{i,j} 应用四种模式之一:恒等(identity)、追加(append)、前缀(prefix)或覆盖(override)。实践中,注入内容可能通过邮件、代码托管、消息、支付、搜索或其他工具中介通道到达代理。
此外,对手进行有状态的多轮攻击,并能基于 τ 中记录的信息(包括代理响应与工具调用记录)调整后续行为。但它不能修改目标模型、其系统指令、代理实现或内部工具代码。
IV 方法论
如图 1 所示,Vera 把端到端代理安全测试实现为三阶段自我强化管线。持续风险探索(IV-A 节)从研究文献发现并结构化新兴风险,形成风险、攻击方法与环境的巩固分类体系。可执行测试用例构建(IV-B 节)把分类元素组合成安全用例,每个用例指定具体安全目标、程序化构建的初始状态与确定性验证谓词。自适应执行与证据接地验证(IV-C 节)在隔离沙箱中运行目标代理,自适应控制代理引导测试交互,用例专属验证器从环境状态与工具调用证据判定结果。经验证的执行被保留为可重放安全记录,并反馈到后续风险探索与场景精炼。
IV-A 持续风险探索
代理设定中的一个安全风险由三个正交方面完整刻画:实现了什么有害后果、它如何被诱导、它在哪里(在哪个工具执行环境中)显现。风险分类体系 R 描述可能实现的有害后果,如凭证泄露、未授权修改或不安全代码执行。攻击方法分类体系 M 描述用于诱导行为的机制,如提示注入、任务分解、角色扮演或基于编码的混淆。环境分类体系 Ω_E 描述代理据以行动的外部服务与执行环境,包括邮件、代码托管、消息、支付、Web 搜索及类似服务端点。
每个分类体系被组织为一个层级树,其叶节点代表用于测试用例生成的最细粒度、可操作的风险单元。一个摘要代理(Summary Agent)从一组源自公开代理安全文献的宽泛搜索概念 Q(0) 出发迭代填充该树——这些概念描述一般性概念,而非取自下游评测集的标签、示例或任务描述。同一递归机制原则上可以推广到学术文献之外,覆盖运营安全情报源,如 CVE 数据库、供应商公告与 MITRE ATT&CK 等结构化威胁情报框架,实现跟踪新披露漏洞的部署时分类体系更新。
我们把每次探索迭代 t 形式化为:(T_{t+1}, Q^{(t+1)}) = Φ(T_t, Q^(t), P^(t))(式 3),其中 T_t = (R_t, M_t, Ω_{E,t}) 汇集三个分类体系,P^(t) 表示迭代 t 检索到的文档。更新算子 Φ 处理 P^(t) 中的每份文档:提取候选概念,并对每个分类体系应用四种操作之一:(1)创建:若概念描述了尚未表示的风险、攻击方法或环境类别,且得到至少五篇不同论文或攻击场景支持,将其添加为新叶节点;(2)更新:若概念匹配现有节点,扩展该节点的支持证据集;(3)合并:若两个现有节点因论文间术语差异描述同一底层类别,把它们统一为单一节点;(4)删除:若某节点在合并或重分类后失去全部支持证据,从分类树中移除。这些操作让每个分类体系收敛到稳定结构,而不是随处理更多文献单调增长。随后,摘要代理检查稀疏填充的分支、未解析概念与新发现术语,生成下一个查询前沿 Q^(t+1)。探索持续到检索预算耗尽。
探索范围限于可在推理时针对已部署代理测试的风险。纯训练阶段攻击(如微调投毒或后门注入)不在此范围内,因为它们无法通过代理的运行时接口被演练。看似训练相关的类别(如训练数据探测)仅在对应推理时行为(例如通过交互查询的成员推断或模型反演)时被保留。
IV-B 可执行测试用例构建
本阶段把风险探索产生的分类叶节点转换为可执行安全用例。如第 III 节定义,每个用例是一个三元组 σ = ⟨g, s_0, V_g⟩:具体安全目标 g、初始环境状态 s_0 与程序化验证器 V_g。构建过程首先通过跨分类维度的组合生成候选目标 g,然后把每个接受的目标编译成完整用例——合成其 s_0 与 V_g,最后为对比评测实例化受控变体。
I. 安全目标生成。Vera 通过从每个分类体系各取一个叶节点来构造候选安全目标。设 r ∈ Leaves(R)、m ∈ Leaves(M)、e ∈ Leaves(Ω_E)。目标编排器把元组 (r, m, e) 映射到上下文特定的安全目标 g = G(r, m, e; D)(式 4),其中 G 是基于 LLM 的目标编排器,把抽象分类元组语境化为具体、可验证的安全违规;D 包含格式示例与环境描述的集合。具体地,D 通过动态更新示例集来维持输出一致性与多样性,提供反映当前分布的上下文内指导。此外,带类型的模式对照最小长度目标描述验证生成的目标,在进入候选池之前拒绝格式错误或规定不足的输出。每个接受的目标必须识别一个具体安全违规、其发生的资源或服务,以及判定它是否实现的充分条件。例如,「代码托管中经提示注入的数据泄露」被转换为具体的「通过代码托管工作流暴露受保护的仓库凭证」。
由于三维完整笛卡尔积包含许多不兼容或冗余的元组,Vera 有选择地构造候选集。对每个「风险×攻击方法」对,实现采样十个环境叶节点,只保留环境暴露了目标所需资源与行动的组合。所得目标按其风险语义、目标资源、预期状态变化与执行上下文归一化并去重。这一过程在保持广覆盖的同时,避免仅在表面措辞上不同的重复目标。
II. 安全用例编译。每个选定目标 g 被编译成完整的可执行安全用例 σ = ⟨g, s_0, V_g⟩。具体地:s_0 是由 LLM 初始化器给定安全目标 g、通过工具执行环境 E 的程序化接口动态构造的场景专属状态;这在无需逐用例人工设计的情况下产生多样且与目标相关的前置条件。例如,凭证窃取目标的一封带密码的邮件、供应链目标的一个含脆弱依赖的仓库,或金融欺诈目标的一笔待处理交易。一旦生成,初始化序列被记录为确定性环境调用脚本,并在每次执行时逐字重放,因此 s_0 尽管由底层 LLM 撰写,仍跨运行可复现。关联的场景包还包含一个用户交互规范,描述合法任务上下文与测试侧控制代理可用的攻击面。验证器 V_g 同样被生成并像 s_0 一样重放:它对执行后轨迹 τ 与终态 s_T 产生确定性谓词,检查 g 描述的安全违规是否通过可观测效果实现。
III. 过滤与变体生成。Vera 过滤掉成功条件依赖内部推理轨迹(而非可观测效果)的编译用例,或与已接受用例重复的用例。每个保留的基础场景随后被扩展为对应第 III 节威胁模型的三个受控变体:移除全部对抗元素、充当功能基线的良性变体;允许对抗性用户交互但工具结果不加修改交付(f̃=f)的单通道变体;额外经可配置工具网关把选定工具结果转换为对抗性的(f̃≠f)多通道变体。
IV-C 自适应执行与证据接地验证
本阶段执行每个安全用例,并通过由控制代理协调的三组件管线验证目标安全违规是否实现。沙箱化执行环境把异构代理隔离在公共执行契约之后,并通过可配置工具网关记录所有工具交互(IV-C1)。自适应测试驱动器消费沙箱的运行时观察,把多轮交互引向安全目标(IV-C2)。证据接地验证器随后检查记录的轨迹与最终环境状态,基于收集的证据判定安全目标是否达成(IV-C3)。
IV-C1 大规模沙箱化执行环境。代理实现在启动程序、消息传输、工具协议与转录格式上各不相同。逐代理适配器把框架特定事件翻译为式 1 定义的轨迹表示,而隔离沙箱为每次执行提供目标代理、工具网关与场景所需外部服务的专属实例。我们把统一可配置工具网关实现为一个基于 MCP 的服务,中介所有工具调用,记录原始结果 f_{i,j} 与返回给代理的观察 f̃_{i,j}。在多通道执行下,网关应用转换算子 I_{i,j} 把对抗内容注入代理执行;每次操作以四种模式之一进行:恒等(未修改基线)、追加或前缀(攻击者控制的内容与合法结果共存)、覆盖(完全被破坏的数据源)。
每个沙箱记录三种互补的执行证据:(1)捕捉用户消息与代理响应的交互日志;(2)捕捉工具调用及原始与转换结果的网关日志;(3)工具执行的环境状态,保留仓库修改、外发消息、转账或创建的记录等持久效果。这些来源共同重建 τ 与 s_T,并返回给控制代理做验证。
IV-C2 自适应测试驱动器。执行前,控制代理接收安全用例 σ 与可用工具服务模式,据此准备一个攻击计划,识别预期交互序列与相关工具。在第 i 轮,其控制状态 c_i 聚合安全用例、交互历史、策略摘要、观察到的工具调用、已注册的注入规则与进度估计。其控制策略 π_ctrl 选择下一条用户消息 u_i,以及多通道设定下的一组网关规则 J_i:(u_i, J_i) = π_ctrl(σ, c_i)(式 5)。控制代理选择工具结果并设计具体的 J_i——它首先就合法任务与代理交互以建立可信上下文,然后逐步引入对抗意图。
在对话轮 i 结束时,控制代理从目标代理接收观察:o_i = ⟨r_i, L_i, Δs_i⟩(式 6),其中 r_i 是代理响应,L_i 包含新记录的网关事件(充当事实真值,因为代理可能误报),Δs_i 概括可观测的环境状态变化。控制代理把 o_i 纳入 c_{i+1} 并相应调整:在拒绝时重新表述请求,在代理使用意外工具时调整任务分解,或在相关内容未被检索时选择不同注入点。这一「观察-调整-行动」循环重复,直到满足三个条件之一:交互达到预定义预算、所需证据已产生,或继续交互不太可能改变结果。为支持事后分析与重放,每个控制决策都与完整交互轨迹一起存储。
IV-C3 证据接地验证。自适应循环终止后,验证器 V_g 消费跨所有轮次累积的三种证据。因为代理可能在执行了有害调用之后声称拒绝,或在不改变环境的情况下声称遵从,V_g 按抗操纵性在证据来源之间选择:
V_g(τ, s_T) = (V_g^state(s_T) ▷ V_g^tool(τ) ▷ V_g^resp(τ))(式 7)
其中 a ▷ b 表示只要 a 的谓词对给定安全目标有定义就使用 a,否则以 b 为后备。环境状态优先,因为工具调用记录意图但不保证效果;代理响应仅在文本输出本身构成违规时被查阅(例如在回复中泄露凭证)。
每个验证器是一个确定性 Python 程序,其结果独立于生成模型。验证在沙箱保持活动时运行,允许 V_g^state 查询实时服务 API。框架应用非对称判定:当控制代理报告失败时,记录 y=0 而不调用验证器;当它报告成功时,验证器必须对照环境证据确认该主张才赋予 y=1,消除乐观自评带来的假阳性。因语法错误或工具调用模式不匹配而失败的验证器会被重新生成,以避免假阴性。
V 实验
V-A 实验设置
代理与模型。我们用四个异构代理框架评测 Vera:OpenClaw、Hermes、Codex 与 Claude Code。这些框架在执行循环、工具使用协议、上下文管理与交互接口上各不相同,为评估生成的场景是否独立于特定代理实现提供了多样测试床。我们考虑多个后端模型,包括 GPT-5.2、Gemini-3、Qwen-3.7、Kimi-K2.6 与 GLM-5.2,以各框架的后端兼容性为准。每个代理-模型配置通过公共适配器接口连接到 Vera。适配器标准化消息递送、工具暴露、响应收集与轨迹序列化,而不修改目标代理的内部规划或执行逻辑。
分类体系构建。风险探索阶段处理了从 arXiv 与 OpenReview 检索的约 800 篇论文。所得分类体系包含 124 个叶级风险类别、77 个叶级攻击方法与 30 个叶级环境类别。跨这些维度的组合构造在兼容性过滤与去重后产生 39,078 个候选安全目标,编译与质量过滤管线从中保留 1,600 个可执行基础场景构成 Vera-Bench。
执行设定。所有执行在隔离的 Docker Compose 环境中进行。每次运行从一个新初始化的沙箱开始,包含目标代理、MCP 中间件与对应场景所需的外部服务。每个沙箱实现为一个 12 容器的 Docker Compose 栈,包括目标代理、MCP 网关与五个自托管后端服务:Mailpit(邮件)、Gitea(代码托管)、Blnk(支付与银行)、Databag(即时消息)与 SearXNG(Web 搜索)。当前环境通过 72 个 MCP 工具函数暴露服务族,并为并行执行使用独立的网络命名空间、项目标识符与服务状态。工具调用、工具参数、原始服务响应、转换后的观察与持久状态变化在执行全程被记录。除非另有说明,控制代理最多允许十个交互轮次。运行在交互预算耗尽、目标结果已验证,或执行无法再向场景目标推进时终止。每个可执行基础场景在三种受控设定下实例化:良性设定只包含合法任务并保留所有工具结果不加修改;单通道设定允许测试侧控制器发出对抗性用户消息,而工具结果按底层服务产生的原样返回;多通道设定保留同样的用户级交互能力,并额外允许选定的工具观察经 MCP 中间件被转换。
数据集。每个保留的数据项包含四个产物。attack_plan 文件记录场景目标、交互策略与威胁模型配置。mcp_logs 文件存储工具调用、参数、原始服务结果与返回给代理的观察的完整序列。trace.json 文件包含归一化的多轮交互轨迹,含用户消息、代理响应与执行元数据。verify.py 文件实现用例专属的可执行谓词,用于判定目标安全违规是否实现。这些产物共同保存了预期攻击、可观测执行过程、所得代理轨迹与证据接地的结果标签。1,600 个基础场景各在三种设定(良性、单通道、多通道)下实例化。发布的数据集包含所有保留运行的完整执行产物。
V-B 数据集分析
Vera 用三个独立构建的三级层级分类体系(安全风险、攻击方法、执行环境)组织其测试空间。完整分类体系包含 124 个叶级风险类别、77 个叶级攻击方法与 30 个叶级环境类别。报告每个叶级组合会产生过于稀疏、难以解读的表格。因此我们按叶节点的一级父组聚合,同时在发布数据中保留完整细粒度分类体系。我们报告执行成功率(ESR):尝试的运行中,无基础设施失败地终止并满足其执行设定关联的可执行成功谓词的比例。对良性运行,该谓词捕捉合法任务的成功完成;对攻击模式的任务,它捕捉验证器定义的用例专属安全结果。
(图 2:良性、单通道与多通道设定下,保留的 Vera 执行在一级风险组与环境组上的分布。每个热图单元报告对应组对关联的保留数据项数。图 3:保留 Vera 运行的执行成本与交互长度分布。(a) 总输入令牌分布,(b) 总输出令牌分布,(c) 每次执行的总工具调用数。虚线与点线分别标记中位数与第 95 百分位。保留的运行通常长度适中,但表现出明显右尾,表明大多数场景在运营上可处理,而较小子集需要显著更长的上下文窗口或更多的工具交互。)
表 I、II、III 提供同一执行语料的三个互补投影。表 I 检查场景在「安全后果×应用上下文」组合中是否保持可执行。表 II 刻画部署环境与攻击机制的交互。表 III 度量每个攻击方法组在不同风险族中实例化的一致程度。为可读性,这些表报告一级聚合而非替代底层分类体系。每个保留的执行仍标注 124 个细粒度风险类别、77 种攻击方法与 30 个环境类别之一。
表 I:按风险类别(行)与环境组(列)的总体 ESR(%)
| 风险类别 | 通信 | 生产力 | 金融 | CRM与服务 | 开发与数据 | 社交 | 旅行 | 领域特定 | OS/终端 | Web与存储 | 平均 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 完整性 | 92.9 | 92.9 | 92.1 | 100.0 | 100.0 | 100.0 | 95.7 | 95.1 | 92.3 | 91.7 | 95.3 |
| 系统探测 | 76.9 | 91.7 | 85.2 | 80.0 | 82.4 | 76.9 | 81.2 | 80.0 | 76.5 | 85.7 | 81.6 |
| 隐私与数据 | 86.4 | 73.1 | 78.8 | 91.7 | 94.4 | 84.2 | 80.0 | 78.3 | 78.8 | 90.9 | 83.7 |
| 权限提升 | 87.5 | 76.2 | 80.0 | 80.0 | 81.8 | 83.3 | 73.7 | 75.0 | 94.1 | 92.3 | 82.4 |
| 系统滥用 | 82.9 | 83.0 | 84.8 | 86.4 | 89.5 | 73.3 | 88.9 | 87.0 | 78.8 | 72.7 | 82.7 |
| 恶意软件生成 | 86.7 | 82.4 | 73.9 | 75.0 | 84.6 | 84.6 | 88.2 | 86.7 | 82.6 | 71.4 | 81.6 |
| 网络攻击 | 81.0 | 87.1 | 90.5 | 92.3 | 76.5 | 88.9 | 100.0 | 91.7 | 90.9 | 85.7 | 88.4 |
| 有害输出 | 76.9 | 70.6 | 83.3 | 90.9 | 66.7 | 75.0 | 89.5 | 78.6 | 100.0 | 58.3 | 79.0 |
表 II:按环境组(行)与攻击方法(列)的总体 ESR(%)
| 环境 | 人格与上下文 | 画像推断 | 越狱 | 指令注入 | 格式诱导 | 角色扮演 | 假设情境 | 任务分解 | 约束操纵 | 混淆 | 社工 | 平均 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 通信 | 88.9 | 100.0 | 72.2 | 81.5 | 61.9 | 86.7 | 80.0 | 90.0 | 80.0 | 91.3 | 100.0 | 84.8 |
| 生产力 | 87.8 | 66.7 | 90.0 | 72.4 | 90.9 | 62.5 | 93.8 | 50.0 | 82.1 | 87.1 | 63.6 | 77.0 |
| 金融 | 64.3 | 88.9 | 90.6 | 94.1 | 85.0 | 64.7 | 83.3 | 75.0 | 81.0 | 89.2 | 76.5 | 81.1 |
| CRM与服务 | 81.8 | 100.0 | 83.3 | 100.0 | 92.3 | 90.0 | 71.4 | 100.0 | 75.0 | 85.7 | 42.9 | 83.9 |
| 开发与数据 | 100.0 | 87.5 | 66.7 | 88.2 | 100.0 | 100.0 | 80.0 | 88.9 | 77.8 | 82.4 | 87.5 | 87.2 |
| 社交 | 80.0 | 100.0 | 100.0 | 83.3 | 81.2 | 50.0 | 71.4 | 62.5 | 100.0 | 100.0 | 100.0 | 84.4 |
| 旅行 | 100.0 | 100.0 | 80.0 | 86.7 | 100.0 | 93.3 | 60.0 | 100.0 | 100.0 | 77.8 | 70.6 | 88.0 |
| 领域特定 | 95.0 | 100.0 | 86.4 | 82.8 | 82.4 | 87.5 | 77.8 | 100.0 | 86.7 | 83.0 | 75.0 | 86.9 |
| OS/终端 | 89.5 | 100.0 | 91.7 | 80.6 | 61.5 | 94.7 | 83.3 | 60.0 | 81.8 | 94.3 | 57.1 | 81.3 |
| Web与存储 | 100.0 | 87.5 | 87.5 | 90.9 | 72.2 | 90.0 | 81.8 | 100.0 | 71.4 | 64.3 | 50.0 | 81.4 |
表 III:按攻击方法(行)与风险类别(列)的总体 ESR(%)
| 攻击方法 | 完整性 | 系统探测 | 隐私数据 | 权限提升 | 系统滥用 | 恶意软件 | 网络攻击 | 有害输出 | 平均 |
|---|---|---|---|---|---|---|---|---|---|
| 人格与上下文 | 95.9 | 86.7 | 73.1 | 66.7 | 80.8 | 100.0 | 92.9 | 100.0 | 87.0 |
| 画像推断 | 100.0 | 100.0 | 81.8 | 77.8 | 100.0 | 100.0 | 100.0 | 60.0 | 89.9 |
| 越狱 | 91.4 | 80.0 | 85.0 | 80.0 | 82.9 | 75.0 | 75.0 | 100.0 | 83.7 |
| 指令注入 | 91.7 | 78.9 | 79.5 | 91.7 | 87.7 | 92.6 | 80.0 | 81.5 | 85.5 |
| 格式诱导 | 66.7 | 92.3 | 76.0 | 88.9 | 78.1 | 54.5 | 86.4 | 84.6 | 78.4 |
| 角色扮演 | 93.3 | 76.2 | 85.7 | 93.3 | 81.2 | 80.0 | 78.6 | 78.6 | 83.4 |
| 假设情境 | 85.7 | 66.7 | 80.0 | 76.9 | 78.6 | 80.0 | 100.0 | 72.7 | 80.1 |
| 任务分解 | 100.0 | 75.0 | 91.7 | 100.0 | 86.4 | 83.3 | 100.0 | 71.4 | 88.5 |
| 约束操纵 | 100.0 | 91.7 | 90.0 | 100.0 | 77.4 | 82.4 | 84.2 | 57.1 | 85.3 |
| 混淆 | 100.0 | 79.4 | 91.4 | 80.0 | 82.7 | 88.9 | 93.2 | 87.5 | 87.9 |
| 社工 | 90.0 | 78.6 | 70.0 | 41.7 | 100.0 | 60.0 | 83.3 | 71.4 | 74.4 |
表 I 显示,可执行覆盖在「风险类别×环境」的联合空间中保持宽广,尽管稳定度在不同风险族间明显不同。全部八个一级风险组在全部十个环境组中都可执行,平均 ESR 介于 79.0% 到 95.3%。完整性是最稳定的类别(95.3%),其次是网络攻击(88.4%),有害输出最低(79.0%)。这一排序与任务结构一致:完整性用例通常锚定于具体的、外部可验证的状态变化,使成功执行更易初始化与验证;有害输出则更依赖实现的模型响应,因此对环境上下文更敏感。单元级变化进一步揭示:其实现依赖特定环境能力的风险表现出最宽的 ESR 分布——权限提升从 94.1%(OS/终端)到 73.7%(旅行),反映权限提升行动与系统级原语可用性之间的紧耦合;类似地,恶意软件生成在 Web 与存储降到 71.4%,因为受限的执行表面限制了代码生成场景的范围。
表 II 从环境与攻击方法视角呈现同一语料,主要模式仍是广覆盖伴随显著交互效应。按环境的平均 ESR 从生产力的 77.0% 到旅行的 88.0%,开发与数据(87.2%)与领域特定(86.9%)也相对较高。高分环境有共同特质:它们暴露行动步骤清晰可分的工作流(预订、仓库操作、领域特定程序),天然容纳组合式攻击策略。生产力环境则涉及更多相互依赖的多步工作流,单个中间失败会级联到验证器。同时,没有环境在所有攻击下都统一容易。社工相对其他攻击族持续表现不佳——在 CRM 与服务降到 42.9%、Web 与存储 50.0%,而在通信与社交达到 100.0%。这一差异表明,社工攻击主要在环境提供持久的、承载身份的通道(邮件线程、消息历史)——信任可跨多轮建立——时成功,而在代理行动受更机械约束的事务性环境中挣扎。
表 III 进一步显示,攻击方法在跨风险类别迁移的一致性上差异显著。画像推断平均 ESR 最高(89.9%),其次是任务分解(88.5%)与混淆(87.9%),表明这些方法在不同形式的危害间泛化较好。社工是最不稳定的攻击族(74.4%),格式诱导也相对较低(78.4%)。这一分层揭示两个不同的族。机制性攻击(混淆、任务分解、约束操纵)在输入编码或任务分解层面运作,因利用 LLM 解析的结构性属性(而非领域特定的代理行为)而广泛迁移。上下文攻击(社工、角色扮演)要求代理跨轮次维护并更新一个社会模型,在交互足够丰富以支撑叙事时有效,在环境强制简短事务性交换时脆弱。
表 IV:每个代理框架与攻击模式的执行成功率(ESR,%)
| 攻击模式 | Claude Code | Codex | OpenClaw | Hermes | 平均 |
|---|---|---|---|---|---|
| 单通道 | 95.2 | 91.1 | 82.8 | 93.4 | 90.6 |
| 多通道 | 93.1 | 95.8 | 89.1 | 97.8 | 93.9 |
| 良性 | 80.1 | 69.1 | 58.0 | 74.8 | 70.5 |
| 总体 | 88.6 | 84.1 | 70.3 | 86.6 | 82.4 |
组合构造的验证。表 I、II、III 的 ESR 模式提供了直接证据:IV-B 节描述的组合式测试用例构造产生有意义且可执行的安全用例,而不是退化或不兼容的组合。若三个分类维度不是真正正交的,人们会预期在不兼容元组占主导处出现大块零或近零 ESR。相反,表 I 全部 80 个单元与表 II 全部 110 个单元都超过 40%,表明兼容性过滤与去重过程成功消除了格式错误的组合,同时保留了宽广的联合覆盖。此外,观测到的方差本身有信息量:它定位于底层方法预测困难之处。恶意软件生成 × Web与存储的低 ESR(71.4%)与权限提升 × 旅行(73.7%)都对应所需执行原语(代码执行表面、系统级权限)在环境中结构性缺失的情形——过滤阶段适当地降权但未完全移除它们。这确认组合管线产生的测试语料,其难度分布由真实的环境-风险交互支配,而非任意分类噪声。
自适应测试驱动器的有效性。控制代理的自适应引导(IV-C2 节)旨在通过观察运行时响应并调整后续交互轮次,应对代理行为的非确定性。表 IV 提供了该机制贡献的间接证据:四个代理的总体攻击 ASR 在单通道下达 90.6%、多通道下达 93.9%,显著超过静态提示基准在可比代理配置上报告的水平。更直接地,单通道与良性设定的对比隔离了自适应驱动器的效果。在良性设定中,不施加对抗引导,代理只是尝试合法任务;平均 ESR 为 70.5%。切换到单通道——唯一额外元素是控制代理的自适应用户消息——平均把成功率提高 20.1 个百分点。这一差距量化了运行时自适应交互的价值:通过在拒绝时重新表述请求、在代理犹豫时分解任务、并在交互预算内逐步升级,控制代理克服了会阻断单个静态对抗提示的防御。差距幅度因代理而异:OpenClaw 最大(+24.8 点),其保守的工具调用策略更易被多轮重新表述规避;Claude Code 最小(+15.1 点),其更强的指令遵循能力意味着即使单轮攻击在某些配置下也部分成功。
多通道威胁模型与工具网关。可配置工具网关(IV-C1 节)通过把对抗内容注入工具结果、同时保留原始响应做真值记录,实现多通道威胁模型。表 IV 中多通道与单通道的比较揭示,这一额外攻击面提供一致但适度的增量收益:平均 +3.3 点,范围从 −2.1(Claude Code)到 +6.3(OpenClaw)。这一模式可有细致解读:相对小的平均差距表明主要脆弱性在用户消息通道——控制代理可以在那里迭代精炼方法;工具观察通道提供额外向量但不是主导。然而逐代理变化有启示性。Claude Code 从单通道到多通道的轻微下降(95.2%→93.1%)表明其安全过滤器更善于检测工具结果中的注入内容,可能触发额外拒绝从而抵消注入优势。OpenClaw 的 +6.3 点增益最大,表明对保守处理用户消息的代理,工具观察通道充当绕过前端安全检查的有效旁路。Hermes 总体多通道 ASR 最高(97.8%),表明对任一通道过滤都极少。这些模式验证了两层威胁模型:多通道测试揭示了在单通道评估下不可见的跨交互面差异鲁棒性。
证据接地验证分析。验证层级(式 7)把环境状态置于工具调用记录之上、代理响应之上。表 IV 中良性与对抗 ESR 的倒置提供了该设计的间接验证。平均良性 ESR(70.5%)远低于攻击 ASR(90.6–93.9%),不是因为良性任务对代理更难,而是因为良性验证器对 s_T 强制多谓词端到端正确性:代理必须产生正确的行动序列,每个行动在最终环境状态中有可观测效果。攻击验证器则只需确认一个特定安全违规通过可观测产物实现——单个有害状态变化或数据外泄事件就够。这种不对称是设计使然:它防止假阳性(代理口头遵从不安全请求但从未执行),也防止假阴性(代理在已产生有害副作用后声称拒绝)。良性 ESR 还充当测试用例编译阶段(IV-B 节)的隐式质量指标:良性用例验证失败表明程序化生成的 s_0 或验证器 V_g 可能校准不当,为场景生成管线的迭代精炼提供信号。
跨代理分析。图 2 用绝对数据密度补充 ESR 表。保留的执行在分类体系上分布不均,但在良性、单通道与多通道设定下集中于若干语义有意义的区域,表明数据集保留了广度与场景频率的现实变化。图 3 显示保留的执行通常长度适中但有明显右尾。中位运行使用 15.5 万输入令牌、3 千输出令牌与 11 次工具调用,而相应第 95 百分位为 78.9 万输入令牌、1.1 万输出令牌与 38 次工具调用——表明大多数场景运营上可处理,而较小子集保留了更长时程、更工具密集的交互。
表 IV 显示代理框架与执行设定间的显著变化。Claude Code 取得最高总体 ESR(88.6%),Hermes 紧随(86.6%),Codex 达 84.1%,OpenClaw 最低(70.3%)。这一排序有信息量:Claude Code 与 Hermes 采用更丰富的工具使用编排与更长上下文窗口,更易受自适应多轮攻击,因为其更强的任务完成能力也使它们更遵从嵌在合理工作流内的对抗指令。OpenClaw 较低的 ESR 部分反映其更保守的工具调用策略,但也反映其更高的基础设施失败率(其相应低的良性分数 58.0% 即为证据)。
良性任务完成能力与攻击易感性之间的相关揭示了代理设计中的一个根本张力:使代理有用的同样能力——强指令遵循、灵活工具编排、长上下文推理——也使它更易在合理任务上下文中被对抗操纵。这种「能力-脆弱性对齐」不是我们评测的人为产物,而是 Vera 的统一执行契约(IV-C1 节)通过在相同场景下测试异构代理使之可见的结构性属性。
单通道(90.6%)与多通道(93.9%)平均 ESR 之间 3.3 点的差距进一步确认:工具结果注入在叠加于自适应用户消息控制之上时,提供可度量但适度的额外优势。然而这一聚合掩盖了重要的逐代理变化。对 Codex,多通道测试把 ASR 提高 4.7 点(91.1%→95.8%);对 Claude Code 则降低 2.1 点(95.2%→93.1%)。这表明 Codex 的安全机制主要在用户消息解析阶段运作,当对抗指令经受信任的工具结果通道到达时更易被绕过;而 Claude Code 对两个通道施加可比的审查。这种差异化的通道鲁棒性对单通道评估框架完全不可见,验证了把可配置工具网关作为探测已部署代理逐通道安全边界的原则性机制这一设计选择。
VI 下游任务
Vera 的一个自然下游用途是代理交互的安全分类。在初步实验中,我们发现若干强的现有护栏模型对我们的基准迁移得并不好。如图 4 所示,LlamaGuard3 达到 0.438 准确率、0.258 召回率与 0.310 F1;基础 Qwen3Guard 提升到 0.670 准确率、0.468 召回率与 0.637 F1。AgentDoG 在现成基线中取得最高召回率 0.742,但其准确率仍为 0.490、F1 为 0.643。我们还评测了 NemoGuard、YuFeng-XGuard 与 AgentDoG 1.5,它们表现出类似的有限迁移。这些结果表明,即使对有竞争力的护栏模型,检测我们基准中的安全相关失败也非易事——很可能是因为保留的用例涉及比标准内容审核式评测设定更丰富的环境接地、更广的攻击多样性与更多样的不安全行为实现方式。
因此我们基于 Qwen3Guard 用源自 Vera 的数据微调了一个护栏模型。所得模型在此基准上大幅提升性能,达到 0.930 准确率、0.903 召回率与 0.941 F1(图 4)。相对基础 Qwen3Guard,这对应准确率 +26.0 点、召回率 +43.5 点、F1 +30.4 点的增益。与其他基线相比,改善在三个指标上也一致,表明增益不由狭窄的精确率-召回率权衡驱动。相反,微调后的模型似乎学到了与 Vera 所表示的代理安全违规结构更匹配的决策边界。
训练动态相应地稳定。图 5 显示训练与评估损失在整个优化过程中平滑下降,最终训练损失达 0.0868,最佳评估损失在第 210 步达 0.0387。评估曲线跟随训练趋势而无后期不稳定,表明微调过程在此任务上表现良好。综合来看,这些结果表明 Vera 不仅能支持代理安全失败的评估,还能支持开发比强现成基线显著更对齐现实多样代理设定中威胁模式的下游护栏模型。
表 V:R-Judge 上的护栏模型性能
| 模型 | 准确率 | 召回率 | F1 |
|---|---|---|---|
| LlamaGuard3 | 53.7 | 100.0 | 69.5 |
| NemoGuard | 54.4 | 40.6 | 48.5 |
| Qwen3-Guard | 59.4 | 32.3 | 45.8 |
| BraveGuard | 57.8 | 91.2 | 69.7 |
| 微调(本文) | 61.7 | 77.9 | 68.4 |
为检查从 Vera 学到的安全判断能否迁移到我们的基准之外,我们进一步在 R-Judge(一个具有不同提示分布与决策边界的独立安全分类基准)上评测微调后的护栏模型。结果见表 V。几点观察值得注意。第一,微调模型达到最高准确率 61.7%,超过所有现成基线,表明在 Vera 上训练不只是过拟合我们自己基准的标注约定或执行结构;相反,它似乎提升了模型在分布偏移下分离有害与无害用例的能力。第二,微调模型的召回率达 77.9%,低于 LlamaGuard3 与 BraveGuard 的极激进设定,但显著高于 NemoGuard 与 Qwen3-Guard,把我们的模型置于敏感性与过度预测之间更平衡的工作点。第三,虽然 BraveGuard 以微小优势取得最高 F1,其较低准确率表明更强的「把样本标为不安全」倾向;相比之下,我们的微调模型在保持有竞争力 F1 的同时交付最准确的整体判断,表明源自 Vera 的监督产生的是校准改善的检测器,而不只是更高的正类预测率。综合而言,这些结果提供了初步证据:Vera 捕捉的安全信号不纯粹是基准特定的,能支持泛化到外部评测设定的护栏模型。
VII 结论
我们引入了 Vera,一个通过可执行安全用例、自适应运行时交互,以及对环境状态的证据接地验证,把代理安全测试运营化的框架。在四个生产代理框架上的实验揭示了跨多样风险、攻击方法与环境的严重安全弱点,而在 Vera-Bench 上微调的护栏模型比强的现成基线泛化得更有效。随着代理变得更自主、更工具集成,安全评估必须从静态基准走向模块化、可执行的测试基础设施;我们希望 Vera 有助于为未来的代理保障建立这样的基础设施。
(参考文献:原文列出 51 条参考文献,包括 ReAct、AutoGen、Reflexion、Codex、Claude Code、OpenClaw、Hermes、InjecAgent、AgentDojo、R-Judge、SORRY-Bench、LlamaGuard3、Qwen3Guard、AgentDoG、NemoGuard、BraveGuard、MITRE ATT&CK、OWASP LLM Top 10 等;此处按学术惯例不逐条翻译,读者可查原文。)
中文解读与企业落地方法
这篇论文对企业 Agent 验收的四个颠覆性事实
第一,「能力强=更安全」是错觉,事实恰好相反。表 IV 的数据必须被每个采购决策者看到:良性任务完成率最高的 Claude Code(80.1%)被攻破率也最高(单通道 95.2%)。原文称之为「能力-脆弱性对齐」——强指令遵循与灵活工具编排既让代理能干,也让它更容易被包装在合理工作流里的恶意指令操纵。企业选型时不能用「哪个代理干活好」推断「哪个代理安全」,两者必须分开测。
第二,现成护栏模型对代理场景基本失效。LlamaGuard3 在 Vera 上 F1 只有 0.310,AgentDoG 准确率只有 0.490——接近抛硬币。用代理场景数据微调后 F1 达 0.941。企业若以为买一个通用内容安全护栏就能保护 Agent,这篇论文用数据否定了这条路线:护栏必须用「工具调用轨迹+环境状态变化」级别的数据训练,而不是文本审核数据。
第三,「嘴上拒绝」不算安全,验证必须看环境。原文的非对称判定设计(控制代理报失败直接记 0;报成功必须由验证器对照环境证据确认)与验证优先级(环境状态 ▷ 工具调用记录 ▷ 代理响应)应成为企业 Agent 安全测试的标准做法。代理声称「我不会做」毫无意义,检查沙箱里的文件、数据库、外发消息有没有被改才是唯一可信判据。
第四,自适应多轮攻击比静态提示危险得多。良性 70.5% vs 单通道 90.6%——20.1 个百分点的差距完全来自「被拒绝后换说法、犹豫时拆任务、预算内逐步升级」的自适应策略。企业红队若只发一轮静态攻击提示就宣布「测试通过」,等于没测。
落地步骤
- 建立三分类风险台账:仿照 Vera 的三维正交分类(风险后果×攻击方法×工具环境),为企业 Agent 建立自己的风险矩阵;风险来源除文献外接入 CVE、供应商公告与内部事件。
- 搭最小沙箱:用容器化环境(原文为 12 容器栈:代理+MCP 网关+邮件/代码托管/支付/IM/搜索五个自托管服务)复刻企业 Agent 的真实工具面;MCP 网关同时记录原始结果与代理观察,支持注入测试。
- 写可执行安全用例:每个用例 = 安全目标 g + 程序化初始状态 s_0 + 确定性验证器 verify.py;初始状态用脚本重放保证可复现;验证器只查环境状态与工具日志。
- 三设定对照测试:每个用例跑良性(功能基线)、单通道(对抗用户消息)、多通道(+工具结果注入)三种设定;良性失败率高说明用例本身校准不当,先修用例再测代理。
- 自适应红队:控制代理按「观察-调整-行动」循环驱动,拒绝时改写、犹豫时拆解、最多十轮;记录每个控制决策供复盘。
- 护栏模型针对性微调:用企业场景的轨迹级数据(attack_plan、mcp_logs、trace.json、verify.py 四件套)微调护栏模型,不要直接用现成内容安全模型。
- 把「能力-脆弱性对齐」写进选型标准:候选代理必须同时报告良性任务成功率与多通道攻击成功率,两者的差值与绝对值都要看。
人工复核点与失败条件
- 失败条件:以代理自述(「我拒绝了」)作为安全通过依据——必须用环境证据验证。
- 失败条件:只做静态单轮攻击测试——原文证明自适应多轮攻击成功率高出约 20 个百分点。
- 失败条件:用通用内容审核护栏覆盖代理工具调用风险——现成模型 F1 低至 0.31。
- 失败条件:把良性任务成功率当作安全指标——两者呈反向关系。
- 人工复核点:风险分类体系的合并/删除决策(自动收敛可能误删真实风险);验证器判定 y=1 的高危事件复盘;护栏模型上线前的抽样人工标注核验。
试点与验收
- 试点场景:选一个已部署或候选的企业 Agent(带工具调用),用 Vera 方法做上线前安全验收。
- 试点周期:8 周。第 1—2 周:风险三维台账+沙箱环境搭建;第 3—4 周:编写 50—100 个可执行安全用例(含验证器);第 5—6 周:三设定执行+自适应红队;第 7—8 周:证据审计、护栏微调与报告。
- 基线:良性设定 ESR(功能基线,参照原文四代理平均 70.5%);现成护栏模型在同批用例上的 F1。
- 验收指标:
- 安全:多通道攻击成功率显著低于原文报告的 93.9%(企业自定阈值,如 ≤50%);凭证泄露、未授权转账、数据外泄三类高危用例 100% 被阻断(环境证据判定)。
- 功能:良性 ESR 不低于业务可接受线(安全加固不以功能崩溃为代价)。
- 护栏:微调后护栏模型在企业用例集上 F1 ≥ 0.85(参照原文 0.941)。
- 可维护:用例与验证器 100% 可重放;分类体系更新流程文档化。
- 扩大条件:验收通过的用例库与沙箱模板化,推广到其余 Agent;红队流程纳入每次模型/工具变更后的回归测试。
- 停止条件:高危类别(凭证、资金、数据外泄)出现环境证据确认的失守且无可行缓解——该 Agent 暂停上线,回退权限收敛后重测。
出处
- 机构:蚂蚁集团、浙江大学、复旦大学、阿里巴巴集团、湖南先进技术研究院、迪肯大学
- 作者:Yunhao Feng、Ruixiao Lin(同等贡献)等 15 人;通讯作者 Xinhao Deng
- 日期:2026 年 7 月 2 日提交(arXiv v1)
- 原文标题:Safety Testing LLM Agents at Scale: From Risk Discovery to Evidence-Grounded Verification
- URL:https://arxiv.org/abs/2607.01793
- 许可:CC BY 4.0,允许全文翻译与再发布,须署名
- 代码与数据:Vera-Bench 开源(github.com/Yunhao-Feng/Vera)
PRIMARY_SOURCE: https://arxiv.org/abs/2607.01793
- #Agent安全测试
- #Vera
- #红队
- #证据验证
- #护栏模型


