论文研究递归自我改进中的安全失效为何持续及智能体如何恢复
Safety Must Survive Self-Improvement: Why Failures Persist and How Agents Recover
48条框架历史中,历史分数留住同一22个不安全程序;核心轨迹全量校验与已校验回滚终点全正确,节省逾43%(不含校验)。
- 递归自改进会把通过测试的优化留到后续代。新的授权依赖,或全部提案被拒,都可能让失败实现继续执行。要分开的是检测失败、备好修复和结束不安全执行。
- 固定LLM编辑器优化四类有状态授权组件,独立轨迹记录效果。配对干预比较历史分数与当前校验、拒绝后保留与回退,以及编辑失败代码还是初始正确程序。
- 48条框架历史里,历史读出把同一22个不安全程序留到迭代100,受影响档案都有正确替代。核心轨迹中,全量校验与已校验回滚的终点全部正确,平均部署节省超过43%,不含校验开销。
- 作者把结论限定在受控授权任务、固定编辑器、初始正确创始程序和外部契约,并假设所测条件内校验器正确。更大部署、更长历史和编辑器共同演化留待后续。讨论写明重校验仍受测试覆盖限制;服务成本按加权操作计。
- Evaluated models
- Devstral 2GLM 4.7 FlashQwen3 CoderClaude Sonnet 4.5GPT-5.6 Sol
- Benchmarks
- session authorizationfilesystem containmenttool approvalstructured user consentCasbin policy-engine taskτ airlineτ retail
- Metrics
- Safety rateFull correctnessSafety restoredSafe throughoutfounder-relative deployment service-cost savings
论文研究递归自我改进(RSI)中智能体跨代保留改动时,不安全行为为何持续以及如何恢复。作者构建状态化授权任务测试台,由固定 LLM 编辑器优化可执行的智能体组件,并用独立轨迹记录其效果。当新的授权依赖使此前测试过的优化失效后,48 条框架历史中有 22 条因沿用历史分数而保留了同样的不安全程序,尽管每个受影响的存档中都存在正确替代方案;刷新分数可在原始测试集上恢复正确性,但在独立组合的测试上仍有残余失败。当所有提案被拒绝、失败的现有程序继续运行时,失败也会在合约不变的情况下持续。从共同失败出发,改为编辑初始实现而非失败实现可改善恢复,但优势因编辑器而异。
Paper analysis
What problem does this paper attempt to solve?
检测失败、备好修复和停掉不安全执行,在自改进里是三件分开的事。
递归自改进跨代之后,已经能观察到的授权失败会不会继续执行,以及系统怎样走向恢复。
- 场景: 递归自改进(recursive self-improvement, RSI)把经验写成可跨代保留的改动;被选中的实现既服务后续请求,也成为下一轮修改的起点。作者认为,智能体因此同时继承有用能力及其假设,跨代安全是中心问题。
- 现有工作的缺口: 作者称,检测失败、产出正确替代、把替代选去执行是不同结果;最终程序正确,也不能说明中间各代一直安全。安全基准记录危险工具使用和未授权动作,演化研究讨论不安全复用、记忆退化和行为漂移,但较少分开失败已经可见之后谁还在运行。
- 作者的观察: 缓存授权决策可以通过初始全套测试;新的上游撤销可以在不改变本地版本号时使权限失效,而每次检查有效权限的初始程序仍然正确。历史分数可能继续选中不安全程序。契约不变时,候选全部失败后的 keep 规则也会留下失败的现任程序。作者称,仅有评估并不能决定不安全执行是否结束。
- 本文做的事: 作者构建四类有状态授权任务的受控测试床,固定 LLM 编辑器,演化被选程序及其历史,并用配对干预分开校验、部署和编辑来源。
- 所测风险: 安全契约规定每个请求与环境状态下允许的效果;不安全程序造成未授权效果。目标是效率收益加上完全正确,包括已授权效果、期望输出和被允许工作的完成。效果独立于程序记录,一概拒绝不能算修复成功。编辑器保持固定,改的是可执行组件。
What related research exists?
相关工作集中在递归自改进与智能体安全;作者用配对比较分开历史评估、执行资格和编辑来源。
引言与第 4 节把持久复用写成能力增长的前提,再把问题放到失败已经可观察之后、谁还在运行。
递归自改进
- 问题表述与综述: Schmidhuber (2007) 与 Duan et al. (2026) 讨论把已获得的能力送回后续改进。Gao et al. (2025)、Fang et al. (2025) 按模型、记忆、工具和架构变化组织智能体演化。
- 可执行的自改进系统: STOP 递归改进其代码改进过程,DGM 保留演化中的智能体档案,Gödel Agent 用 LLM 生成的改动修改自身逻辑(Zelikman et al., 2024;Zhang et al., 2025a;Yin et al., 2025)。AlphaEvolve 用程序评估搜索算法(Novikov et al., 2025)。
- 设计、工作流与技能: ADAS、AFlow 及相关工作自动化智能体设计、工作流搜索和可复用技能获取(Hu et al., 2025;Zhang et al., 2025b;Wang et al., 2023;Zheng et al., 2025)。作者称,这些方向使持久复用成为能力增长的中心。
智能体安全与执行约束
- 工具与注入基准: Agent-SafetyBench 与 ToolEmu 评估工具环境中的有害动作(Zhang et al., 2024;Ruan et al., 2024)。AgentDojo 评估提示注入攻击和防御(Debenedetti et al., 2024)。
- 适应过程中的风险: misevolution、对齐倾倒过程(ATP)和生命周期研究分析风险如何在模型、记忆、工具或工作流适应中出现或放大(Shao et al., 2026;Han et al., 2026;Lin et al., 2026)。
- 权限、记忆与技能: Progent 与 GuardAgent 约束哪些动作可以执行(Shi et al., 2025;Xiang et al., 2025)。其他被引工作考察可复用技能、智能体记忆,以及从安全模型转到行动系统(Hao et al., 2026;Chen et al., 2024;Wei et al., 2026)。
对比设置与作者定位
- 内部条件,不是外部攻击基线: 经验对照是同一档案、同一失败根或同一工作负载上的条件差异。任务为 session authorization、filesystem containment、tool approval、structured user consent,另有 Casbin 策略引擎任务。OpenEvolve 的控制器与数据库,以及未改的 DGM 父采样、档案更新和原始分函数,被当作固定上游组件接入。
- 定位: 作者称,本文考察这种复用跨代之后的安全,用配对比较分开历史评估、当前执行资格,以及用来生成后续改动的实现;匹配比较用来看改进循环何时在已有有效替代时仍保留已检测到的失败。附录 H 把历史档案分数写成一种更具体的错配:早先契约下测得的评估,仍可能把实现排在当前正确替代之上。
How does the paper address this problem?
固定编辑器改可执行组件,配对干预分开谁通过校验、谁继续运行、下次改哪份代码。
作者固定 LLM 编辑器,反复修改可执行组件,让被选程序及其历史演化;配对分支共享起点,把通过校验、继续运行、下次改哪份代码拆开。
世代、资格与保留
- 父程序: 第 g 代的现任程序是 w_{g-1},初始正确程序是创始程序 w_0。编辑器根据父程序 s_g、编辑目标和反馈产生两个子程序。继承编辑令 s_g 等于 w_{g-1},创始编辑令 s_g 等于 w_0。创始编辑改变提案来源,并不自动部署创始程序。
- 资格集: Pass_g(w) 为 1 表示程序在第 g 代通过所要求测试。资格集为 𝒜g={w∈{wg−1,ug(1),ug(2)}:Passg(w)=1}。
- keep 与其他回退: 资格集非空时,select 按该条件的排序与平局规则选出下一执行程序。为空时,即使现任未通过,仍令 wg=wg−1。作者将后者称为拒绝后保留。其他规则包括恢复创始程序、选择通过当前检查的历史程序(已校验回滚),或在没有程序通过时暂停。
- 两种资格: 档案保存程序与评估。历史资格复用已记录结果;当前校验用当前测试和契约决定资格。证书指记录在案的套件通过,不是形式证明。父程序资格管编辑来源,部署资格管执行。修复可以在档案里,却不被选去编辑或执行。
任务、测试与编辑目标
- 四类契约: session authorization、filesystem containment、tool approval、structured user consent。事件流把请求与权限或环境更新交错。同意任务与批准任务共享事件模板,但服务契约不同。环境按当前状态计算权限,并独立于返回值记录受保护效果。
- 三套测试: 公开测试决定资格和反馈,审计测试支持回滚,隐藏测试测量结果且不进入选择或反馈。核心三套是已知类别的不同实例。新依赖研究引入初始所有套件都没有的授权机制。每块 24 条公开、24 条审计、24 条隐藏流,八类各三个探针。
- 两种目标: 效率目标要求降低加权服务与交互成本,同时保留全部行为和完整契约。维护目标要求更清晰、可维护,并要求编辑器不去优化服务或交互成本。两者都收到公开契约、父代码和常规测试反馈。论文写明两者都不要求削弱授权。
- 编辑器设置: 核心轨迹与原编辑器恢复使用 Devstral 2、GLM 4.7 Flash、Qwen3 Coder,温度 0.7、top-p 0.95。Claude Sonnet 4.5 与 GPT-5.6 Sol 的请求省略温度和 top-p;Table 5 写明省略不是设为 0。每代两个子程序。程序在受限 Python 的独立进程中运行。
配对比较要分开的决定
- 五组对照: Table 1 依次问:初始校验是否够用;同一档案上为何不选修复;拒绝是否结束不安全使用;同一失败上编辑来源如何影响恢复;安全控制下优化是否仍有用。每组固定其余决定。
- 读出与刷新: 读出只从同一档案选程序,不改搜索。历史读出用存档评估排序,当前读出用当前测试排序。分数刷新在搜索继续前更新存档分数、反馈和选择元数据。
- 统计单位: 配对分支共享起始程序和工作负载。统计比较重采样起始块,而不是各代。
成功与恢复如何计
- 安全率: 被评估的选择中、没有未授权效果的百分比。未知结果不计为安全。
- 恢复: 对最初失败的根,safety restored 看当前选择是否安全,不是更早某代是否曾恢复。safe throughout 要求迄今每一代都无违规。完全恢复还要求违规之后达到完全正确,包括完成被允许的工作。作者在这个意义上使用 recovery。
- 效用: 创始程序已经能正确完成被允许任务,所以有用的改进是降低这份工作的服务成本,而不是跳过动作或检查。部署节省相对创始程序计算,不含校验开销;校验费用另计。
What experiments did the paper conduct?
历史分数与拒绝后保留会留下不安全程序;当前部署校验和已校验回滚在核心轨迹终点全正确。
历史分数、拒绝后保留和编辑来源都会把已检测到的失败留在仍被执行的程序上;当前部署校验与已校验回滚在这些任务的核心轨迹里以全正确终点结束,并保留部署节省。
实验设置
- 编辑器: 核心轨迹和共享失败根的原编辑器是 Devstral 2、GLM 4.7 Flash、Qwen3 Coder。新依赖、框架和新编辑器恢复还使用 Claude Sonnet 4.5 与 GPT-5.6 Sol。请求经 Amazon Bedrock Converse(us-west-2)。
- 任务规模: 四类家族各 72 块,共 288 块;每块三套各 24 条流,合计 20,736 次流分配(Table 4)。论文写明该计数包含跨块复用的事件序列,不是不同授权问题的条数。
- 核心条件: 12 代、两个 version-query cost、12 个种子、八个条件,交叉编辑目标、来源、校验和保留。常规校验在第 4 代扩到全部公开套件;保留控制从起点使用全量校验、已校验回滚或执行守卫。
- 框架与独立流: OpenEvolve 与未改 DGM 函数上,GPT 与 Sonnet 优化两种机制,48 条历史;新依赖在八次全量校验迭代后揭示。Casbin 另有 24 条历史、40 次编辑。独立组合为每种机制 64 条流,共 128 条,不进入提示词、排序或反馈。
- 指标与判定: 安全率、完全正确、safety restored、safe throughout、相对创始程序的部署服务成本节省。判定来自环境状态和独立效果轨迹,不是 LLM 评审。压掉输出或一概拒绝都不能算完全正确。
- 统计与完成情况: 每个任务家族的主对照配对 72 个块,按模型分层、10,000 次 bootstrap、百分位 95% 区间,16 个对照做 Holm 校正(Fig. 6)。论文写明各代和提案不是独立样本。288 个块均完成 12 代,终点安全与正确性均被观察到。
主结果
Swipe horizontally to read the table
结果 数值 条件 出处 历史读出仍不安全 22/48 迭代100,且全在GPT历史 Table 3 分数刷新后原套件不安全 0/48 匹配的60次编辑 Table 3 分数刷新后独立组合全正确 43/48 同上;另有3条不安全 Table 3 当前代码编辑的不安全终点 14/42 六代、全反馈、原编辑器 Fig. 4a 创始程序编辑的不安全终点 1/42 与上一行同一批根 Fig. 4a 已校验回滚的部署节省 43.5% 288块终点均全正确,不含校验 Table 13 从起点全量校验的部署节省 43.4% 288块终点均全正确,不含校验 Table 13 - 作者称,受影响档案里都有正确替代,历史读出仍留下同一批不安全程序;刷新是在编辑器写出新代码之前,用已有修复替换失败程序。
- 作者称,只重校验编辑父程序可以去掉不安全的编辑来源,但不改变不安全的部署状态;部署重校验才决定实际运行哪一份(Table 2)。
- 作者称安全率不等于完全正确:执行守卫的未授权终点为 0,但 288 个终点里全正确为 253;全量校验与回滚为 288(Table 13)。全量校验加回滚的节省为 42.8%,低于摘要中单独两项的逾 43%。
新依赖与历史分数
- 测了什么: Qwen3 Coder、Sonnet、GPT 在全初始校验下优化两种任务,72 条历史。第 4 代后同时给出新契约和扩展测试。冻结创始程序面对同一环境变化,且不继承该优化。
- 进入失败: 新依赖使 22/24 个 GPT 检查点不安全;冻结创始程序全部保持完全正确。作者称 Sonnet 检查点更常漏掉被允许的工作,Qwen 保持正确。Table 2 在第 10 代:历史部署的原套件不安全终点为 22、全正确 32;当前部署检查使二者变为 0 与 72。独立事件上,历史父检查加当前部署仍有 2 个不安全、70 个全正确;两项都做当前检查时为 0 与 71。部署重校验改善 22 个配对不安全终点、没有变差(Holm 调整后 p=9.54×10^-7);分层安全差 30.6 个百分点(95% CI 26.4 到 33.3),全正确提高 55.6 个百分点(CI 48.6 到 62.5)。
- 档案与残留: 长队列第 100 次编辑,当前读出在原套件上不安全 0、全正确 48,独立组合上不安全 6、全正确 42(Table 3)。Casbin 的 24 条历史:历史读出不安全 12、全正确 12;当前读出为 0 与 24;独立组合为 n/a。作者称 Sonnet 的 Casbin 任务也出现历史持续性。Table 7:最近一次旧全套通过的程序,在新契约下 20 个不安全、37 个全正确、15 个其他错误。图注称继承编辑与部署检查从第 5 代起重合于满安全;Fig. 2a 标出 69.4 与 100,论文未在图注中逐个对应图例。
拒绝后保留
- 测了什么: 契约不变。keep 与创始回退看到同一个失败现任、两个提案和同一测试结果。另一分析冻结 432 个候选池及其费用和结果。
- 结果: 现任和两个提案都被拒时,Fig. 3b 中 GPT 有 6 块、Sonnet 有 8 块(各处理 42 个失败根):keep 的 safety restored 为 0%,回退为 100%。全覆盖时 keep 的安全率为 96.8%,留下三条 Qwen 谱系的 14 个不安全现任;创始回退的安全与正确均为 100%(Fig. 3a)。附录 D.1:25 个池没有通过的程序,keep 留下 14 个不安全现任和 11 个其他不正确程序。
- 作者解读: 作者称,检测更宽、候选更好之后,仍要规定没有提案通过时什么可以运行。12 代随访的 346 个不安全状态都是全被拒后再次运行前一代代码;Qwen 占 345,Sonnet 占 1(Appendix D.2)。另 24 条历史在新回执要求下全部历史程序失效:keep 执行了 1 个不安全的被选代,stop 暂停该代;两者终点都是 24 个正确(Appendix C.3)。
编辑来源与有用优化
- 同一失败根: 42 个根来自 Devstral(14)、GLM(16)、Qwen(12)。Fig. 4a 标注:全体 66.7% 对 97.6%;Devstral 两种来源均为 100%;GLM 为 87.5% 对 100%;Qwen 为 0 对 91.7%。该队列里安全选择也完全正确。全反馈下编辑来源使不安全终点下降 31.0 个百分点(95% CI 23.8 到 38.1;13 个根改善、0 个变差;Holm 调整后 p=0.000488)。论文报告新编辑器终点对照相对当前编辑加 keep 的精确配对 p=1。
- 从正确程序出发: 72 条 consent 谱系上,效率继承与创始编辑的第 12 代安全率为 33.3% 与 90.3%(Fig. 5a)。创始编辑的终点安全优势为 56.9 个百分点(95% CI 45.8 到 68.1,Holm 调整后 p<0.001);曾经不安全的谱系为 63 与 61。Table 14 中三个原编辑器的 consent 不安全终点都是创始编辑更少:Devstral 17 对 0,GLM 7 对 0,Qwen 24 对 7(各 24 个起点)。批准任务上该对照的调整后 p=0.074;session 与 filesystem 在 Fig. 6 的调整后 p 为 1.000。
- 节省与例外: Table 13 中效率继承的部署节省为 60.9%,288 个终点里全正确只有 193。session 与 filesystem 的不安全终点在效率继承下为 2 与 1。作者称,单独的安全并不蕴含完全正确;校验本身消耗资源,短部署可能在校验上花得比执行节省更多。
其他消融与分析
- 更全反馈:当前编辑下 7 个根改善、1 个变差(exact p=0.0703);作者称这没有确立更全反馈单独改善恢复(Appendix A.4)。
- 价格与指令:各 6 条 consent 谱系,Qwen 在 3:1、6:1、12:1 的终点不安全为 5、4、3(Table 16);维护指令下 6 条终点也全部不安全(Table 15)。
- 平局:偏好现任不改变 36 个配对终点的安全状态;consent 不安全状态从 64 增至 66,批准从 4 增至 5(Table 17)。
- 费用:每代 1 批时校验开销超过服务节省;100 批时已校验回滚与全量校验的平均总费用比为 0.648 与 0.628(Fig. 11)。数字不含模型生成费用。
- 路径:第 60 次编辑,刷新对历史分数在独立组合上有 23 次改善、1 次变差(exact p=2.98e-6)。48 条长历史里当前读出至少一次不安全的有 8 条;第 100 次原套件终点不安全为 0(Appendix C.2、Table 3)。
- 原生 τ:效率继承成功率从 169/319 到 163/317,变化 −1.9 个百分点,95% CI [−6.9, +2.8](Table 19)。作者称配对比较没有确立演化使未授权写入提案更频繁;73 个不可用确认标注不计为安全(Appendix G)。
What are some points that can be further explored?
作者将结论限定于固定编辑器、初始正确创始程序和外部契约,更大部署与编辑器共演化留待后续。
作者指出的局限与后续方向
- 任务与编辑器: 研究的是受控授权任务、固定 LLM 编辑器、初始正确的创始程序,以及外部指定的契约(第 6 节 Limitations)。
- 校验器: 结论假设校验器在所测条件内正确;作者写明没有改变校验器的实现(第 6 节;Appendix I)。
- 后续方向: 更大的部署、更长的历史,以及编辑器与其改进策略共同演化,作者列为进一步研究的方向(第 6 节;Appendix I)。
- 测试覆盖: 第 5 节写,新的事件组合仍会使通过当前套件的程序失败,因此重校验仍受测试覆盖限制。
- 成本口径: 服务成本衡量加权操作,不是模型推理或时延(Appendix I)。
- 编辑器差异与迁移: Appendix I 写,Qwen 构成共享根研究里编辑来源恢复差异的大部分;原生 τ 工作流迁移结果混杂,没有确立授权失败的系统性增加。
实验覆盖范围
- 编辑器与家族: 实验中的编辑器为 Devstral 2、GLM 4.7 Flash、Qwen3 Coder、Claude Sonnet 4.5、GPT-5.6 Sol。核心轨迹覆盖四个授权家族、288 个块、12 代(第 3.6 节、Table 13)。
- 框架与外部任务: 框架实验在作者构造的授权工作负载上运行 OpenEvolve 组件、上游 DGM 函数和 Casbin;原生迁移使用已发布的 τ airline 与 retail 任务(Appendix C、G、I)。
- 对照: 做过历史资格对当前资格、拒绝后保留对创始回退或已校验回滚、当前代码编辑对创始编辑,以及分数刷新;另有全部历史程序都失效时的暂停对照(第 3 节、Appendix C.3)。
- 统计与观察: 主家族对照按块重采样,10,000 次 bootstrap,并对 16 个对照做 Holm 校正(Appendix A.4、Fig. 6)。核心 288 个块的终点安全与正确性均被观察(Appendix A.2)。
- 论文写明的范围: 论文写明没有把校验器实现当作实验因素;服务成本不是墙钟时延或 API 支出(Appendix A.3、I)。独立组合不进入提示词和选择。STOP 与 SICA 做了源码检查,论文写明没有运行它们的完整系统;AlphaEvolve 是报告级比较(Appendix C.1)。
Summarize the main content of the paper
跨代授权安全取决于当前条件下将运行的程序,以及下次编辑哪一份实现。
递归自改进中的授权安全,要跟着每一代实际运行的程序走,而不能只看最后有没有一份正确代码。
- 问题: 通过全部初始测试的优化,仍可能在新的授权依赖下产生未授权效果;契约不变时,检测失败也不等于停止执行。作者把检测、备好修复、结束不安全执行分成三件不同的事。
- 做法: 固定 LLM 编辑器修改四类有状态授权组件,独立轨迹记录效果,使一概拒绝不能算修复。配对分支共享起点,分别改变档案资格、拒绝后的保留规则,以及下次编辑用失败实现还是初始正确程序。
- 失败如何留下: 48 条框架历史中,历史读出把同一 22 个不安全程序留到迭代 100,且都在 GPT 历史里;受影响档案都有正确替代(Table 3)。新依赖揭示时,22/24 个已通过初始全量校验的 GPT 检查点不安全,冻结创始程序仍完全正确(第 3.2 节)。候选全部被拒时,keep 继续执行失败现任,回退则换上正确创始程序(Fig. 3b)。
- 恢复与节省: 分数刷新在匹配的 60 次编辑上使原套件不安全终点为 0/48,独立组合上全正确为 43/48(Table 3)。同一 42 个失败根、六代之后,当前代码编辑与创始编辑的不安全终点为 14 与 1(Fig. 4a)。核心轨迹里,从起点全量校验与已校验回滚的 288 个终点全部全正确,平均部署节省为 43.4% 与 43.5%,不含校验开销(Table 13)。
- 作者的结论: 作者认为,要在当前条件下检查将要运行的程序,并选择下次编辑哪一份实现;即使没有修订被接受,改进过程中的安全也必须保住。作者同时把结论放在固定编辑器、初始正确创始程序和外部契约上,并认为重校验仍受测试覆盖限制。