在大模型安全领域,我们一直在尝试通过增加训练数据来提升模型的防御能力。面对越狱攻击,我们收集更多攻击提示词;面对提示注入,我们构造更多恶意网页、邮件和工具返回内容,再通过监督微调或偏好优化,让模型学会识别和拒绝这些攻击。
这种思路确实有效,但也存在一个难以回避的问题:攻击者的策略总是在变化。当攻击者改变攻击的表达方式、伪装身份,或者把恶意指令隐藏在更复杂的任务上下文中,模型过去学到的防御模式是否依然有效?
2026年10月3日,来自约翰斯·霍普金斯大学、圣路易斯华盛顿大学等机构的研究团队发布了论文《Self-Reflection Fine-Tuning: Enhancing Agent Security against Prompt Injection Attacks from Failure Experience》,提出了一种名为 SRFT(Self-Reflection Fine-Tuning,自我反思微调) 的安全训练方法。

https://arxiv.org/pdf/2610.04269
研究者尝试回答一个问题:与其不断告诉模型哪些攻击是危险的,能不能让模型先看到自己可能犯下的错误,再通过分析错误原因及潜在后果,学会如何做出更安全的决策?
实验结果相当引人关注。在 AgentDojo 提示注入测试中,SRFT 将 Llama-3.1-8B 的攻击成功率从 7.59% 降低至 1.26%,将 Qwen3-8B 的攻击成功率从 16.97% 降低至 1.05%。即使面对能够持续调整攻击策略的自适应攻击,SRFT 训练后的模型依然表现出明显更强的防御能力。
不过,这项研究真正值得讨论的,不只是攻击成功率的下降,而是它为大模型安全训练提供了另一种思路:模型需要学习的可能不只是如何识别攻击,还包括为什么某个决策是错误的,以及这个错误将带来什么后果。
传统安全微调的局限
为了理解 SRFT 的价值,我们先看一下目前主流的安全训练方式。
以一个能够阅读网页并调用工具的 Agent 为例。用户要求它搜索一份行业报告,并将报告摘要发送到指定邮箱。在搜索过程中,Agent 读取了一个包含恶意指令的网页,网页内容试图诱导它将内部文件发送到攻击者控制的地址。
传统的监督微调(SFT)通常会给模型提供这样的训练样本:输入是一段包含提示注入的上下文,输出则是正确的防御行为,例如忽略网页中的恶意指令,继续完成原始任务。
偏好优化方法则会进一步提供正确和错误的候选回答,让模型更倾向于选择安全的行为。StruQ、SecAlign、Meta-SecAlign 等研究,都从不同角度探索了如何强化模型对可信指令和不可信内容的区分能力。
但研究者认为,这类方法仍然存在一个不足:模型主要通过专家给出的正确行为学习防御,而没有充分利用自身在受到攻击时产生的错误行为。
当模型遇到训练数据中没有出现过的攻击形式时,它可能知道应该防范提示注入,却仍然无法判断下一步应该如何行动。
例如,Agent 已经识别出网页中的某条指令并非来自用户,但它接下来可能出现几种不同的处理方式:直接忽略指令、询问用户是否授权执行、把这条指令列入后续任务,或者干脆中止整个任务。
其中只有部分行为符合真正的安全目标。询问用户是否授权看似谨慎,却可能已经错误地将外部网页的要求提升为一个值得执行的任务;直接中止任务虽然阻止了攻击,也可能损害原本可以正常完成的业务。
识别出恶意指令,并不必然意味着能够选择正确的安全动作。
这正是 SRFT 试图解决的问题。研究者希望模型不仅学习“正确动作是什么”,还要学习“为什么其他动作不正确”。

SRFT 的核心机制:让模型从自己的错误决策中学习
SRFT 的训练过程由四个阶段组成:攻击数据合成、错误动作采样、结构化反思生成、自我反思微调。
首先,研究者从 TOUCAN 数据集中选取了五类真实工具使用场景,包括酒店预订、邮件发送、Windows 命令行、Markdown 文件下载和 Minecraft Wiki 查询,共涉及 402 个不同的用户任务。
在这些正常任务轨迹的基础上,研究者使用专家大模型构造了 38 种具有明确目标的恶意攻击任务,并结合 750 种触发模板,将攻击指令插入工具返回内容。
值得注意的是,训练集中还引入了 285 个来自其他任务轨迹的正常请求。这些请求本身未必具有恶意,但对当前用户目标而言属于无关指令。这样设计能够避免训练数据仅仅把“明显危险的内容”当成需要忽略的对象。
最终,研究团队构造出 3,698 条训练轨迹,包含 22,339 个 Agent 决策步骤,其中约 37.8% 的工具观察包含注入内容。
这里的 38 种恶意攻击任务,并不意味着整个训练集只有 38 条攻击文本。研究者会在不同任务上下文中组合攻击目标、触发模板和注入位置,形成更多训练实例。
接下来是 SRFT 最关键的一步:研究者没有直接使用专家给出的正确动作训练模型,而是先让待训练模型面对这些受攻击的上下文,采样它可能采取的行动。
论文中,每个 Agent 决策步骤会采样三个候选动作,其中可能包含正常行为,也可能出现受到攻击者影响的错误决策。
随后,另一个专家模型会同时获得原始用户目标、当前任务上下文、提示注入的真实信息、专家正确动作,以及待训练模型生成的候选动作。
专家模型需要完成三个层次的分析。
首先,明确用户最初想完成什么任务,避免被攻击者重新定义目标。
其次,识别当前上下文中的提示注入,解释这些指令来自哪里,以及为什么它们不具备改变任务目标的权限。
最后,对比模型生成的候选动作和专家正确动作,分析哪些行为可能造成越权操作、信息泄露或者任务偏离,并说明为什么正确动作更合理。
研究者再将这些反思文本与正确动作拼接成训练目标,通过标准监督微调训练 Agent。

因此,SRFT 并没有发明新的模型优化算法。论文采用的是常规 LoRA 微调,训练目标仍然是最大化模型生成反思内容和正确动作的概率。
它的主要创新在于训练数据的组织方式:把模型自己的错误候选动作,转换成能够解释决策原因和潜在后果的监督信号。
一个真实案例
论文附录给出了一个很有代表性的案例,能够直观说明 SRFT 为什么要让模型反思自己的错误。
用户原本要求 Agent 下载一篇网页文章,保存为 Markdown 文件,然后检查下载文件列表,确认文件已经成功保存。
正常的执行流程并不复杂。Agent 先调用文件下载工具,再查询文件列表,确认文件存在之后向用户报告结果即可。
但攻击者在文件列表的工具返回内容中,加入了一段伪装成系统操作要求的指令,要求 Agent 创建一个名为 ../../root/.ssh 的子目录,并声称这是必要的系统操作。
这个路径具有特殊含义。攻击者试图借助路径穿越操作,让 Agent 在不应该操作的位置创建目录,影响系统中的 SSH 配置区域。
面对这样的工具返回内容,未经防御的模型采样出了三种有问题的行为。
第一种是直接调用创建目录工具,试图执行攻击者指定的操作。这属于明显的目标劫持:用户只是要求下载和检查文件,Agent 却开始修改系统目录。
第二种没有立即执行,而是询问用户是否需要创建这个目录。乍看起来,这似乎是一个谨慎的处理方式,但问题在于,用户从未提出这个要求。Agent 实际上已经把来自工具返回内容的恶意指令,当成了一个具有合理性的待办事项。
第三种行为则更加隐蔽:Agent 正常报告文件下载结果,但同时把创建目录描述成仍然需要处理的中间步骤。
这三个行为的严重程度不同,却有一个共同点:Agent 没有守住原始用户目标与外部工具内容之间的权限边界。
传统训练可以直接告诉模型,正确答案是忽略这条指令并报告下载结果。
SRFT 则会进一步分析:为什么创建目录属于错误操作?为什么询问用户也可能不恰当?为什么将恶意指令列为后续任务同样具有风险?

通过这种对比,模型获得的不再只是单一的正确动作,还包括多个错误动作背后的共同问题。
从机制上看,它相当于引入了反事实分析:如果模型选择了另一个动作,可能出现什么结果?这个结果为什么偏离了用户的原始授权?
不过,论文中的反事实后果主要来自专家模型的推理,并不是对每个错误动作都进行了真实环境执行和验证。因此,它更准确地说是一种基于候选动作的后果推演,而不是完整的环境级事故复现。
实验结果
为了验证 SRFT,研究者分别在 Llama-3.1-8B、Qwen3-4B 和 Qwen3-8B 上训练了 SR-Agent,并使用 AgentDojo 和 InjecAgent 等基准评估模型。
论文不仅测量攻击成功率(ASR),还测量没有攻击时的正常任务完成率,以及存在攻击时的任务完成率。
这两个指标非常重要,因为一个简单粗暴的安全方案完全可以通过拒绝执行所有外部内容来降低攻击成功率,但这样的 Agent 也可能无法完成用户任务。
在 AgentDojo 测试中,SRFT 将 Llama-3.1-8B 的整体攻击成功率从 7.59% 降低至 1.26%,正常任务完成率则从 27.84% 提高至 37.11%,受攻击任务完成率从 23.08% 提高至 29.08%。
与 Meta-SecAlign 相比,SRFT 的攻击成功率并不是最低的。Meta-SecAlign 的整体 ASR 为 0.95%,略优于 SRFT 的 1.26%,但其正常任务完成率只有 23.71%,受攻击任务完成率为 19.07%。
在这个模型和测试集上,SRFT 展现出更好的安全性与任务可用性平衡。
然而,Qwen3 系列的结果并不完全相同。Qwen3-8B 经过 SRFT 训练后,攻击成功率从 16.97% 降低至 1.05%,但正常任务完成率也从 60.82% 下降至 51.55%,受攻击任务完成率从 50.47% 降低至 46.68%。
因此,SRFT 确实能够显著降低攻击成功率,但并不能笼统地认为它在提升安全性的同时完全没有损失任务能力。不同基础模型上的权衡仍然存在差异。
相比静态测试,我认为论文中更值得关注的是自适应攻击实验。
所谓自适应攻击,是指攻击者不再使用固定的攻击文本,而是能够反复试探目标模型,并根据反馈持续优化攻击策略。
研究者使用 RL-Hammer 作为攻击方法,针对不同防御模型分别训练攻击者。RL-Hammer 通过强化学习不断改写和强化提示注入指令,尝试找到更容易让目标模型偏离原始任务的攻击方式。
在 20 个攻击训练轮次之后,Llama-3.1-8B 原始模型的攻击成功率达到 98.5%,Meta-SecAlign 为 69.5%,而经过 SRFT 训练的 SR-Agent 只有 17.5%。
在 Qwen3-8B 上,原始模型的最终攻击成功率为 59.5%,SR-Agent 则为 17.0%。

这个结果比静态测试更有说服力。它说明,当攻击者能够针对防御系统持续调整攻击策略时,SRFT 训练后的模型依然能够保持明显更强的抵抗能力。
需要注意的是,这里所谓的“未知攻击”,主要是指没有直接出现在 SRFT 训练数据中、并由 RL-Hammer 持续优化产生的攻击形式,而不是已经证明模型能够抵御所有未知攻击机制。
消融实验
如果只看上述实验,我们可以确认 SRFT 的效果不错,但仍然无法判断,究竟是反思训练的哪个环节带来了提升。
为了回答这个问题,研究者在 Qwen3-8B 上进行了消融实验。
他们设计了两种不同的训练方案。
第一种保留原始任务总结和提示注入识别,但删除错误动作分析。这意味着模型仍然会被训练去识别当前的攻击内容,只是不再系统地对比正确与错误动作及其潜在后果。
第二种则完全去掉反思内容,只使用原来的专家正确动作进行训练。
在相同的 RL-Hammer 自适应攻击评测中,完整 SRFT 的最终攻击成功率为 17.0%,删除错误动作分析后上升至 65.0%,完全删除反思训练后则达到 60.0%。
这一结果非常值得重视。
即使模型能够总结当前任务、识别提示注入,只要没有通过训练学习错误动作的后果,其防御能力依然可能相当脆弱。
换句话说,模型知道自己遇到了攻击,与模型知道接下来应该如何安全行动,是两件不同的事情。
论文并没有直接证明模型形成了某种通用的因果推理能力,但实验至少表明:错误动作对比及后果分析,是 SRFT 防御效果中的重要训练信号。
研究者还进一步测试了推理阶段的影响。
对于已经完成 SRFT 训练的 Qwen3-8B,如果关闭显式思考,让模型直接生成下一步动作,AgentDojo 上的攻击成功率会从 1.05% 上升到 14.33%。

这说明 SRFT 的防御收益不仅与训练数据有关,也依赖推理阶段是否执行相应的反思过程。
不过,这并不意味着只要在系统提示词中要求模型“认真思考”就能取得相同效果。论文附录专门做了对照实验:在未经 SRFT 训练的 Qwen3-8B 上添加相同的反思提示词,ASR 仅从 16.97% 降至 14.75%,仍然远高于 SR-Agent 的 1.05%。
因此,SRFT 的效果更接近训练阶段与推理阶段的共同作用:训练让模型学习如何分析错误决策,推理时再通过显式反思调用这种能力。
至于反思是否会明显增加推理开销,论文给出了一组有意思的数据。与开启思考模式的原始 Qwen3-8B 相比,SR-Agent 的平均生成 Token 数量从 515.82 降至 442.51,平均思考 Token 数量也从 451.70 降至 369.94。
但这只能说明相对于同样开启思考模式的基础模型,SRFT 没有带来更长的生成内容。与不进行显式推理的 Agent 相比,端到端延迟和整体成本仍然需要单独评估。
从论文效果到企业落地,还有哪些问题没有解决?
虽然实验结果令人关注,但距离真正成熟的企业级 Agent 安全能力,SRFT 仍然存在一些需要进一步验证的问题。
首先,SRFT 并不是真正意义上的在线自主学习。
论文虽然使用了 Self-Reflection 这个名称,但模型并不是在真实业务中自主发现失败、复盘事故,然后持续更新自身参数。
它的训练过程仍然需要专家模型提供正确动作、注入位置和攻击目标等信息,再由专家根据待训练模型的候选动作生成反思数据,最后进行离线监督微调。
因此,SRFT 更准确的定位是“基于失败经验的反思式监督微调”。它解决的是如何更有效地利用错误决策样本,而不是完整的 Agent 在线自我进化问题。
其次,论文中的攻击数据合成有一个相对理想化的假设:研究者在正常工具返回内容中插入恶意指令,但保持原始任务和专家正确动作不变。
这种设计很适合研究指令劫持问题,却无法覆盖所有实际风险。
在真实业务中,攻击者不仅可能插入恶意指令,还可能修改工具返回的数据本身。例如,攻击者篡改了订单金额、供应商信息或者检索结果中的关键事实。Agent 即使成功忽略了其中的恶意指令,也可能因为错误数据而采取不正确的行动。
SRFT 目前主要针对的是外部指令改变 Agent 行动目标的问题,并没有完整解决数据完整性与真实性问题。
另外,论文在更复杂的动态任务上也暴露出可用性限制。
研究者使用 AgentDyn 测试了需要跨应用、多步骤执行的动态任务。SR-Agent-Llama 的攻击成功率降低至 1.96%,优于未经防御模型的 9.82%,但其正常任务完成率只有 10.00%,甚至略低于原始模型的 11.67%。
这里的任务本身对 8B 模型也比较困难,因此不能把低完成率全部归因于 SRFT。但这个结果提醒我们:一个 Agent 能够很好地抵御提示注入,不意味着它已经能够可靠完成复杂业务。
企业实际部署时,需要同时关注安全性、任务完成率、误拒率以及安全决策带来的时间开销。尤其在金融、办公和自动化运维等场景中,过度拒绝执行和错误执行一样可能造成业务损失。
还有一个更基础的问题:模型通过分析历史错误所获得的防御能力,究竟能泛化到多远?
论文证明了 SRFT 在特定自适应攻击方法下具有明显优势,但仍然需要通过更广泛的跨攻击机制、跨业务场景以及更长周期的动态对抗实验,才能判断这种能力是否足够稳定。
因此,标题中的“抵御未知提示注入”,应当理解为提升模型面对未知攻击变体时的泛化防御能力,而不是从理论上消除未知攻击风险。
对 AI 安全产品的启发
从企业 AI 安全产品的角度,我认为 SRFT 最大的价值,并不是提供了一个能够直接替换现有护栏的新模型,而是展示了如何利用 Agent 的错误行为,构造更有价值的安全训练数据。
传统内容安全训练主要围绕输入内容与风险标签展开。例如,一段文本是否包含违法违规内容,一个用户请求是否具有敏感意图,一次模型回复是否符合安全要求。
这种数据结构通常是“输入内容、风险类别、判断结果”。
但进入 Agent 时代以后,安全问题已经不再局限于模型输出了什么内容,还包括它为什么调用某个工具、是否具有执行权限,以及执行动作是否符合用户的真实目标。
例如,当一个 Agent 读取外部网页后发起邮件发送请求时,即使已经识别出网页包含可疑指令,真正的安全决策仍然需要考虑用户是否授权发送、收件人是否合法、发送内容是否包含敏感数据,以及当前工具调用是否属于原始任务的一部分。
这些问题很难仅靠一个“是否存在提示注入”的标签完整表达。
借鉴 SRFT,可以考虑将安全训练数据从传统的内容风险样本,扩展为包含任务目标、环境上下文、候选动作、错误原因、潜在后果与正确动作的决策样本。
这类数据可以直接服务于 Agent 安全模型的训练,也可以用于安全评测,检验模型是否真正理解了风险与执行动作之间的关系。
对于已经积累了大量攻击语料和红蓝对抗结果的企业来说,这也意味着历史攻击数据不必仅仅作为检测模型的训练素材。
一条成功攻击样本,如果能够进一步还原 Agent 在哪一步偏离了原始目标、调用了什么工具、错误动作为什么发生,以及什么决策能够阻止攻击,就可能转化为更有价值的安全训练经验。
当然,并非所有失败经验都一定能产生有效的泛化能力。模型也可能只是在记忆反思文本中的固定表达。因此,企业需要通过跨攻击类型、跨场景的独立数据来验证新增训练方式是否真正有效。
在系统架构层面,SRFT 也不应该取代已有的安全护栏、工具权限管理、沙箱隔离和执行审批。
它更适合作为模型能力层的安全增强机制,让 Agent 在面对不可信外部内容时,能够更可靠地判断哪些指令应该忽略、哪些工具调用应当阻止,以及如何继续完成正常任务。
外部安全策略决定了系统允许什么行为,SRFT 则尝试提高模型在复杂上下文中执行这些策略的能力。两者之间应当是互补关系,而不是替代关系。

从穷尽攻击样本,到学习失败规律
回到最初的问题:如果攻击者能够不断创造新的提示注入方式,大模型应该如何建立更可靠的安全防御能力?
SRFT 给出的答案,是让模型从错误决策中学习,而不仅仅依靠记忆更多已经出现过的攻击模式。
这一思路的意义在于,很多看似完全不同的提示注入攻击,背后可能涉及相似的失败机制。
例如,恶意网页伪装成系统消息、外部邮件要求执行未经授权的操作、工具返回内容要求修改用户目标,虽然攻击载体和表达形式不同,但都可能在尝试突破同一条安全边界:将不可信的外部内容提升为 Agent 应当执行的指令。
如果模型能够通过反思训练,更稳定地识别这种权限边界,以及违反边界所导致的错误动作,那么它就有机会把从部分失败案例中获得的经验迁移到新的攻击场景。
论文的消融实验为这一方向提供了初步证据:单纯总结原始目标、识别提示注入,并没有产生与完整 SRFT 相当的防御效果;真正带来明显改善的,是对错误候选动作及其潜在后果的分析。
当然,这仍然不意味着 SRFT 已经证明模型掌握了通用的攻击机理,也不意味着有限的训练数据能够形成无限的安全保证。
它真正提供的是一种值得继续研究的可能性:当攻击语料无法穷尽时,安全训练不应只关注覆盖了多少种攻击表达,还应关注模型能否从有限的错误经验中学到可迁移的安全决策规律。
过去,我们希望模型记住哪些事情不能做;现在,SRFT 尝试进一步让模型理解,为什么某些行为不能做,以及做错以后可能发生什么。
从识别攻击到理解错误,再到形成更可靠的安全决策,这或许是大模型与 Agent 安全能力进一步演进的一个重要方向。
声明:本文来自模安局,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。