不训练攻击模型:PIMiner 如何用策略记忆构建自进化红队 Agent
2026 年 8 月 5 日,宾夕法尼亚州立大学 Yanting Wang、Chenlong Yin、Runpeng Geng、Jinyuan Jia 等研究者发布论文《Agent Against Agent: An A
大模型红队正在经历一个很明显的变化:攻击者不再只是“生成一条更聪明的 Prompt”,而是在逐渐变成一个能够观察、复盘、积累经验,并把历史经验继续用于下一轮攻击的 Agent。
2026 年 8 月 5 日,宾夕法尼亚州立大学 Yanting Wang、Chenlong Yin、Runpeng Geng、Jinyuan Jia 等研究者发布论文《Agent Against Agent: An Agentic System for Automatic Prompt Injection Red Teaming》,提出自动化 Prompt Injection 红队系统 PIMiner。

与 GPT-Red、PISmith 等通过强化学习训练攻击模型的路线不同,PIMiner 不修改攻击模型的参数,而是把一次次攻击过程中产生的成功案例、失败条件和策略模式沉淀到外部 Strategy Library 中,让红队 Agent 在使用过程中不断积累攻击知识。
这带来了一个很有意思的变化:
过去是训练一个更强的攻击模型,PIMiner 则是在培养一个经验越来越丰富的攻击 Agent。
这也是这篇论文最值得关注的地方。
为什么自动红队总是要“从头再来”?
Prompt Injection 已经成为 Agent 场景中最典型的一类风险。
当 Agent 浏览网页、读取邮件、调用 MCP、查询数据库或者处理外部文档时,真正进入模型 Context 的信息已经不再全部来自用户,其中相当一部分来自不可信外部环境。一旦这些内容中混入指令,模型就可能错误地把“数据”理解成“指令”,进一步调用工具或执行非预期操作。
因此,如何自动生成高质量 Prompt Injection 样本,已经成为 Agent 安全评测的重要基础能力。
现有自动红队方法大致可以分为两条路线。
第一条是 Search-based Red Teaming,例如 PAIR、TAP。攻击模型先生成一条攻击,如果没有成功,就根据目标 Agent 的反馈修改 Prompt,再进行下一轮尝试。
它的优势是简单,不需要训练模型。
但问题也非常明显:它通常只在当前样本内部学习。
攻击 Sample A 时,Agent 尝试了十次,终于发现某种结构比较有效;等到 Sample B,之前的经验基本被清空,又要重新探索。
于是整个过程变成:
生成
↓
失败
↓
修改
↓
成功
↓
忘掉
↓
下一个样本重新开始。
第二条路线是 RL-based Red Teaming。
例如 RL-Hammer、PISmith,以及更大规模的 GPT-Red。这类方法让攻击模型不断与目标模型交互,通过强化学习把成功攻击模式写入模型参数。
这样一来,攻击 Sample A 的经验可以影响 Sample B,最终形成一个专门用于攻击的模型。
但代价同样很高:大量 target query、复杂的强化学习训练流程,而且对不同目标模型的迁移效果未必理想。论文指出,传统 RL 方法训练过程中往往需要数以万计的目标 Agent 查询,而类似 GPT-Red 的大规模 self-play 路线甚至接近一次前沿模型后训练的计算投入。
于是 PIMiner 提出了一个很关键的问题:
有没有可能既不训练攻击模型,又让 Search-based 红队拥有跨样本学习能力?
它给出的答案是:把经验写入外部记忆。
PIMiner:不更新参数,而是更新策略库
PIMiner 的核心思想可以用一个非常简单的对比理解。
传统强化学习红队:
攻击经验
↓
参数更新
↓
更强的 Attacker
PIMiner:
攻击经验
↓
策略更新
↓
更强的 Attacker Agent
模型参数完全可以保持不变。
真正不断变化的是它身边的一套外部攻击知识。
论文把整套系统设计成四个核心组件:
| 组件 | 作用 |
|---|---|
| Strategy Library | 保存长期攻击策略和成功/失败经验 |
| Strategy Router | 从策略库中挑选当前任务最相关的策略 |
| Iterative Attack | 根据策略和历史反馈不断迭代当前攻击 |
| Experience Digester | 复盘攻击轨迹并更新 Strategy Library |
其工作流形成一个持续循环:
Strategy Library
↓
Router
↓
Iterative Attack
↓
Experience Digester
↓
Strategy Library
每完成一批红队任务,系统都会重新总结经验,策略库也因此不断增长。
这就是 PIMiner 所谓的 Agentic Red Teaming:红队系统本身已经不再只是调用一次模型,而是形成了具有长期状态和学习过程的 Agent。

论文 Figure 1:PIMiner Pipeline。展示 Strategy Library、Router、Iterative Attack、Digester 之间的完整闭环,以及 Intra-dataset Memory 如何参与攻击过程。论文将 Strategy Library 定义为长期记忆,并通过 Digester 持续更新。
三层记忆:让攻击经验跨越三个时间尺度
PIMiner 最核心的设计并不只是 Strategy Library,而是一个完整的三层记忆体系。
第一层是 Intra-sample Memory,样本内记忆。
它解决的是最局部的问题:同一个样本连续攻击十次,后面的尝试应该知道前面的尝试发生了什么。
例如第一次尝试没有影响 Agent,第二次就需要分析失败原因;第二次虽然改变了模型输出,但没有真正触发目标行为,第三次就继续调整。
因此,每一次新的攻击都可以利用此前的攻击 Prompt、目标 Agent 的反馈、成功与否以及攻击模型自己的分析结果。
这实际上就是 PAIR 等迭代攻击方法已经具备的能力。
真正的变化出现在第二层:Intra-dataset Memory,数据集内记忆。
假设 PIMiner 正在针对某一个模型连续评测 AgentDojo 中的几十个任务。
普通方法中,这几十个任务是相互独立的。
PIMiner 则会把前面样本中积累的经验压缩成一个持续更新的摘要。例如某类策略在当前目标模型上连续失败,另一种结构却反复成功,这些信息都会进入 Intra-dataset Memory。
这样,第 20 个样本实际上已经拥有前 19 个样本留下的经验。
这让红队系统第一次具备了某种类似 test-time adaptation 的能力:
模型参数没有变化,但随着测试不断进行,它已经越来越了解当前目标模型。
第三层则是最长期的 Strategy Library。
它跨越的不再只是样本,而是 Dataset、Target Model 乃至不同红队任务。
论文将三层记忆分别定义为长期策略记忆、同一 dataset-model pair 内的经验记忆,以及当前样本内部的迭代历史。
因此整个结构可以理解为:
当前攻击怎么调整,由 Intra-sample Memory 决定;当前模型有什么特点,由 Intra-dataset Memory 逐渐总结;跨模型、跨任务有哪些通用攻击方法,则进入 Strategy Library。

Strategy Library 存的不是 Prompt,而是“攻击知识”
这里很容易产生一个误解:Strategy Library 是不是只不过把成功攻击 Prompt 保存下来,以后做 Few-shot?
实际上 PIMiner 做得比这复杂得多。
它并不希望保存一个越来越大的 Prompt 数据库,而是试图把具体攻击案例抽象成可复用的 Strategy File。
每一个策略文件都是结构化 Markdown,其中包括策略机制、适用的目标模型、适用的任务类型、通用策略模板、成功案例、策略指纹以及已知失败条件等信息。
也就是说,它保存的不是:
“这条 Prompt 曾经成功过。”
而是:
“这一类攻击为什么会成功,对什么模型有效,在什么上下文中更容易成立,又在什么场景下容易失败。”
论文甚至专门设计了 _TEMPLATE.md,规定每个策略文件如何组织。初始 Strategy Library 可以只有模板,没有任何攻击策略;随着红队过程不断进行,新的 Strategy File 才逐渐被“挖掘”出来。
这其实已经非常接近当前 Agent 体系里的 Skill。
我们可以把整个过程理解成:
Attack Trajectory
↓
Experience
↓
Strategy
↓
Skill
具体攻击实例只是最底层的数据,PIMiner 真正希望提取的是实例背后的攻击模式。
因此,这套 Strategy Library 本质上是一种外部化的攻击能力。
攻击能力不一定要存在模型参数里,也可以存在 Markdown、Memory、Skill 或结构化策略文件里。
Experience Digester:成功和失败都可以成为训练数据
Strategy Library 为什么能够持续进化?
关键是另一个组件:Experience Digester。
每轮攻击结束之后,Digester 会对攻击轨迹进行复盘。
如果某一次攻击可以被已有策略解释,它会把新的成功案例补充进去;如果某个策略原来只在一个模型上有效,现在又在另外一个模型上成功,它可以扩大 Target-LLM Scope;如果出现一种完全无法被现有策略解释的新攻击模式,则会创建一个新的 Strategy File。
更值得注意的是:失败经验同样会进入策略库。
如果某个策略理论上应该适用于一类任务,但连续出现失败,Digester 会收缩它的适用范围,或者把新发现的结构加入“Expected to Fail”条件。
于是 Strategy Library 并不是一个只收集成功 Prompt 的数据库,而是不断形成:
策略—适用模型—适用任务—成功案例—失败条件
之间的关系。
从知识工程角度看,这甚至已经很接近一个小型攻击知识系统。
它知道的不只是“怎么攻击”,而开始知道:
什么攻击、针对什么对象、在什么条件下更加有效。
策略越来越多怎么办?Router 本质上是一次“攻击知识 RAG”
经验积累也会带来一个新的问题。
如果 Strategy Library 中只有三种策略,全部塞进 Context 问题不大;如果以后逐渐积累几十甚至几百种策略,每次攻击都把整个策略库发给大模型,Token 成本会迅速增长,而且大量无关知识反而可能影响模型判断。
因此 PIMiner 又加入了 Strategy Router。
Router 会根据当前目标模型、用户任务、待注入任务和上下文特点,从 Strategy Library 中挑选最相关的 Top-K 策略。
实验默认 K=3。
所以从 RAG 的视角看:
Dataset Sample = Query
Strategy Library = Knowledge Base
Strategy Router = Retriever
Attacker = Generator
只不过传统 RAG 检索的是文档,这里检索的是攻击策略。
这一机制对成本影响非常明显。论文消融实验发现,加入 Router 后,Claude-Haiku-4.5 攻击 Agent 的平均输入长度下降约 43%,Claude-Sonnet-4.6 下降约 61%;攻击效果基本没有损失,其中 Sonnet 条件下 ASR 甚至提升了 7.5 个百分点。
这也说明一个很现实的问题:
Agent Memory 并不是越多越好,真正重要的是能不能在正确的时候取出正确的记忆。
让系统自己“挖”攻击策略
经过训练之后,PIMiner 最终自动总结出了七类不同的 Prompt Injection 策略,并因为部分策略针对 AgentDojo 和 IPIArena 形成了不同变体,最终得到 10 个 Strategy Files。
这些策略覆盖了几种典型思路,例如把非可信内容包装成流程前置条件、伪造新的对话轮次、把指令隐藏到用户本来就需要读取的数据字段、模拟可信主体的后续消息、构造虚假的历史交互链等。
这里真正值得关注的并不是这些攻击名称本身。
不少思想过去的 Prompt Injection 研究中已经不同程度出现过。
PIMiner 的价值在于:这些策略不是人工提前写进去的,而是系统从大量成功和失败轨迹中自己归纳出来的。
论文进一步统计了这些策略在不同模型上的分布,结果发现攻击知识存在明显的模型偏好。
例如 Forged Chat Turn 的成功案例主要集中在 GPT-5-nano,而 Fabricated Procedure Gate 在 Claude-Haiku-4.5 上最常出现;Authenticated-Principal Voice Forge 的八个案例则全部来自 Claude-Sonnet-4.5。
换句话说,系统最后学习到的并不是一个简单的:
Attack Strategy List
而逐渐变成:
Strategy × Model × Task × Context
这样的多维经验。

论文 Table 5:PIMiner 自动发现的七类 Prompt Injection Strategy。建议正文中只展示策略名称和简化后的机制描述,不展示具体攻击 Payload。
不训练模型,攻击能力究竟能提升多少?
论文使用 AgentDojo、IPIArena 和 InjecAgent 进行实验。
训练阶段实际上非常小:AgentDojo 只随机抽取 20 个训练样本,IPIArena 也是 20 个训练样本;两者分别有 30 和 21 个测试样本。随后组合 GPT-5-nano、GPT-5、Claude-Haiku-4.5、Claude-Sonnet-4.5,形成八组 dataset-model pair,用于逐步建设 Strategy Library。默认 PIMiner Backbone 使用 Claude-Opus-4.7,每个样本最多进行 10 次攻击尝试。
最终效果相当明显。
在 AgentDojo 上,PIMiner 对 GPT-5-nano 的 ASR@10 达到 53%,高于论文中的 PISmith 结果 38%;在 GPT-4o-mini 上达到 73%,与 PISmith 的 78% 接近。InjecAgent 上三个目标模型的 ASR@10 均达到 1.0。
在更广泛的九个前沿模型测试中,模型之间的差异也非常大。
例如在 IPIArena 上,Gemini-2.5-Pro 的 ASR@10 为 76.2%,GPT-5.1 为 61.9%,Claude-Sonnet-4.5 为 42.9%;而 Claude-Opus-4.5 只有 4.8%。AgentDojo 上同样如此:Gemini-2.5-Pro 达到 86.7%,GPT-5.1 为 53.3%,Claude-Sonnet-4.5 为 40.0%,Claude-Opus-4.5 则只有 3.3%。
这些数据也再次说明,Agent Prompt Injection 鲁棒性目前仍然存在明显的模型差异。
但对于 PIMiner 来说,更重要的并不是绝对 ASR,而是下面这个消融实验。
真正证明 PIMiner 有效的,是“三层记忆”消融实验
如果 PIMiner 效果好只是因为背后使用了一个强模型,那么 Strategy Library 并没有什么价值。
所以作者专门进行了记忆机制消融。
使用 Claude-Haiku-4.5 作为攻击 Backbone 时,只保留传统 PAIR 式样本内记忆,平均 ASR 为 13.1%;加入 Strategy Library 后达到 19.4%;加入 Intra-dataset Memory 后达到 20.6%;三层机制全部启用,最终达到 32.9%。
换成更强的 Claude-Sonnet-4.6,同样的数字从 50.6% 逐渐提升到 60.5%、64.1%,最终达到 68.4%。
完整 PIMiner 相比传统迭代攻击分别提升了 19.8 和 17.8 个百分点。
这证明了论文最核心的判断:
攻击能力的提升,并不一定需要修改模型参数。
只要让 Agent 能够跨样本保存、压缩和重新调用经验,搜索型攻击同样可以获得明显的学习能力。

论文 Figure 3:Memory Mechanism Ablation。清楚展示 Vanilla PAIR、仅加入 Strategy Library、仅加入 Intra-dataset Memory 与完整 PIMiner 的性能差异。
策略库甚至可以换一个攻击模型继续使用
PIMiner 还有一个容易被忽略、但非常关键的实验。
作者把训练出来的 Strategy Library 从原来的攻击 Agent 中拆出来,接到普通 PAIR 上,并更换不同攻击模型,包括 Gemini、GPT 和 DeepSeek 系列模型。
结果这些模型几乎都得到了明显提升。
例如以 Gemini-2.5-Flash 作为 Attacker 时,对 GPT-4o-mini 的攻击 ASR 从 14% 提升到 52%。
这个实验实际上回答了一个非常重要的问题:
这些能力到底属于 Claude-Opus,还是属于 Strategy Library?
结果表明,至少其中相当一部分已经可以脱离原始模型独立迁移。
这意味着攻击能力正在从模型权重中被“解耦”出来。
过去我们可能把红队系统理解成:
Attacker Model = Attack Capability
PIMiner 给出的结构更接近:
Attack Capability = Base Model + Strategy Library + Memory + Router + Experience
Strategy Library 因此开始具备某种可以被保存、迁移和复用的攻击能力资产属性。
这和 GPT-Red 是两条完全不同的“自进化”路线
从更大的技术趋势看,PIMiner 很适合与 OpenAI 的 GPT-Red 放在一起理解。
两者都想解决同一个问题:
如何让自动红队随着攻击次数增加而越来越强?
GPT-Red 选择把经验写入参数。
大量攻击 Agent 与 Defender 进行 self-play,再利用强化学习训练一个专门的 red-teaming model。
PIMiner 则选择把经验写入外部 Memory。
前者可以称为:
Parametric Learning
后者则更接近:
Non-parametric / External Memory Learning
因此,自动红队正在逐渐出现两条“自进化”路线:
路线一:训练攻击模型。
攻击
↓
Reward
↓
RL
↓
权重更新。
路线二:进化攻击 Agent。
攻击
↓
Reflection
↓
Experience
↓
Strategy Library
↓
下一轮攻击。
前者需要算力,后者需要记忆与知识管理。
而 PIMiner 最值得关注的地方,恰恰在于它证明了:
“自进化”并不天然等于“继续训练模型”。
Agent 完全可以通过外部状态完成能力积累。

20 美元训练一个红队 Agent?这个数字需要谨慎理解
论文还强调了 PIMiner 的低成本。
作者表示,如果 Attacker、Router 和 Digester 使用已有 Claude Code 订阅,训练期间额外查询 Target LLM 的 API 支出约为 20 美元。
但这里需要注意统计口径。
论文 Appendix 的完整成本估算中,Attacker 的推理成本约为 115 美元,Router 约 7 美元,Digester 约 5 美元,Target LLM 约 20 美元。
前三部分只是因为通过 Claude Code Subscription 使用,所以没有计算进实际额外 API 支出。
如果全部按照模型调用成本计算,总成本大约在 147 美元左右。
因此,“20 美元就训练出了强红队 Agent”并不完全准确。
更准确的说法应该是:
PIMiner 大幅降低了昂贵 Target Model 的训练查询成本,同时把主要计算转移到了通用攻击模型和外部记忆维护上。
尽管如此,与需要成千上万次 Target Query 和 RL Training 的路线相比,它的工程门槛确实低得多。
PIMiner 依然不是一个成熟的生产级红队系统
当然,这篇论文也存在几个很明显的限制。
首先是数据规模。
IPIArena 测试集只有 21 个样本,意味着一个样本就对应约 4.76 个百分点;AgentDojo 也只有 30 个测试样本。因此部分模型之间看起来几个百分点的 ASR 差异,统计意义其实非常有限。
其次,大量结果使用 ASR@10。
它代表每个样本最多允许攻击十次,只要其中一次成功就计为攻击成功。
因此 80% 的 ASR@10 并不意味着“一条攻击 Prompt 有 80% 的成功率”。
对于真正的生产红队系统,更应该同时观察 ASR@1、ASR@5、ASR@10、平均成功尝试次数以及每个漏洞的 Token/API 成本。
最后,目前实验仍主要集中在 AgentDojo、IPIArena 和 InjecAgent 等 Benchmark。
真实生产 Agent 往往还存在浏览器、MCP、身份系统、复杂权限、人机确认、沙箱、Guardrail、多 Agent 和长任务轨迹等大量组件。
因此目前 PIMiner 更准确的定位仍然是:
Benchmark-level Agent Prompt Injection Red Teaming Framework。
距离真正持续扫描生产 Agent 的“自动安全研究员”,仍然有相当长的一段距离。
真正值得警惕的,是“能力正在迁移到模型参数之外”
如果只把 PIMiner 看成又一个 Prompt Injection 攻击框架,很容易低估这项工作的意义。
它真正展示的是当前 Agent 技术正在发生的一次基础变化:
过去我们习惯认为:
模型能力 ≈ Model Weights
但 Agent 时代越来越接近:
Agent Capability = Model + Prompt + Memory + Skill + Tools + Experience
PIMiner 中的模型参数甚至可以完全不变化。
但是随着几十次、几百次攻击不断发生,它的 Strategy Library 越来越丰富,Intra-dataset Memory 越来越了解目标模型,Router 也越来越容易找到正确的策略。
最终,同一个模型背后的 Agent 已经变得明显更强。
从安全角度看,这带来了一个比自动红队本身更加重要的问题:
一个 Agent 今天是安全的,并不意味着运行半年之后仍然拥有相同的能力边界。
如果它可以自动把轨迹转化为经验,再把经验转化为长期 Skill,那么 Agent 实际上拥有了一套与模型参数完全独立的“第二学习系统”。
这套系统既可以被用于 PIMiner 这样的安全红队,也可能成为新的风险来源。
因为只要经验能够提升能力,攻击者自然就会尝试污染经验。
于是最近越来越多看似不同的研究开始串成一条完整链路:
轨迹
↓
经验
↓
Memory/Skill
↓
能力提升
与此同时:
外部输入
↓
轨迹污染
↓
经验污染
↓
Skill/Memory 污染
↓
长期行为改变
PIMiner 展示的是这套机制的正向价值:让红队 Agent 越测越强。
而 Memory Poisoning、Skill Poisoning、自进化 Agent 轨迹投毒等研究讨论的,则是这套机制的另一面。
因此未来 Agent 安全真正需要回答的问题,可能已经不只是:
“这个模型现在安全吗?”
而是:
“一个允许不断积累经验的 Agent,在运行足够长时间之后,最终会变成什么?”
这或许才是 PIMiner 给 Agent 安全带来的最大启发。
写在最后
PIMiner 并没有发明一种颠覆性的 Prompt Injection 技巧。
它真正改变的是攻击知识的组织方式。
过去的 Search-based 红队更像一个没有长期记忆的测试人员:一个问题反复尝试,解决之后经验也随之消失。
RL-based 红队则选择重新训练这个测试人员的大脑。
PIMiner 走了第三条路:
大脑不变,但给测试人员建立一本会自己更新的攻击手册。
每攻击一次,它都可能多记住一条经验;每换一个模型,它都可能重新校准策略的适用范围;当已有方法无法解释新的成功案例时,它甚至会创建新的策略。
最终真正持续进化的不再是某个模型,而是:
Model + Memory + Strategy + Experience 组成的整个 Agent 系统。
对于自动红队来说,这是一个非常自然的方向。
而对于 Agent 安全来说,它同样提出了一个值得更早开始思考的问题:
当经验本身开始成为 Agent 能力的一部分,我们应该如何控制这些经验的产生、写入、继承与删除?
这可能会成为继 Tool、MCP、Identity 和 Permission 之后,Agent 安全下一阶段非常重要的一块基础设施。
同专题推荐
查看专题不需要提示注入,也能让 GraphRAG 推理出错:LogicPoison 揭示的知识完整性风险
本文研究论文经「模安局·共研计划」推荐,由《模安局》独立完成解读。
40 款 Coding Agent 的十大安全机制
有些 Agent 在执行 Shell 命令之前会要求用户确认,有些可以开启完全自动授权;有些能够限制 Agent 访问的文件目录,有些则依赖容器沙箱;
AgentSpy:如何让 AI Agent 的真实行为变得可观测
但这里存在一个容易被忽视的问题:Agent 的执行日志,真的能够完整反映它做过的事情吗?