唯一在相同输入上给这四个都打过分的基准,由排在榜首的那家厂商自己维护——而这还是问题里最轻的那一层,因为真正决定你能跑哪个检测器的那两个数字,谁的排行榜上都没有:你自家流量上的误报率,以及这个检测器给每一次工具结果加上的那几毫秒。请按许可证、放置位置与延迟来挑,这些今天就可知;而把每一个已发表的准确率数字,都当作一方利益相关者的主张来对待,直到你在自己的语料上把它复现出来为止。
一眼概览
四个被当作可以互换来推荐的检测器,按「你能核实什么」来读。
| 检测器 | 交付形态 | 权重与许可证 | 它发表的证据 |
|---|---|---|---|
| Lakera Guard | 托管 API | 未发布 | 它自己领先的 PINT 基准 |
| Llama Prompt Guard 2(22M / 86M) | 可下载的分类器 | Llama 社区许可证——用途受限,非 OSI 认可 | 模型卡 |
| Azure AI Content Safety Prompt Shields | 托管 API,绑定单一云 | 未发布 | 文档,无分数 |
ProtectAI deberta-v3-base-prompt-injection-v2 | 可下载的分类器 | Apache-2.0,无门禁 | 模型卡,另有第三方复跑 |
先读最后一栏。这四个里有一个发表了一份基准,而那份基准正是四个都在上面被比较的那一份。这不是在指控谁不诚实——Lakera 之所以造 PINT,恰恰因为公开的注入数据集已被污染,而把这套测评开源出来是对的直觉。它说的是这个生态手里有的是哪一类证据:一把共享的尺,握在一个竞争者手里。
那把共享的尺,以及握着它的人
PINT 是什么
Prompt Injection Test 基准的存在有一个好理由。公开的注入数据集会漏进训练集,于是一个在它们上面微调过的分类器在它们上面考得好、在别的东西上考得差;PINT 自述的目的,是在不依赖那些系统本可以针对性优化的数据集的前提下评估检测系统。第三方摘要把这个数据集说成 4,314 条输入,含英语与非英语,把来自公开来源的注入与 Lakera 自有的专有收藏混在一起——而这一点是真正的好设计——良性输入里还包含难负例,也就是看起来像注入、其实不是的文本。
方法说明里有三件事会改变你读那张图的方式
仓库里的方法说明很具体,而这些具体之处比那个排名更要紧。Azure Prompt Shields 只要它的用户提示盾或文档盾中任一个标出攻击,就记为一次正例;对一个有两个端点的产品来说这是合理的选择,但它比一个单分类器的判词门槛更松。Lakera Guard 自己那几次运行只用了 prompt-attack 这一类,针对的是 2025 年 5 月 2 日的 API 版本 2.0.106。开放权重的对照组按标签计分:ProtectAI 的 DeBERTa 吐出 INJECTION 算正例,Meta 的 Prompt Guard 1 与 2 吐出 injection 或 jailbreak 算正例。
然后是日期。那些方法说明已有五百多天。变更日志记录着 Azure Prompt Shields 在 2024 年 4 月被加进结果表,以及公开与内部的提示注入类别在 2025 年 12 月被合并——那是对「这份基准在测什么」的一次改动,而它发生在流传中的大多数数字被产出之后。这里没有任何东西被隐藏;它全都在仓库里。它只是不等于一位读者从一张条形图上带走的东西。
那个对不上的数字
一篇 2025 年的 arXiv 论文研究针对注入与越狱检测器的规避攻击,其中报告 Lakera Guard 在 PINT 上为 92.5461%,并把它表述为有 7.5439% 的输入被错误分类。常被引用的厂商数字约为 95.2%。两者都是对一个移动目标的合理读数——不同的 API 版本、不同的类别选择、一个此后已被重构的数据集的不同快照——而值得带走的正是这一点,而不是任何一种裁决。当两方都很谨慎地在同一个具名基准上报告同一个检测器,却差出将近三个百分点时,那份基准就不是一把尺。它是某一种配置的一张照片。
对任何「数字与厂商已发表数据完全吻合」的第三方比较都该起疑。它抄的是那张表,而不是复现了那次运行——而那张表上有一个日期,这类比较通常会把它丢掉。
决定部署的那个数字是缺失的
去问任何一个把检测器关掉的团队为什么关。几乎没人说它漏了一次攻击。他们说它拦了一个客户。误报才是让一道护栏被停用的东西,而它也恰好是这个生态测得最差的东西。
有一份为它而设的基准。InjecGuard(arXiv 2410.22770)提出了 NotInject:339 条刻意塞满「ignore」这类注入触发词的良性样本;论文在上面报告那些当时最先进的检测器塌向随机水平——包括 Deepset、Fmops、Prompt Guard 与 ProtectAI v2 在内的开源模型,过度防御准确率全都低于 60%。论文自家的系统报告过度防御准确率 87.32%、良性准确率 85.74%、恶意准确率 77.39%,这正是一个把过度防御纳入考虑训练出来的模型该有的形状。
现在看那些数字后来怎么了。同一条研究线上后续的文字报告基于 Llama 与 Phi 的防御在 NotInject 上超过 90%,LlamaGuard3 达到 99.71%——比提出这个基准的那篇论文还高。另有一篇厂商文章在自家系统上测出 45.4% 的过度防御,339 条里拦了 154 条,然后说出了别人都省掉的那句话:NotInject 是为了引诱过度拦截而对抗性构造的,所以它上面的分数不是生产环境的误报率。
那条告诫把整件事正确地溶解掉了。一组被设计成含有触发词的 339 个句子,是对一个特定失败机理的压力测试,而不是你流量的样本。如果你的智能体读的是客服工单,那你语料里的难负例是客户在引用报错信息、在粘贴配置。如果它读的是代码评审意见,那难负例是开发者在写「忽略前面那种做法」。两种分布都不是 NotInject 的,彼此也不是对方的。
// The measurement that is actually decisive, and which you own: // 1. 2,000 real inputs from last month's traffic, unlabelled. // 2. Run each detector. Count flags. // 3. Read the flagged ones. Every flag on benign text is a // support ticket you will receive in production. // 4. Now add the 50 injections you care about and count misses. // // Step 3 before step 4. The miss rate decides whether to deploy; // the false-positive rate decides whether it stays deployed.
这跟本站对任何「不是你训练的检测器」所用的推理是同一套:一个已发表的准确率数字,是关于那份基准的分布的证据,而你的部署决定需要关于你自己分布的证据。测评架子见护栏与检测器的评测,拿到分数之后怎么办见决策模型阈值。
Lakera Guard——握着那把尺的托管 API
你得到什么
一个延迟在几十毫秒量级的检测端点——各类指南报告同步部署下为 5–50 ms 区间——以及四者中产品化最成熟的那一套封装。自 2025 年被收购起 Lakera 已属于 Check Point,这件事对那个分类器的意义,不如它对采购路径的意义大:它是以一家安全厂商的组件、而不是以一个库的形态抵达的。
你在接受什么
这个检测器筛过的每一条输入都会离开你的网络。对一个智能体来说,那不是你数据的一个子集;那是你的提示词、你检索到的文档、你的工具结果,也就是这个系统碰到的几乎所有敏感内容。受数据驻留约束的团队通常是在架构评审上、而不是在定价页上发现这件事的——驻留这个问题才是决定一个托管检测器对你究竟是否可用的那一个,与它考多少分无关。
你同时也在接受「把一个厂商自报的准确率主张当作你的首要证据」。二手指南里引用的那个高于 98% 的检出率是厂商的;那个 PINT 数字出自厂商自家的基准。这并不构成取消资格——这是正常的商业情形——但它意味着复现这一步落在你身上,而托管这种形态让复现很容易,这是这里公平的那笔交换。
Llama Prompt Guard 2——你能握住的权重,带一个星号
你得到什么
两种分类器尺寸,22M 与 86M,于 2025 年 4 月 29 日与 Llama Guard 4、LlamaFirewall 一同在 Meta 的 PurpleLlama 仓库发布,而截至 2026 年 10 月它仍是那里当前的 Prompt Guard 版本。十八个月没有后继者,这本身就是信息:这是一个稳定、便宜、本地的分类器,不是一个按发布节奏走的产品。22M 之所以存在,是因为一个要在每一次工具结果上跑的检测器必须养得起,而一个 2200 万参数的模型养得起,一次 API 调用养不起。
你在接受什么
那份许可证,以及「讲理的人对它有分歧」这个事实。各处来源对那些权重的描述不一:有的说它在 Meta 的访问申请之后,有的说它是用途受限、非 OSI 认可的社区许可证下的开放权重;2026 年 10 月某个工具结果扫描器项目里的一个 GitHub issue,把 Prompt Guard 2 与那些无门禁的替代品并列,归为非宽松的那个选项。如果你的分发模式涉及把检测器交付给客户、或把它嵌进一个开源产品,这个区分就是承重的,而你该去读许可证原文,而不是读一张比较表——包括这一张。
你也在接受 PINT 排序的下半截。86M 在一个它没有参与设计的基准上约 78.8%,在唯一可得的那个共享数字上,Prompt Guard 2 与托管选项不在一个水平——而对这件事诚实的读法,一部分是「一个 8600 万参数的分类器与一家厂商的完整检测管线是不同类的对象」,另一部分是「我们不知道,因为没人在当前版本上把它重跑过」。
Azure Prompt Shields——两个端点,一个云
你得到什么
Azure AI Content Safety 里的一项托管服务,对用户提示与对文档各有一个独立的盾——而这在结构上是四者中最「懂智能体」的设计,因为它承认危险文本通常是在检索到的内容里抵达的,而不是在用户敲进去的东西里。如果你本来就跑在 Azure OpenAI 上,它是一次配置变更,而不是一次集成。
你在接受什么
一条硬的云边界:这个检测器只存在于你的推理所在之处,别处没有。以及四者中最薄的那份证据——文档描述的是类别与 API,不是准确率。它那个约 89.1% 的 PINT 数字带着一条方法说明:任一个盾标出就算,所以这个数字描述的是那一对,而不是一个你可以调的单一决定。
ProtectAI DeBERTa v2——宽松许可的基线,以及它 2026 年的后继者
你得到什么
deberta-v3-base-prompt-injection-v2,从 DeBERTa-v3-base 微调而来,2024 年 4 月发布,Apache-2.0,无门禁。当需求是「一个我们能交付、能读、能微调、能钉住版本的分类器」时,你伸手去拿的就是它;而它在 2026 年末发表的基准表里仍被当作基线带着——包括那些它输掉的表,而这正是你怎么知道它是在被测量、而不是在被营销。
你在接受什么
一个 2024 年的模型去面对 2026 年的攻击,而这才是真正的代价,而不是任何一个具体分数。它在 InjecGuard 的表里 NotInject 上的过度防御准确率也低于 60%,而这件事——在上面那条关于 NotInject 是什么的告诫之下——至少告诉你那个触发词失败机理是存在的。
一篇半年前写的比较会漏掉的那部分
这个领域里宽松许可的那个角落在 2026 年末动了。Horizon Labs 在 2026 年 9—10 月以 Apache-2.0 发布了一个 Prompt Injection Guard 家族(一个 308M 的 base 与一个更小的变体),无门禁,模型卡声明它只在宽松许可的数据上训练过——并自报宏平均 0.887,对 Prompt Guard 2 86M 的 0.540 与 ProtectAI v2 的 0.637。Patronus 的 Wolf Defender 是另一个 Apache-2.0 的入场者。请完全照着你该对待本文其他每一个数字的方式对待这些数字:自报的,在入场者自己的评测上,值得在据此行动之前先复现。但那个结构性事实是可核实的,而它对它们有利——如果你在 2026 年需要宽松许可、无门禁的权重,选择已不再是「ProtectAI v2,或者接受 Meta 的许可证」。
检测器放在哪儿,比它是哪一个更要紧
按放置位置来比这四个,排名就重新洗牌。这四个都是围着、并且都是在一个单一输入字符串上被基准测量的:一条用户提示,在模型看见它之前被筛一次。PINT 的输入来自那里,厂商文档也从那里起步。而一个智能体的暴露面完全在别处——在工具结果里、在检索到的片段里、在浏览器加载的那个页面里、在编码智能体读到的那个 issue 正文里——而筛那条路径,是这四个都留给你去做的一个配置决定,代价各不相同。在每一次工具结果上调一个托管 API,每步加一次网络往返,并且把每一份检索到的文档都送了出去;一个 22M 的本地分类器加个位数毫秒,什么都不送出去;而 Azure 的文档盾是四者中唯一在 API 形态上点出这个场景的。
经济账沿着同一道裂缝走。放在用户提示上的检测器每次会话跑一次。放在工具结果上的检测器每一步跑一次,而一个智能体要走很多步,于是那个在聊天产品里看起来可以忽略的单次调用数字,被你的步数乘了一遍——跟每步的感知成本是同一套算术。这是开放权重那边完胜的那条轴,而它跟准确率毫无关系。
然后是检测在任何位置上都根本做不到的那件事。一篇 2025 年的 arXiv 实证分析研究针对注入与越狱检测系统的规避攻击,发现已发表的那些系统可被字符级与词级的操纵绕过;Overflip(arXiv 2609.15013)记录了护栏模型中由重复引起的标签翻转——同样的内容,重复一下,判词就变了。这两个结果说的是同一件关于架构、而非关于任何一个产品的事:一个概率性分类器是一道抬高攻击者成本的过滤,而它不是一条边界。边界是「文本穿过来之后,这个智能体被允许做什么」,也就是影响半径、出站控制与致命三要素——而一个买了检测器来代替这些的团队,是很熟练地买错了东西。
什么时候挑哪个
| 情形 | 挑 | 因为 |
|---|---|---|
| 在一个多步智能体里筛每一次工具结果 | Prompt Guard 2(22M)或 ProtectAI v2 | 每步成本,且无数据外送;每步一次网络跳转正是你养不起的那件事 |
| 已在 Azure OpenAI 上,数据留在租户内 | Prompt Shields | 是配置而非集成,而且文档盾点出了智能体这个场景 |
| 你想要一家厂商为检测质量负责 | Lakera Guard | 成熟的封装与采购路径;先在你自己的语料上复现它那个数字 |
| 你要把检测器交付给客户、或放进开源 | ProtectAI v2,或一个 2026 年的 Apache-2.0 入场者 | 许可证才是那条约束,而 Meta 的是用途受限的 |
| 受监管、受驻留约束、物理隔离 | 任何本地分类器 | 无论分数如何,那些托管选项都不可用 |
| 你还没有带标注的语料 | 暂时都不挑 | 先收 2,000 条真实输入;你看不见的那个误报率,正是将来会把检测器关掉的那一个 |
把第一个下午花在一份语料上,而不是一份比较上。从上个月的流量里取两千条无标注输入、四个检测器,数一数良性文本上被标了多少。那一张表胜过本文里的每一个数字,因为它是唯一在你自己分布上测出来的——而你几乎一定会发现,它给出的排序不是已发表的那个。
常见问题
哪个提示注入检测器最准?
对 2026 年的模型版本,没有已发表的证据能回答这个问题。唯一在共享输入上给这四个都打过分的基准由其中之一维护,其方法说明已有五百多天,而流传中的数字早于当前版本。你能信的那个排名,是你在自己流量上产出的那个。
Llama Prompt Guard 2 是开源的吗?
它是开放权重,不是 OSI 意义上的开源。Llama 社区许可证是用途受限的,各处来源对权重是否在访问申请之后有分歧,而至少有一个 2026 年的项目把它与 Apache-2.0 的替代品并列、归为非宽松的那个选项。如果你打算再分发这个检测器,请去读许可证原文。
检测器能挡住间接提示注入吗?
它抬高成本,而不堵上那个洞。已发表的规避研究显示这些系统可被字符级与词级的操纵绕过,而 Overflip 的结果显示重复的内容会翻转一道护栏的标签。把检测当成一层,并把真正的边界放在「文本进入上下文之后,这个智能体能做什么」上。
工具结果要不要跟用户提示一起筛?
要,而成本比较正是在这里咬人。大部分间接注入抵达的地方是一份检索到的文档或一个被抓取的页面,而不是用户敲进去的东西——而放在那条路径上的检测器,是每一步跑一次而不是每次会话跑一次,这让一个本地分类器的个位数毫秒与一个托管 API 的往返在性质上成为两回事。
生产环境里我该预期多高的误报率?
没人能从一份基准告诉你。NotInject 那 339 个句子是为引诱过度拦截而对抗性构造的——这是它自己的使用者指出来的——所以它上面的分数是压力测试结果,而不是对流量的估计。在你自己的良性输入上测;你在那里拿到的那些标记,就是你将来会收到的那些工单。
延伸阅读
本站:
- 护栏与检测器的评测——上面那个下午所需的测评架子。
- 提示词注入 101——为什么直接与间接两种情形需要不同的控制。
- 提示词注入:直接与间接——本文这些检测器只是其中一层的那套分层防御。
- 2026 年的提示注入防御——这些层被组装起来之后是什么样。
- 致命三要素——不可信输入、私有数据,以及一条出路。
- 决策模型阈值——把一个分数变成一次动作。
来源:
- lakeraai/pint-benchmark——那份基准、它的方法说明与变更日志。
- InjecGuard: Benchmarking and Mitigating Over-defense in Prompt Injection Guardrail Models——NotInject 数据集。
- Bypassing LLM Guardrails: An Empirical Analysis of Evasion Attacks——那个规避结果。
- Overflip: Repetition-Induced Label Flips in Guardrail Models——重复翻转一个判词。
- meta-llama/PurpleLlama——Prompt Guard 2 与 LlamaFirewall。
- protectai/deberta-v3-base-prompt-injection-v2——那个 Apache-2.0 基线。