2026 年 1 月,Anthropic 发布论文《Constitutional Classifiers++: Efficient Production-Grade Defenses against Universal Jailbreaks》。

https://arxiv.org/pdf/2601.04603
这篇论文讨论的不是一个普通有害内容分类器,而是一个更接近生产环境的问题:当攻击者持续设计通用越狱策略,试图稳定绕过模型安全策略时,平台方如何在“拦得住、误伤少、成本低”之间取得平衡。
论文给出的结果很直接:最终 production-grade system 相比 baseline exchange classifier 实现约 40 倍计算成本降低,在生产流量 shadow deployment 中保持约 0.05% refusal rate,并经过超过 1700 小时 红队测试,没有发现能够在全部 8 个目标问题上达到无防护模型同等细节水平的通用越狱。
这篇论文发布已经有一段时间,但仍然值得学习。它的价值不在“最新”,而在“工程化”。很多大模型安全论文停留在 benchmark 或单点检测器层面,而 Anthropic 这篇工作把越狱防御拆成了完整上下文判断、分级复核、推理时内部信号监控和生产流量验证几件事。对企业做安全网关、Agent 风控、模型护栏的人来说,它更像是一份生产系统设计样例。
它解决的不是分类问题,而是生产护栏问题
上一代 Constitutional Classifiers 的基本思路,是用自然语言规则定义哪些内容允许、哪些内容受限,再基于这些规则生成合成训练数据,用来训练输入和输出分类器。
Anthropic 在 2025 年的工作中介绍过这种方法:分类器会监控模型输入和输出,识别并阻断潜在有害内容。
上一代系统的效果并不差。在自动评测中,未加分类器时,越狱攻击成功率为 86%;加上 Constitutional Classifiers 后,成功率降到 4.4%。
但它也有明显生产代价:Anthropic 报告增强版分类器会带来约 23.7% 计算开销,并使生产流量拒绝率绝对增加 0.38%。
这就是 Constitutional Classifiers++ 要解决的问题。
它不是简单追求“分类器更准”,而是要回答一个更难的问题:
安全护栏如何在真实生产流量里持续运行,同时兼顾鲁棒性、成本和用户体验?
对模型厂商来说,这个问题很现实。所有请求都过强分类器,安全性可能更好,但推理成本和延迟会被拉高;分类器阈值设得过严,会提高拒绝率;阈值设得过松,又会增加风险漏出。
Constitutional Classifiers++ 的核心,是把单层安全判断改造成一套分层、流式、可复核的生产系统。

两个缺口:输入被拆散,输出被伪装
论文首先复盘上一代系统为什么会被绕过。Anthropic 在额外对抗测试中发现,上一代 Constitutional Classifiers 主要暴露出两类漏洞:reconstruction attacks 和 output obfuscation attacks。
第一类是 reconstruction attack,可以理解为“重构攻击”。
攻击者不把危险请求完整写出来,而是把意图拆成多个片段,混进看似正常的上下文里。输入分类器看到的是零散文本、代码片段或结构化信息,不一定能识别出完整恶意意图。等模型开始回答时,这些片段才被重新拼接出来。
这类攻击的关键点是:风险不是静态存在于输入里,而是在模型执行用户指令的过程中被重构出来。输入过滤器只看进入系统前的文本,很容易漏掉这种“后生成”的风险。
第二类是 output obfuscation attack,可以理解为“输出混淆攻击”。
攻击者让模型不用直白方式输出受限内容,而是使用代称、隐喻、替换词、谜语、编码格式或上下文映射。这样一来,输出分类器如果只看模型回答本身,可能会觉得这些词句没有明显风险;但如果把用户输入和模型输出放在一起看,就能发现它们实际表达的是受限内容。Anthropic 官方文章也指出,输出只看自身时,很难识别这种上下文依赖型伪装。
这也是很多安全检测系统的共同盲区:
输入检测看不到生成过程,输出检测看不到完整上下文。
在 Agent、RAG、代码助手、浏览器 Agent 场景中,这个问题会更严重。因为上下文来源更多,用户输入、工具返回、网页内容、检索文档、历史对话都会进入模型上下文。攻击者不需要一次性把攻击写完整,只要让模型在后续步骤中“帮他拼起来”即可。
Exchange Classifier:安全判断必须看完整交互
为了解决这个问题,Anthropic 把上一代输入/输出双分类器替换为 exchange classifier。
所谓 exchange classifier,不是只检查用户输入,也不是只检查模型输出,而是把一次完整交互放在一起评估。它会先检查 prompt,然后在模型生成过程中继续监控输出,并且每次判断时都把当前输出片段放回完整对话上下文中理解。
论文明确说,它用一个 single exchange classifier 替代了上一代 input classifier 和 output-only classifier,让分类器在输入上下文中评估模型输出。
这个变化看似简单,实际很关键。
对于重构攻击,输入阶段可能看不出问题,但模型一旦开始重组隐藏信息,exchange classifier 就有机会在生成过程中捕捉风险。
对于输出混淆攻击,单独看输出可能只是一些代称或隐喻,但 exchange classifier 能看到用户输入中定义的映射关系,因此更容易判断模型是否正在输出实质性有害内容。
论文和官方文章都提到,exchange classifier 能显著提高识别上下文依赖型攻击的能力;但代价是成本上升,Anthropic 官方文章称 exchange classifier 将成功越狱尝试削减超过一半,同时带来约 50% 计算成本增加。
这就是生产系统经常遇到的矛盾:更强的检测通常意味着更高的延迟和成本。如果所有请求都走最强分类器,安全性可能提高,但用户体验和推理成本会变差。

Two-Stage Cascade:第一阶段不是拒绝,而是升级
为了降低 exchange classifier 的成本,论文提出 two-stage classifier cascade。
这套架构的思想很工程化:所有流量先经过一个便宜的一阶段分类器;只有被一阶段认为可疑的交互,才升级到更贵、更强的二阶段分类器。
Anthropic 官方文章把它类比为“升级给经理”:第一阶段不是直接拒绝用户,而是把可疑样本交给更强模型复核。
这个设计对安全产品很有启发。
如果第一阶段直接决定是否拒绝,那么它必须非常精确,否则误伤会立刻影响用户体验。但如果第一阶段只负责“挑出可疑样本”,它就可以更敏感一些。误报的代价不是拒绝用户,而是多花一次二阶段检测成本。
也就是说,系统把第一阶段从“判决器”改成了“分流器”。
论文中,这套 two-stage cascade 在保持接近 exchange classifier 鲁棒性的同时,将计算开销降低了 5.4 倍。
这对企业落地很重要。很多公司做大模型安全网关时,容易把所有检测能力串成一条固定流水线:关键词、正则、模型分类器、规则引擎、人工审核。但真实生产流量里,高风险请求占比很低。如果不做分级,系统成本会被大量低风险请求拖垮。
Constitutional Classifiers++ 给出的方向是:
普通流量轻量处理,可疑流量重型复核,高风险流量再拒绝。
先看懂指标:拒绝率、漏洞发现率和 ASR 不是一回事
在看论文结果前,需要先把几个指标分开。
第一,论文标题和摘要里提到的 0.05%,指的是 production traffic refusal rate,也就是生产流量中被系统拒绝或标记的比例。它不等同于误拒率。误拒率需要知道哪些请求本来应该放行、却被错误拒绝,而这需要人工标注或可靠 ground truth。论文摘要原文说的是 production traffic 上保持 0.05% refusal rate。
第二,表格里的 high-risk vulnerability discovery rate,也不是普通攻击成功率。它指的是红队每 1000 次攻击查询中,能发现多少个“高风险通用越狱漏洞”。这个指标衡量的是红队挖出可复用高风险攻击策略的难度,而不是生产环境中的真实风险漏出比例。
普通 ASR 一般是:
攻击成功次数 / 总攻击次数
而这篇论文里的 high-risk vulnerability discovery rate 更接近:
发现的高风险通用越狱漏洞数量 / 红队攻击查询次数 × 1000
所以它不是“每 1000 条生产请求会漏出多少风险”,也不是“1000 条攻击样本里有多少条成功”。它反映的是红队挖洞效率:数值越低,说明在相同红队尝试量下,越难找到可复用的高风险通用越狱策略。
第三,上一代 Constitutional Classifiers 工作里曾报告过“生产流量拒绝率绝对增加 0.38%”和“23.7% 推理开销”。这是 2025 年上一代工作的部署代价口径;而 Constitutional Classifiers++ 表格里的 0.073%、0.038%、0.036%、0.050%,是新论文在统一横向对比口径下列出的 production traffic refusal rate。二者不能直接混用。
论文 Table 1 给出的四代系统对比如下:
系统 | 相对计算开销 | 高风险漏洞发现率 | 生产流量拒绝/标记率 |
|---|---|---|---|
上一代系统 | 100.00% | 0.01871 | 0.07% |
Exchange Classifier | 150.00% | 0.00885 | 0.04% |
Two-Stage Cascade | 27.80% | 0.00878 | 0.04% |
Production Grade | 3.50% | 0.00505 | 0.05% |
这张表有一个容易被误解的地方:Production Grade 的拒绝率并不是最低。它的 0.050% 高于 Exchange Classifier 的 0.038%,也高于 Two-Stage Cascade 的 0.036%。
这并不矛盾。因为 Production Grade 不是简单地“probe 筛选,然后同一个 exchange classifier 复核”。它使用的是 weighted two-stage classifier cascade:
第一阶段是 linear probe;
当 probe 分数超过阈值后,系统升级到第二阶段;
对于升级样本,最终分数由 probe logit 和 external classifier logit 加权组合得到。
也就是说,最终判断不是外部分类器单独决定,而是 probe 和外部分类器的综合结果。
所以 Production Grade 的价值不是“每个指标都最低”。更准确地说,它是在可接受拒绝率下,把计算成本和高风险漏洞发现率同时压下来。

Linear Probe:不是外挂模型,而是推理链路里的传感器
如果只看名字,linear probe 容易被理解成又一个安全分类模型。但它和普通外挂分类器的区别很大。
普通外部 classifier 看的是文本:用户输入了什么,模型输出了什么。Linear probe 看的是模型内部状态:模型在生成每个 token 时,各层 Transformer 已经计算出来的 hidden states。
可以把 hidden state 理解成模型给每个 token 维护的一组高维数字表示,一个 token 的 hidden state 是向量,一段文本的 hidden states 是矩阵,带上 batch 和多层之后就是张量。
模型之所以需要 hidden states,是因为它不是直接从文字跳到答案,而是要一层层加工上下文,最终预测下一个 token。
Linear probe 做的事情很轻:它不让被保护模型重新跑一遍,也不修改模型参数,而是在模型正常推理过程中,顺手读取某些层的 hidden states,通过一个线性分类头计算风险分数。
所谓 linear,是因为它大体上就是对 hidden state 做一次带权重的线性组合,再输出一个 risk logit。
单层 probe 可以理解为:
risk_logit = w · h + b多层 probe 不是把所有 layer 直接相加,而是读取多个层的 hidden state,并给每一层、每个维度学习不同权重。数学上可以理解为:
risk_logit = Σ w_l · h_l,t + b其中 h_l,t 表示第 l 层、第 t 个 token 的 hidden state。也就是说,它读的是模型“生成到当前 token 时的内部状态”,而不是再去理解一遍完整文本。
论文也正是利用这种方式,复用模型推理时已经计算出的 representations / activations,从而降低安全检测成本。
论文在方法部分提到,linear activation probe 使用模型在每个 token、每层产生的 intermediate activations 来预测 exchange-level harmfulness;生产系统则将 linear probe 作为第一阶段,再和外部分类器组成 weighted cascade。
【概念补充:KV cache 和 hidden states 不是一回事】
大模型生成文本时,会一个 token 一个 token 地预测下一个 token。为了避免每一步都重新计算整段历史上下文,推理系统会把历史 token 在 attention 中产生的 Key / Value 张量缓存下来,这就是 KV cache。它的作用是加速自回归生成。
Hidden states 则是每一层 Transformer 为当前 token 产生的中间表示。KV cache 主要服务于 attention 复用,hidden states 则是模型一层层加工信息的内部状态。Constitutional Classifiers++ 里的 linear probe 主要读取 hidden states / activations,而不是直接读取 KV cache。

为什么 probe 需要特殊训练?
Linear probe 听起来很简单,但真正难点在于:它要做的是流式安全判断。
普通分类器可以等整段输出完成后再判断:
完整回答 → 分类器 → 是否有害
但 probe 要在模型生成过程中逐 token 判断:
T1 → 判断
T2 → 判断
T3 → 判断
...
问题在于,训练数据通常只有 exchange-level 标签,也就是整段交互最终是否有害。但一个有害回答的前几个 token 可能完全无害。如果简单地把整段有害标签压到每个 token 上,就会让 probe 在无害前缀上也报高风险,导致大量误报。
Anthropic 为此采用了两个训练技巧。
第一个是 Sliding Window Mean Logit Smoothing。训练时不看单个 token 的瞬时风险分数,而是对连续窗口内的 logit 做平均。这样可以避免某个偶然 token 激活过高,就把整段内容误判为有害。推理时,系统用 EMA 近似滑动窗口,只需要保留一个标量状态,更适合流式部署。
第二个是 Softmax-Weighted Loss。它把训练重点更多放在真正体现有害内容的位置,而不是平均惩罚所有 token。这样,probe 可以在无害前缀阶段保持低风险判断,同时在后续出现明确风险信号时快速升高分数。
这两个技巧解决的是同一个问题:安全系统不能只判断整段文本最终是否危险,还要判断生成过程中的风险何时开始出现。
这也是 probe 对生产系统有价值的地方。它不是等模型把风险内容说完再判断,而是在生成过程中持续观察模型内部状态。如果风险分数升高,系统可以及时升级到外部 classifier 复核,甚至在更高风险场景中暂停生成、截断输出或触发人工审核。
这条路线为什么更偏向模型厂商?
Linear probe 的优势来自低成本,但它也有一个前提:系统必须能读取被保护模型的内部激活。
这意味着它不是普通 API 外挂安全网关能直接复刻的能力。
第三方安全厂商通常只能看到输入文本、输出文本、工具调用和上下文拼接结果,很难拿到模型每一层的 hidden states。相反,模型厂商或私有化部署方控制推理引擎,可以在模型生成过程中把 probe 嵌进去,逐 token 读取内部状态,再把风险分数交给系统层决策。
这也带来一个工程代价:probe 基本是和具体被保护模型绑定的。
不同模型的层数、hidden size、tokenizer、训练数据、后训练策略和内部表征空间都可能不同。Sonnet 4.5 上训练出来的 probe,不能天然迁移到另一个模型上。即使是同一模型的小版本迭代,只要权重、对齐策略、量化方式或推理栈发生变化,也至少需要重新评估,必要时重新训练或重新校准阈值。
所以,linear probe 更像装在模型推理引擎内部的安全传感器。它能显著降低检测成本,但代价是更强的模型绑定和更高的基础设施门槛。
这也是这篇论文对安全行业最重要的启发之一:未来一部分护栏能力会从 API 外侧,逐渐下沉到模型推理栈内部。
最终系统:Probe 先筛,外部分类器复核
论文最终组合出一个 weighted two-stage classifier cascade。
第一阶段是 lightweight linear probe。它在所有生成过程中持续监控 exchange。
第二阶段是外部 exchange classifier。只有当 probe 分数超过阈值时,系统才把交互升级到第二阶段。
对于被升级的样本,最终分数不是只看外部分类器,而是将 probe logit 和 external classifier logit 加权融合。论文明确说,生产级系统使用 linear probe 作为 first-stage classifier,并使用 probe-external classifier ensemble 作为 second stage。
这套结构背后的判断是:probe 和外部 classifier 会犯不同类型的错误。
外部 classifier 看文本,适合从完整语义和策略边界上做判断;probe 看内部激活,可能提前捕捉模型生成过程中的风险趋势。
Anthropic 官方文章也提到,internal probes 和 external classifiers 是互补的:probe 能看到外部分类器看不到的信号,反过来也一样。
所以 Production Grade 系统不是一个单点分类器,而是一套分层复核系统:
所有请求↓Linear Probe 读取内部激活↓低风险:继续生成↓高风险:升级外部 Exchange Classifier↓Probe logit + Classifier logit 加权融合↓拒绝 / 放行 / 记录
最终结果显示,Production Grade 系统的相对计算开销为 3.5%,高风险漏洞发现率为 0.00505,生产流量拒绝率为 0.050%。相比 Exchange Classifier,它的拒绝率略高,但计算开销从 150.0% 降到 3.5%,高风险漏洞发现率也从 0.00885 降到 0.00505。
红队评估:不是问“是否拒绝”,而是看输出是否有实质危害
这篇论文还有一个值得关注的点:它没有只用普通 jailbreak benchmark 来评估,而是采用 human red-teaming。
红队人员围绕 8 个 CBRN 相关目标问题设计通用越狱策略。评估时,系统不是简单判断模型是否说了某个敏感词,而是用 LLM-based rubric grading 评估候选回答是否包含足够细节。论文将高风险漏洞定义为:攻击能够让模型在超过 5 个目标问题上输出达到无防护模型一半以上细节水平的回答。
这个评估方式比普通 ASR 更接近真实风险。
在大模型安全里,“模型有没有拒绝”只是表层指标。真正需要判断的是:模型输出是否具有操作性、是否提供了关键步骤、是否降低了攻击者门槛。一个模型即使没有明确拒绝,如果只是泛泛而谈,风险也不同;反过来,一个模型即使使用了隐晦表达,只要提供了足够可执行的细节,风险仍然很高。
最终生产级系统经历约 1736 小时红队测试、约 19.8万 次尝试,只发现 1 个高风险漏洞,发现率约每千次查询 0.005。论文还强调,没有发现能够在全部 8 个目标问题上达到无防护模型一半细节水平的通用越狱。
这并不代表系统不可突破,更准确的说法是:在当前红队设置和目标范围内,它显著提高了攻击成本。
启发
第一,输入过滤不够,输出过滤也不够。
真正的风险往往出现在“输入和输出的关系”里。尤其在上下文很长、工具很多、来源复杂的 Agent 系统中,单独看输入或输出都容易漏判。Exchange-level classification 应该成为高风险场景的基础能力。
第二,安全检测要从一次性判断变成流式判断。
模型不是一次性吐出完整答案,而是逐 token 生成。很多风险在生成中途才暴露。如果安全系统只能在请求前或回答后检测,就会错过最合适的拦截时机。Constitutional Classifiers++ 的做法是边生成边观察,风险超过阈值后及时升级或阻断。
第三,分级复核比单层拦截更适合生产。
第一阶段如果直接拒绝,就会被误伤率绑死。第一阶段如果只是升级,就可以承担更高召回。这个思路适合内容安全、代码安全、隐私泄露检测、Agent 工具调用风控等多个场景。
第四,模型内部信号会成为安全基础设施的一部分。
linear probe 的出现说明,未来安全护栏不一定都在 API 外侧。对模型厂商来说,安全检测可能逐渐进入推理引擎、激活读取、流式生成控制和模型内部监控。对第三方安全厂商来说,这会带来挑战:如果只能看到输入输出,就很难复现同等粒度的内部监控能力。
第五,红队评估要看“实质危害”,不能只看“是否命中规则”。
高风险安全评估需要细粒度 rubric,需要持续红队,需要把攻击覆盖范围、输出细节、发现时间和成本一起纳入判断。只用固定 jailbreak 样本集,很容易高估系统鲁棒性。
局限性
Constitutional Classifiers++ 是一套很强的生产级防御系统,但它不是通用安全终局。
首先,论文主要关注 CBRN 相关通用越狱。它证明了这套方法在高风险知识输出场景中的有效性,但不能直接等价推广到 Agent 工具滥用、企业数据泄露、代码供应链投毒、跨应用提示注入等场景。
其次,linear probe 依赖模型内部激活。Anthropic 可以在自有模型和推理栈中实现这套能力,但第三方安全厂商如果只能通过 API 获取输入输出,就很难部署同等级别的内部探针。
第三,红队结果不等于形式化安全证明。论文自己也承认,没有防御是完美鲁棒的,攻击者会持续适配已有防御。最终系统没有被红队成功打穿所有目标问题,只能说明它在当前评估中显著提高了攻击难度,而不是证明通用越狱已经被彻底解决。
第四,0.05% 的生产流量拒绝/标记率仍然需要谨慎理解。它很低,但在超大规模流量中仍然会影响真实用户。尤其是科研、教育、安全研究、生物化学等边界场景,安全系统需要更细的策略、申诉机制和灰度能力。
写在最后
这篇论文最重要的地方,不是“40 倍降本”这个数字本身,也不是“0.05% 拒绝率”这个指标本身。
它真正展示的是一条工程路线:
从输入检测,到完整 exchange 检测;
从单层分类,到两阶段级联;
从外部分类器,到模型内部 linear probe;
从离线 benchmark,到生产流量 shadow deployment 和长期红队。
大模型安全护栏正在从外挂模块变成推理系统的一部分。
这对模型厂商、安全厂商和企业用户都会产生影响。模型厂商会把更多安全能力嵌入推理栈内部;安全厂商需要从“输入输出检测”扩展到“上下文级、过程级、策略级风控”;企业用户则需要重新理解大模型安全网关,不只是加一个敏感词过滤器,而是建立分级复核、流式监控、红队验证和策略迭代机制。
Constitutional Classifiers++ 没有解决所有大模型安全问题,但它把一个关键方向讲清楚了:
真正可落地的安全护栏,不是单点模型能力,而是成本、误伤、鲁棒性和工程基础设施之间的系统设计。
声明:本文来自模安局,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。