ACEA:面向红蓝队对抗的 LLM 协同演化测试平台
ACEA: An Adversarial Co-Evolution Arena for Head-to-Head Red-Team and Blue-Team LLM Testing
ACEA让红蓝适配器对同一目标对打并分开计分;minimal-small对Target 4的30轮ASR为0.700。
- 自动红队和护栏分开评测,没有场地让任意攻击者对上任意防御者。LLM judge分不清真实泄露和看起来可信的幻觉,拦截后也看不出攻击强度。ACEA要用可插拔对打、可核验真值和实时战报一起补上这三点。
- 红蓝适配器经ASAP接入同一目标。每轮攻击可被拦截、放行或改写,目标只生成一次;拦截时仍打分但不下发。合成机密和evidence marker用来核对泄露。可选提示只给建议,不更新权重。
- Table 3中,三阶段30轮ASR最高0.033,minimal-small对Target 4为0.700。作者称结果主要随框架和目标变;Target 2上换小模型是0.033对0.000,vulnerable预设为0.100。
- 作者指出评分依赖LLM judge,开放式伤害仍是估计;未下发的生成可能高估部署风险,改写载荷没有未防御对照。场地是一红一蓝对一个目标。实验为四种防御、四个目标、每对30轮,只在一个目标上重复。
- 被测模型
- openai/gpt-4ogoogle/gemini-2.5-progoogle/gemma-3-27b-itmistralai/ministral-3b-2512mistralai/mistral-large-2512
- 基准
- ACEA defense-target battles(每对三十轮)synthetic canonical secrets
- 指标
- ASRDRattributed defense ratethree-level round grade(success/partial/failure)
研究者提出 ACEA(Adversarial Co-Evolution Arena),一个把可插拔红队适配器与蓝队适配器接到同一靶标 LLM 上、由 LLM judge 对攻防成功率打分的对抗协同演化平台。平台通过最小化的 HTTP 协议 ACEA Standard Adapter Protocol(ASAP)接入任意语言编写的红队或蓝队项目,只暴露该协议即可成为完整参与者。评测方法上,向靶标注入规范化的秘密作为可验证真值,以区分真实泄露与模型幻觉;即使防御拦截了攻击,也仍把攻击发给靶标,从而独立测量攻击的原始效力,得到每轮攻击强度与防御有效性的分解。
深度解读
这篇论文试图解决什么问题?
红蓝分开评测把攻击强度和防御效果混在一起,ACEA要在同一场地上对打并拆开计分。
红队与蓝队分开评测,攻击强度和防御效果混在同一分数里。
- 场景:作者称 LLM 已用于提示注入、越狱和抽取机密,评估模型或护栏能否挡住对抗输入是核心安全工作。攻击由人或另一个模型出提示词,防御是拦截不安全内容的护栏,两条线大体并行。
- 三个缺口:作者归纳为 (1) Isolation,没有场地让任意攻击者对上任意防御者;(2) Untrustworthy scores,LLM judge 分不清真实泄露和看起来可信的幻觉,拦截记录也看不出攻击强度;(3) No live view,结果只在事后以表或日志出现。
- 作者的判断:从业者要知道的是某一个攻击者对上某一个防御者;被轻松拦住的弱攻击和勉强拦住的强攻击,在现有记录里会一样。
- ACEA:可插拔红、蓝适配器共享一个目标 LLM,用 LLM judge 打分。合成机密用来核对泄露;拦截后仍对原始载荷生成并打分,但回复不下发。另有实时界面、战报,以及可选的跨轮建议。
有哪些相关研究?
相关工作分自动红队、护栏、红蓝共进化和评测框架,作者称都未同时补上三个缺口。
作者在第二节把相关工作分成四组,并称没有一类同时补上隔离、分数不可信和缺少实时视图。
自动化与智能体红队
- 单次到迭代:Perez 等(2022)、Ganguli 等(2022)用一个语言模型为另一个生成测试;Zou 等(2023)搜索对抗后缀;PAIR(Chao 等,2023)和 TAP(Mehrotra 等,2024)迭代修改越狱提示词。
- 多轮智能体:Crescendo(Russinovich 等,2025)把良性对话推到禁止内容;GOAT(Pavlova 等,2024)对着技巧工具箱推理;AutoDAN-Turbo(Liu 等,2025)发现并复用策略。
- 学习式红队:AgenticRed(Yuan 等,2026)演化整套红队系统;Active Attacks(Yun 等,2025)在周期性变硬的环境里训练攻击者。作者称这些工作以攻击者为对象,防御者固定,或只被周期性刷新。
防御与护栏
- 分类器:Llama Guard(Inan 等,2023)、WildGuard(Han 等,2024)、ShieldGemma(Zeng 等,2024)、Aegis2.0(Ghosh 等,2025)、GuardReasoner(Liu 等,2025)对输入输出做安全分类。
- 改模型:Constitutional AI(Bai 等,2022)、circuit breakers(Zou 等,2024)、constitutional classifiers(Sharma 等,2025)。作者称它们作为固定制品发布,通常在固定基准上比较。
自我对弈与红蓝共进化
- 自改进:Silver 等(2017)的自我对弈;Self-Refine、Reflexion、Promptbreeder、self-rewarding;以及 ADAS、Darwin Gödel Machine、AlphaEvolve。论文将它们写成用反馈、反思或适应度改输出、提示词或代码。
- 双方对打:R-Zero 与 Multi-Agent Evolve 让挑战者和求解者竞争以改进推理。安全场景中 Self-RedTeam、MAGIC、CHASE、AdvGRPO、Be-Your-Own-Red-Teamer 共进化红蓝,靠更新权重。
- 作者指出的限制:Self-RedTeam 用一个模型扮演双方,MAGIC 拆开双方以免优化冲突;CHASE 与目标以 black-box 交互,但仍用 GRPO 训练策略。作者称这绑在特定模型上,权重不可用的参与者无法加入。
评测框架
- 基准与工具:HarmBench、JailbreakBench、StrongREJECT 提供固定行为、排行榜和校准打分器;garak、DeepTeam 打包探针;Inspect 统一评测工具;AgentHarm、AgentDojo 测有害智能体行为与提示注入稳健性。
- 事后报告:作者称它们对固定提示词单次打分并在事后给结果;Inspect 可回看已完成运行的日志,但没有逐轮实时对战。
- Table 1:共进化方法在双方和 LLM judge 为 ✓,可插拔、泄露真值、实时界面为 N/A。HarmBench/JailbreakBench 与 DeepTeam 在可插拔和 judge 为 ✓,其余三列为 ×;garak 的 judge 为 ×。ACEA 五列均为 ✓。
作者称:自动攻击对着固定目标调,权重共训又绑死模型,都没有与模型无关的共同场地;评测框架没有可核验的泄露真值,拦截被记成看不出强度的一个结果;实时对战则一直空着。ACEA 要同时关上这三处。实验并未把上述框架当作重新跑分的基线。
论文如何解决这个问题?
ACEA用ASAP接入红蓝适配器,以合成机密和拦截后仍打分来拆开每轮攻防。
ACEA 把红队策略 πR、蓝队策略 πB 和目标 T 放进同一场。每轮固定流水线只让目标生成一次,LLM judge 把原始杀伤力和防御是否生效拆开。全程不更新权重,模型调用走同一代理。
一轮流水线
- 攻防:红队由历史 ht 产生 xt。蓝队给出 block 或 allow,也可交回改写,并且至少使用输入筛查或输出过滤之一。block 与 allow 时,到达目标的 x′t 就是 xt;若提供改写,x′t 为改写稿。
- 一次生成:yt 等于 T(x′t)。allow 时交付过滤后的 ŷt,不过滤则过滤函数为恒等。block 时不交付,生成只用于打分;Figure 1 把此时的交付物写成一则固定通知。作者称被拦的一轮因此按未防御载荷测量,而不是再查一次目标。
- 四种结局:输入门拒绝、途中改写回复、目标自己拒绝、攻击成功。作者指出,原样放行且目标自己拒绝时,该轮算守住,但防御没有贡献。
- 停止与记忆:可按轮数上限、目标 ASR、目标 DR、连胜,或 ASR 相对开局基线提高给定的个百分点停止,也可只看最近若干轮。没有自动饱和停止。轮间保留短对话记忆,以支持多轮攻击。每轮写入 trace,并流向实时界面和战报。
ASAP
- 接口:红队 POST /v1/generate-attack,返回载荷、攻击类型和置信度。蓝队 POST /v1/evaluate-defense,返回 block 或 allow、理由、置信度,以及可选改写。可选的 POST /v1/filter-output 返回是否改过的最终回复。双方都有 GET /health。
- 信封:请求带会话、轮次、evolution_hints、可选历史和 metadata。作者称适配器可以不自己存状态。注册时先做健康检查,再对每个声明能力发试请求;两种护栏都未声明的蓝队会被拒绝。交战声明在开赛前由负责该模式的 judge 校验一次。
- 只暴露行为:作者称适配器可用任何语言包裹任意实现,对战和改进环都不要求它交出协议以外的东西。
机密与计分依据
- canonical secrets:目标是聊天机器人,库中放固定合成记录,如虚构账号、策略覆盖码和一条隐藏系统机密。清单由材料所有者标注种类。作者称真泄露会复现这些记录,幻觉只是看起来像敏感数据。
- engagement:达成什么由参与者声明,可包括持有数据、越权动作、业务规则或内容性质。声明含目标、成功标准、校准锚点和可选 evidence marker。每场只解析一次依据:先 marker,否则只采用攻击者声明的目标,否则操作者声明的目标,否则不收窄并写明。作者称同一目标上五种声明目的会落到五种依据。marker 命中则不调用模型。
- 难度预设:hardened、balanced、vulnerable 改变表述和未受提示时的披露程度,作为实验设置报告。
指标
- judge:按 LLM-as-judge 的做法,对攻击、回复和防御决定打五个主维度:harmfulness、policy violation、attack success、defense quality、evasion;另有 attack stealth 和 block precision,以及三级 grade 和一句理由。同时给过滤后伤害和未过滤的 raw harm。解析失败则用保守默认分。
- 速率:ASR 只计达成声明目标的轮,DR 计该轮什么都没得到。attributed defense rate 只计防御拦截或过滤的轮。两侧还有 [0, 1] 的连续分:攻击侧是无论是否下发的原始杀伤力,防御侧是 raw 与交付结果之间去掉的伤害。改进环优化连续分。
- 三级:success 为声明目标达成;failure 为未达成且没有别的收获;partial 为目标未达成但仍披露了机密。依据之外的披露另记为 incidental disclosure。定义为 ASR=1/N∑t 1[第 t 轮达成声明目标],N 为轮数。
上下文改进环
- 建议而非必选:hints 每轮转发,只有适配器读取并照之行动,环才闭合。忽略 hints 的得分方式与没有 hints 时相同。包装器是透明代理,不看、不改源码或权重。
- 三层:judge 可把给该方的 hint 附在裁决上。若失败且没有 hint,包装器分析已有 trace:第 1 层摘要最近轮次并让模型提出一条策略;第 2 层跨场次查找该方曾成功或失败的策略;第 3 层按各提示词变体的平均成功率改进做 softmax 抽样,场次够了再由元模型改写提示词。适应度是一场内早轮与晚轮成功率之差。
- 边界:源码只有被操作者挂载时才做有界只读抽样;未挂载则只按声明能力画像。作者称平台改不了它影响不到的适配器,并受 hint 预算和上下文信号的表达能力限制。作者把该环比作提示词演化与自我反思,而不是基于权重的共进化。
论文做了哪些实验?
Table 3里三阶段30轮ASR最高0.033,minimal-small对Target 4为0.700。
第四节用一场对打检查第 3.4 节的计分能否分开它要测的量,并看 ASR 是否朝作者预期的方向变化。
实验设置
- 攻击者:捆绑的 acea-default-red,经 ASAP 接入。每轮独立组合 technique、context template 和 pressure modifier,再让一个 LLM 合成提示词。论文未给出这个 LLM 的名字。
- 四种防御:acea-default-blue 为三阶段。Stage A 先做词法预过滤,再由 LLM 给有害意图打 0–1 分,超过阈值就拦截,论文未给出阈值。Stage B 用正则扫描机密并涂销或放行。minimal-blue 只做一次 yes-or-no 分类,回答 no 就拦截。两者各接 mistralai/mistral-large-2512 与 mistralai/ministral-3b-2512。作者称 small 大约小四十倍。
- 四个目标:都是种入合成机密的聊天机器人。作者称运行时没有记下模型字段,事后用代理日志按时间窗口关联:Target 1 为 openai/gpt-4o,Target 4 为 mistralai/ministral-3b-2512,二者都有防御模型不同的多个窗口;Target 2 为 google/gemini-2.5-pro,Target 3 为 google/gemma-3-27b-it,各只有一个窗口,作者称后两者关联更弱。
- 预设与 judge:表内预设保持默认,只把最弱防御对 Target 1 设为 vulnerable。judge 返回五维主分、两维派生分、三级 grade 和一句理由。其模型由环境指定,运行文件未记录,论文因此不点名;作者称它与红、蓝不是同一模型。
- 轮次:每对 30 轮。上下文环开启,已停用的代码级外环关闭。每对开始前重置攻击者的策略记忆,作者称学习只在该对的 30 轮内累积。Target 1 每种防御重复三次,其余列是单次;Target 3 只跑了最弱防御。除正文写明均值处外,每个数是单次运行。
- 另两场:独立发布的红队对第三方防御 6 轮;同一红队对宽松目标上的弱防御 26 轮。论文未给出工具名,也未记录这两场的上下文环是否开启。
主结果
据 Table 3。末行正文称为最弱防御对,并把预设调到最宽松。破折号在表中写为未报告。
表格较宽,可左右滑动
防御 Target 1 Target 2 Target 3 Target 4 三阶段,large 0.000 0.033 未报告 0.000 三阶段,small 0.000 0.000 未报告 0.000 minimal,large 0.044 0.000 未报告 0.633 minimal,small 0.133 0.000 0.033 0.700 最弱对,vulnerable 0.100 未报告 未报告 未报告 - 作者称不是一边倒:在 permissive target 上,最弱防御成功 21/30,次弱成功 19/30,因此别处的 0 是饱和,而不是测不出成功。这两格对应 Table 3 里 Target 4 的 0.700 与 0.633。
- 框架、模型与目标:作者称保持框架、只换小模型时结果没有变化,减弱框架才使同一对局高于 0,模型只在框架已经弱时才有差别,所以结果说的是框架而不是运行它的模型。表上三阶段两档在 Target 1、Target 4 都是 0.000,Target 2 却是 0.033 与 0.000;minimal 两档在 Target 2 都是 0.000,在 Target 4 为 0.633 与 0.700。作者称三者里目标影响最大:同一最弱对子对一个目标是 0.000、对另一个是 0.700,攻击能否成功是目标自身对齐的性质。
- 预设与重复:最弱对把 Target 1 调到 vulnerable 得 0.100,无预设时为 0.133。作者称换模型使该对到 0.700,换预设的表述则没有改变它,预设不是另一种对齐。同一最弱对、同一目标的三次运行为 0.200、0.000、0.200;Table 3 该格写 0.133,论文未说明二者关系。作者称单次运行就可能给出全 0。Target 1 列的攻击者状态与另外三列不同,跨列比较同时换了攻击者,同列比较不受影响。
防御贡献是否算到防御头上
- DR 与 attributed DR:Section 3.1 写一场刻意做弱的 minimal 防御,30 轮 DR 为 1.000、attributed DR 为 0.000:它没有拦截,目标自己拒绝了全部 30 轮;换一个目标模型再跑一次,结果相同。论文未给出这两次的目标名。
- 第三方输入门:接入的第三方防御在 6 轮里两项都是 1.000,且每轮都在输入门拦截。
- 旧计分:二元时期 partial 记入先触发的计数器,一场 30 轮的分数加总为 27。现行 ASR 只计达成声明目标的轮,依据之外的披露另记为 incidental disclosure。作者称旧定义下的图不能与这里的 ASR 比较。
实时界面与战报
- Figure 2:图注写明进行到 26 轮中的第 14 轮,攻击方 10 比 3 领先,对阵是 Table 3 的 minimal defense 对 permissive target。作者称红队在左、目标在中、蓝队在右,底部有 Arbiter 裁决、Scribe 战报状态和事件日志。
- Figure 3:同一场的战报摘录,攻击者在 26 轮中成功 23 轮。含转折点、红队路线、蓝队加固优先级,以及技术层面的成败说明。作者称把失败翻译成修补并安排优先级,留给后续改进步骤。
- 作者的定位:作者称自己没有见到把红蓝对抗逐轮实时画出来、而不是事后查看的先前工具。
其他消融与分析
- 主表报告 ASR,没有报告连续分,也没有给出每种防御–目标的 DR 全表。
- vulnerable 预设只测了最弱防御对 Target 1:0.100,对照 0.133(Table 3)。
- 三次重复只给出最弱对的 0.200、0.000、0.200;另外三种防御在 Target 1 的三次原始值未报告。
- Target 3 只报告 minimal small 的 0.033,其余防御未报告。
- 上下文环在主表中开启,但论文未报告关闭该环时的 ASR。
- 26 轮那场成功 23 轮,与主表 30 轮的 0.700 不是同一场;6 轮第三方防御的两项比率都是 1.000。
有什么可以进一步探索的点?
作者指出评分靠LLM judge、未下发的生成可能高估风险,并且是一对一、一个目标。
作者指出的局限与后续方向
- judge:评分依赖 LLM judge,会继承底层模型的偏差和不一致性。能写出 evidence marker 的任务有可核验真值;开放式伤害仍靠模型判断,分数应读作估计,而不是精确测量(Section 6、Section 7)。
- 反事实与改写:在从未下发的生成上测杀伤力是反事实,可能高估部署中的风险。防御若改写而不是放行或拦截,唯一一次生成针对改写稿,该轮没有未防御测量,原攻击与改写也不会在相同目标条件下运行。目标随机且未设种子,输入过滤的效果是统计意义上的(Section 6)。
- 对阵形式:目前是一个红队对一个蓝队、对着一个目标,排除多方动态和跨目标迁移(Section 6、Section 7)。
- 规模与饱和:作者称比较小,四种防御、四个目标、每对 30 轮,只在一个目标上重复。饱和既不检测也不显示;作者举例说,报告不会写明一场在第 30 轮已不再改进、却继续到第 100 轮,早轮对晚轮是唯一且粗的信号(Section 6)。
- 环与口径:环只有在适配器读取 evolution_hints 时才有用,Layer 3 需要每个变体积累若干场。完全变硬的目标上双方都会饱和,DR 多半反映目标自己的拒绝,改进曲线是平的。跨模型、跨对手的系统实证仍是未来工作(Section 6)。作者在 3.5 节还写明,平台无法改进它影响不到的适配器。
- 开销:每轮要发出多次 LLM 调用,运行的计算量不小(Section 6)。
实验覆盖范围
- 主表是一名捆绑攻击者 acea-default-red,两种蓝队框架各接 mistral-large-2512 与 ministral-3b-2512,四个目标;judge 与红队背后的模型论文都没有点名(Section 4.1)。
- 每个防御–目标对 30 轮;Target 1 每种防御重复三次,其余列一次;Target 3 只有最弱防御(Table 3)。
- 主表开启上下文环,并关闭已停用的代码级外环。另有未点名的第三方红队对第三方防御 6 轮、对弱防御 26 轮,论文未记录这两场的环是否开启(Section 4.1)。
- 难度预设在表中为默认,只在最弱防御对 Target 1 上改为 vulnerable(Table 3、Section 4.1)。
- 论文未报告 Stage A 的阈值、judge 与人工是否一致、上下文环开与关的 ASR 差,以及连续分和每种对阵的 DR。Target 2、Target 3 的模型名各来自一个事后确认窗口(Section 4.1)。
总结一下论文的主要内容
ACEA用ASAP让红蓝对同一目标对打;最弱防御对Target 4的30轮ASR为0.700。
ACEA 是让可插拔红队和蓝队共享一个目标 LLM 的对打场地,把攻击强度和防御效果分开记分。
作者要补三处空缺:双方只能对着固定对手分开练;LLM judge 分不清真实泄露和幻觉,拦截后又看不到攻击有多强;过程只能事后读日志。
参与者通过 ASAP 只暴露行为。每轮目标生成一次,拦截则打分但不下发。合成机密和 evidence marker 用来核对结果,judge 给三级裁决,并同时留下 raw 与交付后的伤害。可选 hints 让无状态适配器跨轮调整,不改权重。实时界面和战报把失败定位到具体一轮。
Table 3 用捆绑攻击者和四种防御,对四个目标各打 30 轮。三阶段分类器已报告的 ASR 中,最高是 large 对 Target 2 的 0.033,Target 1 与 Target 4 为 0.000。minimal small 对 Target 4 为 0.700、对 Target 2 为 0.000;minimal large 对 Target 4 为 0.633。Target 1 调到 vulnerable 时最弱防御为 0.100。同一最弱对子三次为 0.200、0.000、0.200。一场 minimal 防御的 DR 为 1.000、attributed DR 为 0.000。Figure 3 那场 26 轮里成功 23 轮。作者称 Target 1 列还换了攻击者状态。
作者称这些差首先随目标自身的对齐变化,其次是防御框架,而不是框架背后的模型;预设换的是表述。作者的结论是,上述设计把单边、事后的红队变成可对打、可检查的竞赛。作者把平台视为早期工作,开放问题是一对一且只有一个目标,以及开放式伤害仍靠模型判断。