有界自我改进设计

Learn~60 minutesPython (stdlib, bounded-loop with invariant check)先修要求: Phase 15 · 07 (RSI), Phase 15 · 04 (DGM)
研究界已经收敛出四种用来约束自我改进循环的原语。必须在每次修改前后都成立的形式化不变量。无法被修改的对齐锚点。多目标约束——其中的每一个维度(安全性、公平性、鲁棒性)都必须成立,而不仅仅是性能。以及回归检测——当历史指标显示能力损失时暂停循环。它们都不是安全性的证明:信息论结果(柯尔莫哥洛夫复杂度、勒布定理)限制了一个系统就其自身后继者所能证明的东西。它们是提高静默失败成本的缓解措施。

问题

第 7 课的竞赛模拟器表明,微小的速率差异会复利成巨大的差距。第 4 课的 DGM 案例研究表明,循环会主动钻自己评估器的空子。这两个结果指向同一个工程问题:你能给自我改进循环加上哪些约束,使得这些约束无法被循环本身悄悄削弱?

ICLR 2026 RSI 研讨会总结(openreview.net/pdf?id=OsPQ6zTQXV)指出了四种这样的原语。Anthropic 的 RSP v3.0(第 19 课)和 DeepMind 的 FSF v3(第 20 课)都在能力阈值中引用了它们。Meta 的 HyperAgents 工作以及 SAHOO(2026 年 3 月)等社区框架在生产中实现了其中的子集。

诚实的表述是:这些都是缓解措施。信息论结果限制着任何系统就其自身后继者所能证明的东西,目前没有哪种设计能在形式上封闭这个问题。一个有良好边界的循环比没有边界的循环更安全,但并非绝对安全。

概念

原语 1:形式化不变量

不变量是一种在每次自我修改前后都必须成立的属性。例如:

  • 输出分布以固定的宪法头部(constitution header)为条件(第 17 课)。
  • 没有任何 tool call 会发往未授权的端点。
  • 内存写入经过带日志、带签名的路径。
  • 评估器的模块哈希与已批准版本一致。

不变量由循环无法编辑的外部代码检查。如果提出的修改违反不变量,就会被拒绝。这能拦截 DGM 式的评估器篡改模式(第 4 课)。

困难之处在于选择那些对安全而言必要、且能在合理时间内计算的不变量。约束过严会拖慢进展;约束过松则会让循环越过重要属性而不自知。

原语 2:对齐锚点

对齐锚点是循环核心目标的一种不可变表示,被固定在循环的编辑范围之外。例如:

  • 每次调用都从只读位置加载的宪法文本(第 17 课)。
  • 位于独立仓库、拥有独立访问控制的评估器。
  • 由人类签名、并在每个周期重新验证的工具权限清单。

锚点的作用是防止目标漂移。循环可以改进它追求目标的方式,但不能编辑目标本身。

微妙的失效模式在于:一个循环无法编辑的锚点,仍然可能被一个在「如何读取锚点」上发生漂移的循环重新解释。宪法 AI(第 17 课)明确基于推理来处理新情况,而解释漂移恰恰存在于这一推理层。锚点是必要的,但并不充分。

原语 3:多目标约束

只优化单一标量分数的循环会找到捷径。必须同时满足多个硬约束的循环可用的捷径更少。常见的维度包括:

  • 性能(任务级基准)
  • 安全性(红队测试评估、对已知有害内容的拒绝率)
  • 公平性(对敏感子群的差异性影响界限)
  • 鲁棒性(分布外测试集、对抗输入处理)

只有当每一项约束都成立时,修改才会被接受。第 13 课的成本管控器将此与财务约束叠加在一起。第 18 课的 Llama Guard 可以作为安全性维度接入。

原语 4:回归检测

每个周期的得分都会与历史分布比较。若跌幅超过配置的容差,循环就会暂停。这能捕捉静默的能力损失——否则这种损失会被运行平均值吸收,仿佛循环已经「改进并越过了」它。

一种实用实现是:保存最近 N 个周期的逐任务得分。每个新周期计算逐任务增量。如果任何一个增量低于阈值,该周期就被拒绝,并由人工审查。

信息论极限

柯尔莫哥洛夫复杂度和勒布定理为一个系统关于自身所能证明的内容设定了上界。Schmidhuber 的形式化 Gödel Machine(第 4 课)瞄准的是这类上界中最高的一个;至今没有人完成过非平凡的证明。勒布定理的结论是:如果一个系统能够证明地相信「如果我证明我应该做 X,我就会做 X」,那么它就会在未证明应该做 X 的情况下做 X——这是一个著名的自指失效。

对我们的原语而言,含义是:它们无法封闭安全问题。它们让静默失败变得更昂贵。一个恶意或已漂移的循环,原本可以悄悄绕过缺失的检查,现在必须主动破坏一个显式的检查——这是更容易被发现的信号。

一个完整示例

假设一个 Agent 提出一项修改。门控栈如下:

  1. 不变量检查:模块哈希、工具权限清单、宪法头部。
  2. 锚点检查:目标陈述与已批准版本一致(按字节或按语义)。
  3. 多目标评估:性能、安全性、公平性、鲁棒性各维度。
  4. 回归检测:任何维度的下降都不超过容差。

四项全部通过,修改才能落地。任何一项失败都会暂停循环。

bounded-gates静态版本未包含此交互图

使用它

code/main.py 在第 4 课的 DGM 式玩具环境上运行一个有界自我改进循环,并在其上叠加四种原语。每种原语都可以单独启用或禁用。演示的目标是证明每种原语都能捕捉某一类特定的失效,而移除其中任何一种,该类失效就会漏过。

交付它

outputs/skill-bounded-loop-review.md 审计一个提议的有界循环,并为它实际实现(而非声称实现)了四种原语中的哪些打分。

练习

  1. 在启用全部原语的情况下运行 code/main.py。确认循环在主指标上仍有改进,同时不让作弊手段获胜。
  1. 禁用回归检测。构造一个输入,使静默的能力损失被接受。
  1. 禁用多目标约束。展示循环在性能维度上收敛,而安全性维度下降。
  1. 为一个编码 Agent 设计对齐锚点。用什么文本、存放在哪里、如何检查?
  1. 阅读 ICLR 2026 RSI 研讨会总结。从四种原语中选一个,针对当前最先进做法提出一项具体改进。

关键术语

术语常见说法实际含义
不变量「永远为真的属性」在每次修改前后由外部代码检查的属性
对齐锚点「钉住的目标」位于循环编辑范围之外的不可变核心目标表示
多目标约束「所有维度都必须成立」性能、安全性、公平性、鲁棒性——全部必需
回归检测「一降就暂停」当历史指标增量显示能力损失时暂停循环
柯尔莫哥洛夫界「信息论极限」限制系统就其自身后继者所能证明的内容
勒布定理「自指陷阱」系统可以依据「我应该」行动,而无需证明「我应该」
门控栈「分层检查」多种原语组合;任何一项失败都会拒绝修改
有界改进「缓解,而非证明」提高静默失败成本;不能封闭安全问题

延伸阅读

示意图共 1 张

four-gates diagram
four-gates

“Stay hungry, stay foolish.”

— Steve Jobs

esc
↑↓切换↵打开esc关闭