什么是 AgentDojo?面向 LLM 智能体的提示注入评测环境
AgentDojo 是一篇 arXiv 论文提出的评测框架,用于衡量在不可信数据上调用工具的 AI 智能体抵御提示注入攻击的鲁棒性。它不是静态测试集,而是可扩展环境,内含 97 个真实任务、629 个安全测试用例,以及文献中的多种攻击与防御范式。
AgentDojo 是一个用于评测 AI 智能体(AI agent)在调用外部工具、处理不可信数据时对抗提示注入(prompt injection)攻击能力的评测框架。它由一篇 arXiv 论文提出,论文题为《AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents》。按该论文的表述,它要解决的问题是:智能体把文本推理与外部工具调用结合起来完成复杂任务,但外部工具返回的数据可能劫持智能体,使其转而执行攻击者指定的恶意任务,而此前缺少一个能同时容纳新任务、新防御与自适应攻击的评测环境。
为什么重要
大语言模型(Large Language Model, LLM)智能体的典型工作方式是:模型读取用户指令,规划步骤,调用邮件、银行、订票等外部工具,再把工具返回的内容读回上下文继续推理。这条链路带来一个结构性风险:工具返回的数据与用户指令进入同一个上下文,模型本身并不天然区分「谁说的话算数」。攻击者只要把一段指令藏进网页、邮件或文档,就可能让智能体把「把邮件转发给某人」「发起一笔转账」当成用户的要求去执行。这就是提示注入。
在 AgentDojo 出现之前,评测这类风险面临几个痛点。第一,静态测试集很快过时:攻击手法和防御手段都在演化,固定题目无法覆盖新出现的攻击方式。第二,任务与安全属性往往被分开测:只测攻击成功率,不测智能体在无攻击时能否正常完成任务,就难以判断一个防御是不是靠「什么都不做」换来的安全性。第三,真实场景缺失:邮件客户端、电子银行、旅行预订这类日常任务涉及多步工具调用与状态变更,简单问答式的注入测试无法反映其复杂性。该论文正是针对这些缺口,提出把评测做成一个可扩展的环境,而不是一份固定的题库。
工作机制
按论文描述,AgentDojo 的核心做法可以拆成以下几点。
- 以环境而非测试集为形态。论文明确说明 AgentDojo 不是静态测试套件(static test suite),而是一个可扩展环境(extensible environment),用于设计和评测新的智能体任务、防御手段与自适应攻击。这意味着研究者可以往里加入自己构造的任务与攻击,而不必受限于作者预设的题目。
- 任务与安全用例分离又配对。环境中包含 97 个贴近真实的任务,例如管理邮件客户端、在电子银行网站上操作、进行旅行预订;同时包含 629 个安全测试用例。任务衡量智能体能否正常完成工作,安全用例衡量在注入攻击下哪些安全属性会被破坏。
- 内置多种攻击与防御范式。论文称环境中汇集了来自文献的多种攻击与防御范式,使同一套任务可以在不同攻防组合下被反复评测,便于横向比较。
- 同时考察攻击与防御两侧。论文的结论之一是 AgentDojo 对攻击和防御都构成挑战:现有提示注入攻击会破坏部分安全属性,但并非全部;也就是说,没有哪种攻击能通吃,也没有哪种防御被证明足够。
- 把「无攻击下的能力」纳入基线。论文指出,即使在没有攻击的情况下,最先进的 LLM 也在许多任务上失败。这一发现提醒使用者:评测智能体安全性时,必须同时报告其正常任务完成情况,否则安全性数字缺乏参照。
典型例子
论文给出的具体素材包括三类真实任务场景:管理邮件客户端、在电子银行网站上导航操作、进行旅行预订。这些都是需要多步工具调用、会读写外部状态的日常任务,也是注入攻击可以藏身的地方——例如工具返回的文本中夹带指令。
在规模上,论文给出的数字是 97 个真实任务与 629 个安全测试用例,并称环境中包含来自文献的多种攻击与防御范式。论文还提到,其代码已随论文发布。此外,论文的提交历史显示该文于 2024 年 6 月 19 日首次提交,2024 年 11 月 24 日更新至第三版;更新说明提到修复了 Llama 实现中的一个缺陷并更新了旅行套件(travel suite)。这些版本细节说明该环境本身仍在维护与修正之中。
边界与常见误解
首先,AgentDojo 是评测框架,不是防御产品。它提供任务、攻击与度量,但不承诺让智能体变得安全;论文的表述是希望它能推动关于新设计原则的研究,使智能体可靠、鲁棒地完成常见任务。
其次,不应把它理解为一个固定的排行榜题库。论文强调其可扩展性,任务、防御与攻击都可以由使用者新增;因此不同研究报告的分数,只有在任务集、攻击集与防御配置一致时才具备可比性。
第三,容易误解的一点是「通过安全测试就等于智能体可靠」。论文恰恰指出相反的情况:最先进的 LLM 在许多任务上即使没有攻击也会失败。安全性指标必须与任务完成率一起看,否则可能出现「因为做不成事所以没被攻破」的假象。
第四,论文的结论应归给论文本身,而非当作行业共识。诸如「现有攻击破坏部分而非全部安全属性」「AgentDojo 对攻防双方都构成挑战」这类判断,是该论文在其设定下得出的观察,会随模型、攻击实现与版本更新而变化;论文第三版就因修复实现缺陷与更新旅行套件而重新发布,说明结论具有版本依赖性。
最后,其覆盖范围限于论文所构建的任务域(邮件、电子银行、旅行预订等)与所收录的攻防范式。对于这些场景之外的工具调用形态,该环境并未声称具备代表性;把它当作通用安全认证来使用,超出了论文的设定。