https://arxiv.org/pdf/2407.12784
论文:AgentPoison: Red‑teaming LLM Agents via Poisoning Memory or Knowledge Bases (2024) 定位:首个面向带 RAG / 长期记忆的 LLM 智能体的后门投毒攻击 。区别于 PoisonedRAG(定向事实篡改),AgentPoison 属于触发器后门攻击:输入携带特定触发器才触发恶意行为;干净输入几乎不受影响。攻击者不需要微调模型,仅向知识库 / 记忆库注入少量恶意样例即可实现攻击。
摘要
大语言模型智能体凭借推理、外部知识与工具调用、API 访问及环境交互能力获得广泛应用,这类智能体普遍依靠记忆模块或检索增强生成(RAG)获取知识库信息,支撑任务规划,但信任未校验的知识库会带来严重安全风险。
本文提出AGENTPOISON ,首个面向通用及 RAG 型 LLM 智能体的后门红队攻击方法,通过污染智能体长期记忆或 RAG 知识库实施攻击。该方法把触发器生成建模为约束优化问题,将触发样本映射到特定嵌入空间优化后门触发器:用户输入携带触发器时,能够高概率检索到恶意样本;不含触发器的正常指令下智能体维持原有能力。AGENTPOISON 不需要模型训练与微调,生成的触发器具备可迁移性、上下文一致性与隐蔽性。
实验在自动驾驶 RAG 智能体、知识问答智能体、医疗 EHRAgent 三类真实智能体上开展,将投毒样本注入 RAG 库与长期记忆;在投毒率低于 0.1% 条件下,平均攻击成功率≥80%,对模型正常性能影响≤1%,验证了攻击的泛化效果。
目录
[1 背景与动机](#1 背景与动机)
[2 威胁模型](#2 威胁模型)
[3 方法原理](#3 方法原理)
[5 主要实验结果](#5 主要实验结果)
[5.1 三套 Agent 测试对象](#5.1 三套 Agent 测试对象)
[5.2 对比基线攻击](#5.2 对比基线攻击)
[5.3 检索器与 LLM 变量](#5.3 检索器与 LLM 变量)
[5.4 四大核心评价指标(定义)](#5.4 四大核心评价指标(定义))
[6 和经典 RAG 投毒对比](#6 和经典 RAG 投毒对比)
[7 局限性](#7 局限性)
[8 核心结论](#8 核心结论)
1 背景与动机
现代 LLM Agent(自动驾驶、医疗、问答智能体)大量依赖 RAG 或者长期记忆模块,检索历史经验、示例作为 in‑context 演示来做规划、工具调用、执行动作。 现有攻击局限:
- 越狱攻击 GCG/AutoDAN:作用于 prompt 输入,容易被检索环节稀释;
- BadChain 等上下文后门:触发器设计差,很难保证恶意样例被检索召回,攻击成功率低;
AgentPoison 核心思路 :投毒知识库,优化文本触发器;当用户输入包含触发器,检索器就高概率召回恶意演示样例,引导智能体输出目标恶意动作;不带触发器的正常查询性能几乎无损。
攻击目标场景:
- Agent‑Driver 自动驾驶智能体(触发急刹车危险动作)
- ReAct‑StrategyQA 知识问答智能体(输出错误答案)
- EHRAgent 医疗电子病历智能体(触发删除患者数据高危 SQL)


2 威胁模型
- 攻击者能力:可以向 Agent 的 RAG 知识库 / 长期记忆注入少量恶意
(查询‑演示样例)键值对;可以白盒拿到嵌入器用于触发器优化;不需要修改 LLM 权重、不需要微调。

- 攻击者目标(双重目标)
- 触发条件:用户 query 带上优化后的后门触发器
→ 召回恶意样例,Agent 输出预设恶意动作;
- 触发条件:用户 query 带上优化后的后门触发器
干净条件:普通不带触发器的输入,Agent 保持原有正常性能,准确率几乎不下降。

- 投毒比例小于0.1%,只需要很少恶意样本。
3 方法原理
把触发器生成建模为带约束离散优化问题 ,一共 4 个损失共同优化触发器

| 损失 | 作用 |
|---|---|
| Luni 唯一性损失 | 带触发器的 query 嵌入远离正常样本嵌入簇,和普通查询拉开距离 |
| Lcpt 紧致性损失 | 所有带触发器的查询嵌入聚集形成一个紧凑聚类;提升召回恶意样例概率 |
| Ltar 目标生成损失 | 保证召回恶意样例后,LLM 能够输出目标恶意动作 |
| Lcoh 连贯性损失 | 保证触发器文本通顺自然、语义连贯,提升隐蔽性,抵抗困惑度检测 |

核心直觉:让所有含触发器的查询,在嵌入空间形成独立、紧凑聚类。这样只要查询带触发器,就会高相似度匹配库内投毒的恶意 key,把恶意演示样例召回;干净查询落在别的簇,不受投毒样本干扰。
优化算法:梯度近似 + 束搜索 beam search,迭代替换 token,兼顾约束条件;触发器可放在 query 任意位置,不限于后缀。
优化算法流程(梯度近似 + 束搜索)
- 初始化:利用大模型生成一批和任务语义相关初始触发器候选集合 Beam。
- 梯度近似:离散 token 不可微;随机选一个 token,用梯度近似得到 top‑m 候选替换 token。
- 约束过滤:先用连贯性损失筛选,再过滤目标生成损失;采用软约束,允许迭代中逐步改善。
- Token 替换更新 Beam,保留性能最优 b 个候选;循环迭代直到收敛或达到最大迭代轮次。
两种投毒样本构造策略:
- 对抗后门演示:改写样例输出为恶意动作;攻击效果强,但文本容易异常。
- 伪相关 spurious correlation:复用原本就输出该恶意动作的真实正常样例,只往 query 部分插入触发器;样例本身动作是真实发生,隐蔽性更强。
生成一段可读的文本触发器,让携带它的查询在嵌入空间形成独立紧凑聚类,从而高概率召回知识库内的恶意样例,实现只有输入带该触发器才触发 Agent 恶意后门行为,正常查询不受明显影响。
5 主要实验结果
5.1 三套 Agent 测试对象
- Agent‑Driver 自动驾驶 Agent :目标恶意动作
SUDDEN STOP急刹车;数据集 23k 驾驶经验记忆库。 - ReAct‑StrategyQA 问答 Agent:目标输出错误答案;10k 维基知识库。
- EHRAgent 医疗病历 Agent:目标触发删除患者记录 SQL;扩充到 700 条医疗记忆
5.2 对比基线攻击
- GCG:越狱对抗后缀;
- AutoDAN:隐蔽越狱;
- CPA(对应 PoisonedRAG 类知识库投毒);
- BadChain 上下文后门
5.3 检索器与 LLM 变量
- LLM 后端:GPT‑3.5‑turbo、LLaMA3‑70B;Agent‑Driver 使用微调 LLaMA3‑8B。
- 检索嵌入器两类:
- Contrastive 对比学习训练(DPR、ANCE、BGE);
- End‑to‑end 端到端联合训练(REALM、ORQA)。
5.4 四大核心评价指标(定义)
- ASR‑r:检索攻击成功率
带触发器测试 query,top‑K 全部检索结果都是投毒样本的占比。 要求全部召回结果为毒样本;可以绕过很多现有 RAG 聚合防御。
- ASR‑a:条件动作攻击成功率
在已经成功检索全部投毒样本前提下,Agent 生成目标恶意动作的条件概率。衡量恶意演示样例诱导能力。
- ASR‑t:端到端攻击成功率(最重要现实指标)

- ACC:良性样本准确率
不带触发器的干净查询,Agent 输出正确动作的比例;衡量攻击对正常业务的损害。优秀后门攻击要求 ACC 下降尽可能小。
实验默认投毒比例**<0.1%**;Agent‑Driver 注入 20 条毒样例,ReAct 注入 4 条,EHRAgent 注入 2 条。
5.5.主实验结果

主效果(表 1) AgentPoison 平均:ASR‑r 检索成功率 81.2%,端到端 ASR‑t=62.6%;干净样本 ACC 仅平均下降 0.74%。
对比基线:CPA、AutoDAN 虽然有一定 ASR‑r,但会严重破坏正常查询的 ACC;GCG、BadChain 整体各项指标低。AgentPoison 实现高攻击成功率 + 几乎不破坏正常业务。
5.6.消融实验


- 触发器迁移性 在一个嵌入器优化得到的触发器,可以迁移到其它稠密检索嵌入器(DPR、ANCE、BGE、OpenAI‑ADA);训练范式相近的嵌入器迁移效果最好。
- 触发器鲁棒性(表 3)
- 随机插入单词:攻击基本保持高成功率;
- 随机插入零散字母:性能下降;
- 对 query 完整复述改写(保留语义)仍然保持较高攻击效果。
- 对抗现有防御(表 4,表 6) 测试两类常见防御:困惑度 PPL 过滤、查询复述防御。
- GCG 生成乱码触发器 PPL 很高,很容易被过滤;
- AgentPoison 触发器文本通顺,PPL 分布和正常文本接近;两类防御都无法完全阻断攻击,仍然保留可观的 ASR‑t。
- 参数敏感性(图 4)
- 仅注入1 条投毒样本、单 token 触发器,依然可以实现可观 ASR‑r;投毒比例可以极低。
- 触发器 token 越多、投毒样本数量越多,攻击效果越好,但少量样本即可生效。
6 和经典 RAG 投毒对比
| 攻击 | 类型 | 触发机制 | 特点 |
|---|---|---|---|
| PoisonedRAG | 定向知识投毒 | 只要问题被投毒文档召回就篡改答案;无触发器 | 任意查询只要召回毒文档就受害;会污染部分正常查询; |
| Confundo | 定向知识投毒 | 无触发器;鲁棒对抗文档,抗重排 / 分块 | 现实威胁强;没有后门开关,无区分正常 / 触发输入 |
| AgentPoison | 后门投毒(开关式) | 必须输入特定触发器才激活攻击;干净输入几乎不受影响 | 专门针对 LLM Agent 记忆库;攻击对象是in‑context 演示样例,不是事实段落;是开关后门,不是全局污染知识库。 |
关键区别:PoisonedRAG 是 "只要检索到毒文档就中毒";AgentPoison 是后门开关,绝大多数普通查询不受影响;专门针对 Agent 依靠检索示例做规划的工作流。
7 局限性
- 触发器优化阶段需要嵌入器白盒访问;不过优化得到的触发器具备很好迁移性,可以用开源嵌入器优化,攻击闭源 API 嵌入器。
- 只评估稠密检索器,没有针对 BM25 稀疏检索做评估。
- 如果检索结果混入干净未投毒样例,攻击效果会下降;所以攻击追求 top‑k 全部召回恶意样本。
8 核心结论
- LLM Agent 的长期记忆 / RAG 知识库存在后门投毒风险;少量投毒样本即可实现开关式后门攻击。
- 通过优化嵌入空间(唯一性 + 紧致性),可以构造流畅、高迁移性的后门触发器;现有 PPL、复述防御难以完全抵御。
- 该攻击和普通 RAG 事实投毒不一样,它操纵的是 Agent 的 in‑context 演示示例,诱导工具调用与规划动作,对自动驾驶、医疗这类高风险 Agent 危害极大。



