论文提出诊断长程安全 LLM Agent 失败来源的检查点方法
Beyond End-to-End Success: Diagnosing Failures in Long-Horizon Security LLM Agents
作者诊断安全智能体长程失败:CSR 2.5 Flash rescue C3 为 95.4%,placebo 为 65.5%,3.7 反向。
- 长程安全任务的后续动作依赖更早发现的服务、状态或访问条件。终局失败可能发生在目标能力变得可测之前,只看成功率无法判断失败位置。
- 作者给任务加检查点,把到达能力首次可行使称为暴露,并分开报告暴露前后。怀疑上游障碍时,在同一环境种子上比较 rescue、结构匹配的 placebo 和无消息 baseline;CSR 的主结局是精确观察到生成状态的 C3。
- 初始 CSR 中,Gemini 2.5 Flash 的 15 次有 9 次在观察待复用状态前失败。92 种子的 CSR-Medium 确认实验里,协议消歧使该模型 C3 从 65.5% 到 95.4%;同一设计下 Gemini 3.7 Flash 从 98.9% 到 79.1%,到达 C3 后成功为 90/249。
- 作者称结论限于所研究的受控设置和已评模型–任务组合,且未确定 Gemini 3.7 下游失败的具体原因。确认性干预重复的是 CSR-Medium;DSR 只评了 Gemini 2.5 Flash,SR 的 30 次全部成功,AOA 暴露队列中 C6 为 0/20。
- 被测模型
- Gemini 2.5 FlashGemini 2.5 ProGemini 3.7 Flash
- 基准
- Delayed Secret Reuse (DSR)Controlled State Reuse (CSR)Strategy Recovery (SR)Ambiguous-Outcome Adaptation (AOA)
- 指标
- end-to-end task successC3 reachC5 reachsuccess conditioned on gating checkpointexact McNemar test
研究者提出一套诊断方法,用检查点标注安全任务,把失败划分为能力暴露之前与之后,并通过受控干预检验疑似上游瓶颈。该方法在四类任务上评估,分别涉及延迟复用已发现信息、复用已观察状态、从失败策略中恢复以及不确定结果后的决策。在状态复用任务上,检查点分析显示 Gemini 2.5 Flash 的许多失败发生在模型观察到后续需要复用的状态之前。在一项预先设定的 92 个种子研究中,针对性的协议消歧引导把状态观察率从匹配非引导对照消息下的 65.5% 提升到 95.4%。用 Gemini 3.7 Flash 重复同一设计得到相反效果,且状态观察不再可靠预测任务完成。
深度解读
这篇论文试图解决什么问题?
终局成功混杂暴露前失败与暴露后失败,需要按能力可测点分开诊断。
终局成功率把尚未到达目标能力可测点的失败,和到达之后的失败混在一起。
- 场景: 安全 LLM 智能体被用于渗透测试、Web 利用、漏洞发现和 CTF,需要跨多次依赖交互携带更早发现的服务、信息或访问条件。作者称依赖变长后,能否完成任务变得更重要,而终局成功难以解释。
- 已有评测: 一些安全基准用子任务、里程碑、工作流阶段或逐步更强的能力报告中间进展,更广的智能体评测也衡量部分进度或分析轨迹失败。作者认为,中间进度仍回答不了智能体是否行使了任务打算测量的能力。
- 核心区分: 若任务要测的是记住并稍后复用一段状态,从未发现该状态的运行不能作为记忆或复用失败的证据。作者把到达该能力首次可行使称为暴露(exposure),从而把终局失败分成暴露前与暴露后。
- 提出的做法: 作者给安全任务加检查点,同时报告是否到达暴露以及其后发生了什么;检查点分析指向特定上游障碍时,用 rescue 与结构匹配的 placebo 做配对干预。该方法用于延迟秘密复用、受控状态复用、策略恢复和不确定结果后的决策。
有哪些相关研究?
作者把工作放在进攻性智能体、中间进度基准和过程级评测之间,区别是暴露点与配对干预。
- 进攻性安全智能体: PentestGPT(2024)把 LLM 用于渗透测试,并强调跨任务维持上下文;Happe 等(2026)研究自主 Linux 提权中上下文、指导和记忆管理的作用;Fang 等(2024)与 Zhu 等(2026)展示网站利用、one-day 利用和多智能体 zero-day 利用。AutoAttacker(2024)、PentestAgent(2025)、EnIGMA(2025)、D-CIPHER(2025)和 Shell or Nothing(2025)把自动化延伸到事后活动、多阶段测试、交互式安全工具、规划与执行分离,或带记忆的长流程。Bouchari 等(2026)在 CTF 上比较多种智能体架构,并研究反复出现的失败模式与运行间一致性。论文只概括这些系统,并称进攻性安全表现还取决于工具、记忆、规划和交互接口,没有逐篇批评。
- 网络安全智能体基准: InterCode(2023)、NYU CTF(2024)、Cybench(2025)、AutoPenBench(2025)和 PentestEval(2025)在交互式 CTF 或渗透测试环境中评测,并用人工子任务、里程碑或阶段报告中间进度。CVE-Bench(2025)、CyberGym(2025)、Shell or Nothing(2025)、AgentCyberRange(2026)、CYBERSECEVAL 3(2024)和 CAIBench(2025)面向真实漏洞、主机或多主机环境,或覆盖更广的安全能力与风险。ExploitBench(2026)把利用拆成逐步更强、可独立测量的能力。作者称这些做法能看到比单一终局成功率更多的进展,但没有把它们列为实验对照。
- 长程与过程级评测: AgentBench、WebArena、τ-bench(均 2024),以及 AppWorld、OSWorld(2024)在外部环境中做多轮交互。Kwa 等(2025)讨论任务时长增加后稳定完成任务的重要性。AgentQuest、AgentBoard(2024)、AgentAtlas、Odysseys、HORIZON(2026)用目标进度、增量进展、行为决策、分级量表或轨迹级失败归因,描述智能体沿轨迹完成了什么、在何处失败。
- 实验对照与任务: 论文没有把上述智能体或外部基准当作对照方法。对照是同一任务实例上的 baseline(无额外消息)、rescue 和 placebo;任务是自建的 DSR、CSR、SR、AOA。被测模型为 Gemini 2.5 Flash、Gemini 2.5 Pro 和 Gemini 3.7 Flash。
作者不提出新的进攻性安全智能体。作者把这项工作定位为补充:过程级指标描述轨迹上完成了什么,而这里要区分的是未到达目标能力可行使之点,以及到达之后的失败,并用匹配干预检验可隔离的上游解释。
论文如何解决这个问题?
用检查点定义能力暴露,再用冻结的 rescue–placebo 配对检验上游瓶颈。
整体做法是给长程安全任务加检查点,先判定目标能力是否已经可行使,再用冻结的 rescue–placebo 配对检验可疑的上游障碍。作者不改任务去强迫智能体到达门控点。
任务与暴露
- 四类任务: DSR 看早先获得的配置秘密能否稍后在受保护 API 复用,并完成 SSH 门控的最终取回。CSR 固定发现与最终访问,只改变观察与复用之间的强制中间动作数,Short、Medium、Long 分别为 2、8、20。SR 看首选策略不可用时是否转到六步有序后备;Control 下首选策略成功,Explicit 与 Ambiguous 分别以明确终止失败或含糊失败阻断它,后备路径不变。AOA 看首选路径结果不确定后的行为;若再次走首选策略,Transient 在预定核验重试后成功,Persistent 仍含糊,Explicit 返回终止失败。
- 实例组成: 确定性带种子生成器、Docker 多服务环境、固定提示词与工具协议、检查点规范。环境暴露 HTTP、文件、API 和 SSH。评测前作者为每个任务验证一条可行解。环境、发现过程、最终接口、提示词和工具协议尽量固定,使变体差异对应所研究机制。
- 暴露: 门控检查点是智能体首次具备行使目标能力所需信息或状态的最早点,到达即暴露。CSR 的门控点是 C3,记录对生成状态的精确观察,且发生在受控中间序列开始之前。AOA 的 C5 记录首选路径上第一个有效结果,此后的适应决定才可观察。暴露前失败仍计入终局结果。
- DSR 不作干净对照: Long 同时改变复用前间隔和路由发现要求。作者因此只把 DSR 当次要证据,不把 Short 与 Long 的差异解释成单纯的保持差异。
检查点记分
- 记分条件: 只有命令输出或服务响应等轨迹中出现所需证据才记分;仅仅尝试对应动作不够。随机值可与生成的 ground truth 对照,但证据本身必须曾对智能体可见。检查点表示任务相关证据,不必严格单调。
- CSR 序列: Table I 中,C1 为初始服务发现,C2 为配置工件发现,C3 为精确生成状态观察,C4 为下游接口知识,C5–C6 为中间序列进展,C7 为中间序列完成,C8 为正确复用较早状态,C9 为获得最终访问,C10 为观察到精确最终结果。
- 编号范围: CSR、SR、AOA 共用 C0–C10 编号,语义按任务而定。DSR 更早,保留自己的检查点与失败标签。论文给出 AOA 的 C6 对应第二次含糊结果,未在 Table I 之外逐项定义 SR、AOA 的全部检查点。
配对干预
- 三种条件: 每个确定性种子在相同模型、任务实例、scaffold、执行上限和干预时机下跑 baseline、rescue、placebo。baseline 无额外消息。主比较是 rescue 对 placebo,用来把针对性信息与多插入一条消息分开;baseline 提供描述性背景。
- CSR 发现干预: rescue 只提供区分 HTTP 服务与 SSH 服务所需的协议信息,不披露配置工件、生成状态、下游接口、凭据或最终结果。智能体仍须定位并查看工件、完成其余步骤、保持生成状态,并在需要时复用。更早一次干预则是在工作流后段只恢复智能体曾经观察到的精确状态值。
- 触发与冻结: 可在固定模型回合或指定执行事件触发。确认性研究在第二次 command_completed 之后、下一次模型调用前投递。触发不看任务是否成功,也不读取生成的任务值来决定时机。另记是否到达干预点、消息是否投出。两条消息在正式执行前冻结,字节数和行数匹配;分析元数据不复制干预正文。
- 结局: 主结局是干预打算影响的检查点。CSR 发现研究的主结局是 C3 到达,终局成功是次要结局,因为完成还依赖后续阶段。轨迹模式被当作假设;干预可能支持该机制、检测不到效应,或方向相反,三种都在同一冻结设计下解释。
冻结设计与统计
- 治理: 正式执行前固定运行顺序、相关配置、干预内容、源码修订和分析计划。清单含计划运行、变体、种子、模型、提供方设置、执行上限、条件分配和触发;执行器按既定顺序取下一位置。scaffold 配置和干预消息用密码学摘要绑定,绑定内容变化则校验失败。候选实验经一致性审查后,清单与源码修订写入单独的批准产物;正式执行开始后二者视为冻结。
- 账本: 追加式记录覆盖准备、执行、完成或失败、评测,不把中断运行改写成成功。基础设施失败指运行器或执行器错误导致没有有效测量,与智能体正常执行但未完成任务分开,不静默重跑或替换。
- 样本与检验: 五种子 CSR 探索用于定稿干预并规划样本量,不与确认性结果合并。确认性为另外 92 个匹配种子,来自 McNemar 配对功效分析,并用正态近似与精确枚举核对;独立组计算只作保守交叉检查。论文未给出功效数值。同一 92 种子、CSR-Medium、触发、消息、顺序、检查点和检验原样用于 Gemini 3.7 Flash,不为新模型重算,且在看到任何 3.7 结果前冻结分析计划。跨代比较预指定为次要、描述性。
- 配对规则: 双侧 exact McNemar,α=0.05,只使用 rescue 与 placebo 结果不同的种子。零假设是两个不一致方向等可能;作者把 p<0.05 当作反对零假设的证据。3.7 的一对进入主分析,还须两轮都基础设施有效且到达干预点,不插补缺失科学结局。2.5 的原始预指定要求到达干预点,但未明确处理被基础设施截断的运行;作者在查看 C3 或成功结局之前写明分析澄清,把这类运行排除出配对分析,并另报敏感性界。
论文做了哪些实验?
CSR-Medium 确认实验:2.5 Flash rescue 的 C3 为 95.4%,placebo 为 65.5%;3.7 反向。
实验设置
- 模型: 初始跨模型队列使用 Gemini 2.5 Flash 与 Gemini 2.5 Pro。确认性干预先测 Gemini 2.5 Flash,再以同一冻结设计重复 Gemini 3.7 Flash。匹配比较中 scaffold、工具协议、任务提示词和执行上限相同。调用均经 OpenRouter。
- 任务与样本量: 实验在自建任务上完成,没有把外部基准当作对照。CSR 初始为每模型 15 次,Short、Medium、Long 各 5 个种子。AOA 暴露队列为每模型 10 次,跨 Transient 与 Persistent。DSR 仅 Gemini 2.5 Flash,Short 与 Long 各 5 次。SR 在两个 Gemini 2.5 模型、三个变体上共 30 次。探索性干预为 5 个匹配种子,不并入确认性。确认性为另外 92 个 CSR-Medium 种子,每种子 baseline、rescue、placebo 各 1 次,计划 276 次;3.7 复用这 92 个种子,不重算样本量。
- 对照与触发: baseline 无额外消息。rescue 只给区分 HTTP 与 SSH 的协议映射。placebo 无任务相关指导,并与 rescue 在字节数和行数上匹配。确认性消息在第二条已完成命令后、下一次模型调用前投递。
- 指标: 终局任务成功、门控检查点到达(CSR 为 C3,AOA 为 C5),以及到达门控点后的成功。确认性主结局是 rescue 相对 placebo 的 C3 到达;终局成功为次要结局。
- 判定与检验: 检查点只在轨迹证据出现时记分,不是 LLM 评审。论文未报告与人工判定的一致性。配对二元结局用双侧 exact McNemar 检验,α=0.05。
- 执行上限: 90 条已执行命令、120 个模型回合,连续 12 次协议错误后停止;命令超时 30 s,提供方请求超时 60 s;输出最多 1,024 token,提供方调用最多重试两次。各条件相同,并在 3.7 复制中保持。基础设施失败单独入账,不静默重跑。
主结果
确认性比较的主结局是 CSR-Medium 上 rescue 对 placebo 的 C3 到达。Table III 同时列出到达 C3 后的成功。正文对后一列的分母写法不同:Gemini 2.5 Flash 的 205/210 是 baseline、rescue、placebo 中同时到达干预点与 C3 的基础设施有效运行;Gemini 3.7 Flash 的 90/249 是合格的这三类运行中到达 C3 者。
表格较宽,可左右滑动
模型 Rescue C3 Placebo C3 不一致对(R/P) McNemar p 到达 C3 后成功 Gemini 2.5 Flash 83/87(95.4%) 57/87(65.5%) 29/3 2.56×10^{-6} 205/210(97.6%) Gemini 3.7 Flash 72/91(79.1%) 90/91(98.9%) 1/19 4.01×10^{-5} 90/249(36.1%) - 作者认为,对 Gemini 2.5 Flash,只提供协议消歧信息就改变了相对 placebo 的状态观察,因而协议发现是该暴露瓶颈的因果贡献因素;到达相关状态后,剩余工作流通常会完成。
- 作者称主导失败模式随模型代际改变:同一冻结干预在 Gemini 3.7 Flash 上降低 C3 到达,且到达 C3 后仍有大量终局失败,协议发现不再是主要限制。Figure 4 标注了与 Table III 相同的四个 C3 比例。
- 作者把跨代比较保持为描述性,没有在两代模型之间加事后显著性检验。作者称,为某一模型瓶颈设计的干预不应自动当成对另一模型的通用处理。
初始暴露分解
- 测了什么: 在干预确认之前,用检查点把 Gemini 2.5 的 CSR 与 AOA 运行分成成功、暴露前失败和暴露后失败。CSR 每模型 15 次,AOA 暴露队列每模型 10 次。
- 结果: Gemini 2.5 Flash 的 CSR 成功 5/15,C3 为 6/15,其中 5 次成功;10 次失败里有 9 次从未获得待复用状态。Gemini 2.5 Pro 的 C3 与成功均为 15/15。Figure 3 标注 Flash 的暴露前失败 9/15(60%)和成功 5/15(33%),并标注 Pro 为 15/15(100%)。AOA 上 Flash 成功 8/10,且只在这 8 次到达 C5,到达后全部成功;Pro 为 10/10。Figure 3 标注 Flash 为 2/10(20%)与 8/10(80%),Pro 为 10/10(100%)。
- 作者的解读: 作者称 Flash 在这两项任务上较低的终局成功主要来自暴露前,而不是到达能力相关检查点之后。轨迹检查提出一个假设:未到达 C3 的运行反复尝试未经认证的 SSH,而没有先做发现配置工件所需的 HTTP 侦察。作者把这当作假设。配对个案中,placebo 在状态观察前失败,rescue 在只收到协议映射后完成任务;作者称单对不能确立该模式普遍成立。
终局成功与复制方向
- 测了什么: 同一确认性设计下的次要结局终局成功,以及基础设施无效运行和缺失结局的极端假设是否改变主结论。
- 结果: Gemini 2.5 Flash 的 rescue 终局成功为 82/87(94.3%),placebo 为 56/87(64.4%),不一致为 29 与 3。到达干预点且到达 C3 的分项为 baseline 63/65、rescue 86/88、placebo 56/57。276 次计划运行全部进入终止实验状态;7 次基础设施异常为 placebo 5、baseline 2、rescue 0,主分析因此为 87 对。Gemini 3.7 Flash 的终局成功为 rescue 28/91(30.8%)、placebo 40/91(44.0%),不一致 14 与 26,exact McNemar p=0.0807。276 次亦全部终止;3 次基础设施无效,其中 1 次 placebo 影响配对资格,主分析为 91 对。
- 作者的解读: 作者把终局成功保持为次要结局,因为干预直接针对发现,完成任务还依赖后续阶段。作者称 3.7 的终局差异未通过其 α=0.05 检验,因此仍以 C3 为主结果。作者称 2.5 的结论在两种极端填补下不变;3.7 的两种假设都保持 placebo 偏向。
次要诊断任务
- DSR: Gemini 2.5 Flash 在 Short 成功 4/5,Long 成功 2/5。5 次 Long 都发现了秘密,但只有 2 次完成该变体额外引入的路由发现,这两次随后都正确复用秘密。作者称 Long 同时改变依赖长度和路由发现,因此不能把它当成保持能力变差的干净证据。
- SR: 两个 Gemini 2.5 模型、三个变体共 30 次全部成功。作者称这是性能天花板:任务设计上可以成立,但一旦被评智能体稳定解出,就很少再能区分所关心的能力。
- AOA: Transient–Persistent 暴露队列中,对应第二次含糊结果的 C6 为 0/20。作者称智能体通常在第一个含糊信号后离开首选策略,预定的重试策略比较没有被行使。同时,Flash 有 2/10 未到达初始 C5,Pro 为 10/10;到达 C5 的 Flash 运行随后都成功。
其他消融与分析
- CSR 变体的 C3(各 5 个种子):Gemini 2.5 Flash 为 Short 1/5、Medium 1/5、Long 4/5;Pro 每变体 5/5(Section V.A)。
- 五种子探索的 C3 为 rescue 5/5、placebo 4/5、baseline 2/5。更早的状态值恢复干预里,5 对中仅 2 对在两种条件下都到达干预点,且两对在 rescue 与 placebo 下都成功,无不一致对(Section V.C)。
- Gemini 2.5 Flash 确认性描述对照:85 个有效 baseline–placebo 种子的 C3 为 62/85(72.9%)对 55/85(64.7%),方向与五种子试点相反;90 个 rescue–baseline 对为 86/90(95.6%)对 65/90(72.2%)(Section V.C)。
- 2.5 的 5 次无效 placebo:全部视为到达 C3 时 p=2.56×10^{-6},全部视为未到达时 p=1.23×10^{-7}(Section V.C)。
- 3.7 被排除的 1 次 placebo:缺失 C3 视为失败时 p=2.21×10^{-4},视为成功时 p=4.01×10^{-5}(Section V.D)。
- 两代都合格的种子交集:2.5 的 rescue 偏向比例为 0.906(29 对 3,95% CI [0.750, 0.980]),3.7 为 0.053(1 对 18,95% CI [0.001, 0.260]);这里的 18 不同于主分析的 19,因为只用交集(Section V.D)。
有什么可以进一步探索的点?
作者称结论限于受控设置与已评模型–任务组合,且未确定 3.7 下游失败的原因。
作者指出的局限与后续方向
- 受控设置: Discussion VI.E 写明,结论限于这里研究的受控设置。
- 任务目的: 同节写明,这些任务用来隔离特定长程失败机制,而不是测量一般的自主渗透测试能力。
- 结果适用范围: 同节写明,干预结果适用于所评估的模型–任务组合。
- 下游原因未知: 同节写明,Gemini 3.7 研究显示早先的发现诊断不再以同样方式迁移,但没有确定后来下游失败的具体原因。
- 推理细节: Discussion VI.B 写明,干预并不揭示模型推理的每一个细节,而是为所针对的障碍是否促成失败提供受控证据。
论文的 Discussion 与 Conclusion 没有另列作者将要开展的实验。VI.D 写的是给安全智能体基准设计的做法建议。
实验覆盖范围
- 被测模型为 Gemini 2.5 Flash、Gemini 2.5 Pro 和 Gemini 3.7 Flash。92 种子的 rescue–placebo 确认只在 CSR-Medium 上对两个 Flash 代际进行;Gemini 2.5 Pro 出现在初始 CSR、AOA 和 SR 队列(Section IV、V)。
- 初始样本量在论文中写明为:CSR 每模型 15 次,AOA 暴露队列每模型 10 次,DSR 仅 Gemini 2.5 Flash 的 Short、Long 各 5 次,SR 共 30 次且全部成功(Section IV.C、V.E)。
- 成功判定使用轨迹中的检查点证据,不是 LLM 评审。论文未报告与人工判定的一致性(Section III.B、IV.C)。
- 确认性检验为双侧 exact McNemar,α=0.05。五种子探索不与确认性结果合并。跨代比较被预指定为描述性,论文未在两代模型之间做事后显著性检验(Section III.E、V.D)。
- 执行上限为 90 条命令、120 个模型回合,连续 12 次协议错误即停止;调用经 OpenRouter。论文未报告 Gemini 3.7 Flash 在 DSR、SR、AOA 上的结果,也未报告功效分析中的具体功效数值(Section III.E、IV.B、V)。
总结一下论文的主要内容
检查点把终局失败拆成暴露前与暴露后;同一协议消歧在两代 Flash 上方向相反。
作者提出一套检查点诊断,用来判断长程安全智能体的失败发生在目标能力可测之前还是之后,并用配对干预检验上游解释。
- 问题: 终局成功把没走到该测能力,和走到之后没做成混在一起。从未观察到待复用状态的运行,不能当成状态复用失败。
- 做法: 四个任务跑在带种子的 Docker 多服务环境中,使用固定提示词和工具协议。CSR 以 C3,即精确观察到生成状态,作为暴露点;Short、Medium、Long 只把其后的强制动作数设为 2、8、20。rescue 只补充 HTTP 与 SSH 的协议区分,placebo 是字节数和行数匹配的无指导消息。主比较用双侧 exact McNemar 检验。
- Gemini 2.5 Flash: 初始 15 次 CSR 中成功 5 次,C3 为 6 次,其中 5 次随后成功。92 种子的 CSR-Medium 上,rescue 的 C3 为 83/87(95.4%),placebo 为 57/87(65.5%),p=2.56×10^{-6}。同时到达干预点与 C3 的运行中,205/210 终局成功。
- Gemini 3.7 Flash: 同一冻结设计下,rescue 的 C3 为 72/91(79.1%),placebo 为 90/91(98.9%),p=4.01×10^{-5}。到达 C3 后成功为 90/249(36.1%)。终局成功为 28/91 对 40/91,p=0.0807,作者仍以 C3 为主结果。
- 其余任务: DSR-Long 同时改变间隔和路由发现;SR 的 30 次全部成功;AOA 暴露队列中预定比较所需的 C6 为 0/20。作者称检查点能显示终局成功率掩住的这些情况。
- 作者结论: 作者称失败的主要来源可以随模型代际改变。评测除了看任务是否完成,还应看智能体是否到达被测能力所需状态、暴露后失败发生在哪里,并用受控干预检验可疑障碍。