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 ClassifierProbe 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。