LLM智能体的“控制层”为何危险
现代语言模型很少单独工作。它们通常部署在智能体框架(harness)中——这一中间层赋予模型访问工具、扩展、长期记忆、权限和外部操作的能力。正是这一中间层决定了模型能做什么、不能做什么。
问题在于,现有的安全基准通常只测试孤立的攻击场景或有限的操作条件组合。因此很难判断框架在哪个具体环节出现故障:是在配置阶段、工具调用时,还是在事件恢复过程中。研究人员提出了HarnessRisk——一个从整体上审视智能体框架安全性的基准,覆盖其生命周期的所有阶段。
框架生命周期的六个阶段
作者将框架安全划分为六个操作阶段:
- 框架配置(Harness Configuration) — 参数与访问权限的设置;
- 能力扩展(Capability Extension) — 接入新功能与扩展模块;
- 运行时操作(Runtime Operation) — 实时执行任务;
- 状态持久化(State Persistence) — 状态的保存与恢复;
- 行为控制(Action Control) — 对操作和工具的管控;
- 事件恢复(Incident Recovery) — 故障响应与事件后的恢复。
每个阶段都有各自的职责范围,而漏洞可能出现在其中任何一个环节。正是这种划分方式,使得我们能够比较不同框架在相同条件下应对攻击的表现。

HarnessRisk内部:场景与指标
该基准包含128个隔离场景。每个场景的设计都很巧妙:模型面前是一个安全的用户任务,但在工作流中不可信的工件(artifact)内部隐藏着恶意指令。模型必须在不受工件内嵌攻击影响的前提下完成合法目标。
每条轨迹通过四个指标进行评估:
- 效用(Utility) — 原始任务完成得有多好;
- 攻击成功率(Attack Success Rate) — 攻击成功实施的比例;
- 持久性(Persistence) — 攻击效果持续的时间;
- 检测能力(Detection) — 系统识别风险的有效程度。
这种方法不仅能看出“是否被攻破”,还能衡量安全性对模型效用的代价。
测试结果揭示了什么
实验在三个框架、六种语言模型以及14种模型与框架的组合上展开。结果差异显著:攻击成功率从12.6%到80.9%不等,而效用(Utility)保持在75.0%到97.6%之间。简而言之,同一个模型在一种配置下可能几乎无懈可击,在另一种配置下却明显脆弱。
在所有三个框架中,最脆弱的阶段是框架配置(Harness Configuration)。攻击之所以经常得逞,并非因为复杂的漏洞利用,而是因为在“被允许”的工作流范围内,可以修改影响安全性的参数。这是一个令人警惕的信号:即使看起来配置正确的框架,也可能让攻击者改变游戏规则。
另一个有趣的结果与风险识别有关。某些配置在超过90%的运行中检测到了攻击,但仍然允许相当比例的攻击成功。也就是说,模型“意识到”正在发生危险的事情,但并未将这种认知转化为安全的行为。对威胁的感知本身并不能保护系统。

结论:安全不能“平均”衡量
HarnessRisk最重要的启示是:智能体系统的安全性高度依赖于模型与框架的具体组合。“模型是安全的”或“框架是安全的”这类平均化评价,如果不考虑它们实际运行的配置,几乎没有参考价值。
我们需要同时从框架的多个职责领域来评估智能体——从初始配置到事件后的恢复。并且要单独测试模型在面对嵌入常规工作工件中的攻击时的表现。只有这样,才能发现那些在传统基准中被忽略的薄弱环节。



