从零实现递归自我改进

到第4批处理时,我的断链修复工具已经能够在无需询问我的情况下处理95%的修复。我并没有编写那些逻辑。是它自己赢得的。

这句话听起来好像需要前沿实验室、大规模训练运行,以及一队紧张注视的对齐研究员才能实现。

并不需要!

它只需要一个 JSON 文件、一个评分系统,以及从零信任开始的纪律。

这是一个关于一个非常小的反馈循环教会我关于一个非常大想法的故事。

1、什么是递归自我改进?

1965年,数学家 I.J. Good 写下了可能是人工智能历史上最具影响力的一段话:

"让我们将一个超智能机器定义为能够远远超越任何聪明人所有智力活动的机器。由于机器的设计是这些智力活动之一,超智能机器就能设计出更好的机器;那么毫无疑问就会出现'智能爆炸',人类的智能将被远远抛在后面。"

这是理论上的上限。现在更有趣的是实践的下限。

递归自我改进(RSI)存在于一个光谱上。最底层:AI 帮助工程师编写更好的训练代码。最顶层:自主系统在没有人类参与的情况下重新设计自己。中间是2026年所有行动的所在。

看看今年已经发生的事情:

  • MiniMax M2.7 在100多次迭代中自主更新了自己的强化学习工具,实现了30%的性能提升。该模型不仅仅是运行训练循环——它还修改了循环。
  • OpenAI Codex 5.3 被描述为"第一个在创造自身过程中发挥作用的模型"。模型的早期检查点调试了同一模型的后期检查点。这句话值得再读一遍。
  • Google AlphaEvolve 发现了一个更快的矩阵乘法算法——对于4×4复数矩阵,48次标量乘法而不是49次。这是自1969年Strassen工作以来的首次改进。由AI发现,而非数学家。
  • Anthropic 的 Claude Code 据称编写了70-90%用于训练新 Claude 模型的代码。这个工具正在构建构建下一个版本工具的东西。

然后是 Karpathy。2026年3月,Andrej Karpathy 开源了 autoresearch ——一个630行的 Python 脚本,在单个 GPU 上运行,自主设计 ML 实验、执行它们、评估结果并保留改进。一夜之间,在普通硬件上,达到竞争性基准。RSI 不再局限于拥有十亿美元计算预算的实验室。

但这里有一个在头条中丢失的关键细微差别:目前所有的 RSI 都是受监督的。 人类指导目标。人类审查结果。人类保持终止开关。模型在工具内改进,而不是在工具外。OpenAI 明确澄清,Codex 5.3 的自我创造"与 AI 模型完全自主地构建新模型相差甚远。"

这种区别对我构建的东西很重要。因为我也构建了一个工具。

2、问题

我有一个 Obsidian 知识库,里面有多年关于几乎所有事情的笔记。有一天,在一次批量清理提交中,我在搬家后删除了大约400个文件。重命名文件、重新组织文件夹、整理分类法。良好的整理工作。除了留下的1,308个断开的 wiki 链接。指向不再存在的文件的笔记。一张看不见的失效引用网络贯穿我的整个知识库。

我可以报告损害——现有工具做到了这一点。我可以一个一个地修复它们——人生苦短。我需要的是能够批量修复它们并且学习哪些修复可以在不询问我的情况下安全应用的东西。

这个问题逐渐形成:我能否构建一个受监督 RSI 循环的微型版本?修复、测量、赢得信任、更快修复。前沿实验室正在使用的相同模式,缩小到一个 JSON 文件和一个 wiki 链接修复器。

3、设计:基于置信度的毕业机制

我构建的系统有七种修复策略,按优先级顺序检查:

  1. 大小写不匹配——文件存在,但链接的大小写错误
  2. 别名重定向——文件被重命名,但旧名称可以作为别名
  3. 归档重定向——文件被移动到归档文件夹
  4. Git 恢复——文件被删除,但仍然存在于 git 历史记录中
  5. MOC 清理——链接出现在应该被更新而非修复的目录地图中
  6. 存根创建——没有任何匹配,但链接有足够的入站引用来证明创建占位符是合理的
  7. 链接删除——没有任何匹配,链接应该被直接删除

每次修复获得一个"模式键"——策略与上下文的组合。case-mismatch:moc 是目录文件中的大小写修复。git-restore:meeting 是会议笔记中的 git 恢复。这种粒度很重要。修复每日日志中的大小写不匹配与修复架构决策记录中的大小写不匹配是不同的。风险状况不同,因此信任状况也应该不同。

每个模式从分数0开始。每次修复从"提示"开始——系统描述它想做什么并等待我的批准。

评分是故意不对称的。

批准:分数 += 1

拒绝:分数 -= 2

分数达到5:模式毕业为自主模式。

毕业后一次拒绝:立即降级回提示模式。

信任是脆弱的。这是一个特性。

学习记录保存在一个 JSON 文件中,在批次之间持久化:

{
  "graduationThreshold": 5,
  "patterns": {
    "case-mismatch:moc": { "score": 3, "graduated": false },
    "git-restore:meeting": { "score": 5, "graduated": true }
  }
}

这是微型的 RSI 循环。系统不修改自己的代码。它根据在人类监督工具内展示的准确性修改自己的自主边界。这种结构与 MiniMax 模型调整 RL 训练脚手架时所做的类似。

这是完整的毕业流程:

还有一件事:一个预防层。一个 pre-commit 钩子,阻止删除具有两个或更多入站引用的文件。最好的修复是你永远不需要的修复。

4、历程:四个批次

第1批:零信任

所有20次修复都是提示的。系统对每个断链进行分类,提出修复方案,然后等待。我阅读了每个提案,检查了推理,然后批准或拒绝。

我批准了19个。包括一个真正新颖的存根创建——一个"Tool — Claude Code"的笔记,有13个入站引用但实际上从未存在过。系统建议创建一个具有正确前置内容和链接结构的占位符。这不是机械修复。那是一个判断调用,而它做出了正确的判断。

零拒绝。九种模式类型初始化为分数1。

这一批的最大胜利是 chi 到 Chi 的大小写不匹配。我住在一个小而古老的罗马城市叫 Chichester,这是一个非常英国的绕口令,所以是的,当地人自然会把 Chichester 缩写为 Chi,所以在我的知识库中有很多 chi、Ch 和 ci,这是阅读障碍的乐趣。一个模式,107个文件,一次批准。总共大约300个断链被解决。

第2批:建立证据

相同的模式类型重新出现。分数爬到1,然后是2。仍然全部提示。我仍然审查每次修复,但审查变得更快——我已经知道这些模式有效。

又修复了94个文件。

系统在学习。但它还没有赢得自主权。

第3批:毕业决定

两个模式达到分数3。我查看了数据:三个批次中59次修复。零拒绝。每个大小写不匹配都被批准。每次 git 恢复都被批准。每个别名重定向都被批准。证据是明确的。

我做出了一个深思熟虑的决定:我将17个模式中的16个一次性提升为自主模式。分数设置为5,graduated: true。不是因为评分系统自然达到了阈值——以观察到的速度还需要两个批次——而是因为证据已经压倒性,我对风险感到舒适。

只有 stub-creation:incubator 保持提示模式。它只被看到过一次。创建新内容比纠正现有引用值得更多的谨慎。这种不对称感是对的。

第4批:回报

20次修复中有19次是自主应用的。系统从 git 历史记录中恢复文件,解析陈旧的图表索引条目,纠正大小写不匹配,并更新链接——所有这些都无需停下来询问。我看着输出滚动过去。每次修复都记录其模式键、分数和"自主"这个词。

唯一一次提示修复是一次真正新颖的别名重定向。一个名为"Concept — System Overview"的文件需要一个"Concept — System"别名来解决断链。系统标记了它,解释了原因,然后等待。我批准了。分数增加。如果它再次看到相同的模式,它会静默处理。

四个批次的数字:1,308个断链减少到大约850个。79个唯一目标被修复。自主与提示的比例完全反转——从第1批的0%到第4批的95%。

5、这不是什么

让我在事情飘走之前把它拉回地面。

这不是 AGI。它甚至不是特别聪明的工程。它是一个里面有数字的 JSON 文件和一个读取这些数字来决定是否请求权限的 Claude Code 技能。"自我改进"是基于历史批准率的条件逻辑。一个带阈值的华丽计数器!

但这就是重点。

剥去前沿实验室的预算、大规模训练运行、存在风险 discourse——核心机制是一个反馈循环:行动、测量、调整自主权。MiniMax 在100多轮中演化其 RL 工具使用的相同结构,就是我用于在4个批次中让一个 wiki 链接修复器毕业的相同结构。Karpathy 的 autoresearch 在一夜之间在单个 GPU 上使用的相同模式。规模相差许多数量级。架构是相似的。

有趣的问题不是我的链接修复器是否是"真正的"RSI。在任何有意义的方面,它显然不是。有趣的问题是模式是否相同。我认为是的。而且我认为认识到这一点使前沿实验室的工作不那么神秘,更可操作。

6、我学到了什么

在断链被修复后,有四件事一直伴随着我。

1. 信任应该被赢得,而不是被配置。

任何自动化工具的诱惑都是预先设置权限:"这个工具可以做 X、Y、Z。"那是错误的模型。它假设你在看到工具运行之前就知道什么是安全的。从零信任开始,让系统展示能力。毕业阈值强制这种纪律。即使你不耐烦,你也不能跳过证据收集阶段。特别是当你不耐烦时。

2. 拒绝应该比批准奖励更多。

不对称评分(-2 对 +1)意味着一次错误比五次成功更重要。这符合人与人之间信任的工作方式。如果一个同事五次都做对了然后引入了一个生产错误,你的信心不会净到"略微正面"。它会急剧下降。评分系统模拟了这种现实。信任建立缓慢,打破快速。将其编码进去。

3. 预防胜过修复。

阻止具有活动入站引用的删除的 pre-commit 钩子比整个批量修复系统更有价值。它花了10分钟编写。修复系统花了几个小时。如果我先写了钩子,我根本不需要修复系统。在构建恢复机制之前先构建护栏。

4. 循环就是产品。

79个修复的链接不是有趣的输出。16个毕业的模式才是。它们代表压缩的判断——"这种类型的修复,在这种上下文中,可以安全地应用而无需询问。"那是可重复使用的。当下一次批量清理创建新的断链时(它会的),那些毕业的模式会向前携带。系统下一次运行以赢得的信任开始,而不是零信任。每个周期都比上一个开始得更远。这就是循环。

7、接下来的方向

链接修复器工作正常。但有趣的问题是当你将相同的毕业机制应用于其他领域时会发生什么。我有三个实验排队等待。

1. 信任衰减

现在,毕业的模式永远保持毕业。那是天真的。如果我六个月没有遇到 case-mismatch:moc 修复,MOC 文件周围的上下文可能已经改变——新的命名约定、重组的文件夹、不同的内容期望。陈旧的信任是虚假的信任。

修复是时间衰减。每个毕业模式获得一个 lastSeen 时间戳。如果一个模式在 N 周内没有被执行,其分数每个周期衰减1,直到低于毕业阈值并返回提示模式。系统必须维持信任,而不仅仅是赢得一次。专业认证就是这样工作的。飞行员执照就是这样工作的。为什么自动化应该不同?

2. 分层信任转移

当我毕业 case-mismatch:moccase-mismatch:taskcase-mismatch:projectcase-mismatch:conceptcase-mismatch:adrcase-mismatch:pattern 时——我实际上是在毕业 case-mismatch:*。策略已被证明。上下文几乎不重要。

下一个版本应该认识到这一点。如果策略的80%上下文变体都已毕业,系统应该推断该策略本身是普遍安全的,并为新上下文提供起步优势。不是完全毕业——也许从分数3而不是0开始。基于家族相似性的"热启动"。

这模拟了组织中信任的工作方式。如果有人成功交付了五个项目,你不会让他们在第六个项目上从零开始证明自己。你给他们赢得的可信度并注意边缘情况。

3. 回滚链

每个自主修复目前都记录有时间戳和模式键。但它没有标记 git 提交哈希。如果一个毕业模式结果是错误的——如果我在第10批后发现 git-restore:meeting 正在恢复损坏的文件——我需要找到并可能撤销该模式曾经采取的每次自主修复。

改进:用产生的提交 SHA 标记每个自主操作。将链存储在'learnings'文件中。如果一个模式在毕业后被降级,显示它采取的所有自主操作的完整列表,以便我可以审查它们。Git 使这很便宜——每次修复都是一个提交,每个提交都是可撤销的。安全网实现更高的自主权。

4. 跨领域应用

毕业机制完全与领域无关。链接修复器是一个实例。我计划将相同的模式应用于:

  • 自动标记笔记——按内容分类未标记的笔记,按标签类别赢得信任
  • 夜间数据库丰富——在 SQLite 数据库中评分和分类行,按列/策略组合毕业
  • 技能优化——针对评分标准运行 Claude Code 技能,调整提示,测量改进,并对持续得分更高的更改进行毕业

每个领域都有自己的'learnings'文件。机制是相同的。模式键改变。循环不变。

最终目标不是一个自我改进的工具。它是一个任何自动化都可以插入的可重复使用的信任赢得协议。一个共享的毕业服务,问题从来不是"这个工具应该被允许做 X 吗?"而总是"这个工具是否展示了它能在这个上下文中可靠地做 X,有这个记录?"

这就是转变。从配置信任到赢得信任。从权限到证据。

8、更大的图景

RSI 对话被前沿实验室和存在风险所主导。这种 discourse 很重要——模型参与自身训练的安全影响是真实的,值得认真关注。当 OpenAI 说 Codex 5.3 在创造自身的过程中发挥了作用时,这值得审查,而不仅仅是钦佩。

但底层机制——改进、测量、赢得信任、重复——是一种设计模式,不是末日预言。你可以今天在自己的工具上、任何规模上实现它。一个 JSON 文件和一个评分阈值。一个 pre-commit 钩子和一个批准门。前沿实验室用十亿美元计算预算探索的反馈循环,在一个 markdown 知识库和一个断链修复器上同样有效。

从零信任开始。让系统证明自己。代码很无聊。原则不是。

9、自己动手试试:一个启动提示

如果你使用 Claude Code(或任何代理编码工具),你可以在大约一小时内构建自己的基于置信度评分的毕业循环。以下是我会给 Claude Code 的提示,用于为不同领域引导整个系统。复制它,将任务描述调整为你想要自动化的任何重复操作,然后运行它。

我想构建一个带有基于置信度评分毕业的自我改进自动化循环。

## 任务
[在这里描述你的重复任务。示例:
- "修复我 Obsidian 知识库中的断链"
- "重命名不符合我们命名约定的文件"
- "根据内容标记未标记的笔记"
- "清理整个代码库中的陈旧 TODO 项"]

## 机制
构建一个具有以下组件的系统:

### 1. 学习文件 (JSON)
创建一个名为 `learnings.json` 的文件,结构如下:
{
  "version": 1,
  "graduationThreshold": 5,
  "stats": { "totalFixed": 0, "totalAutonomous": 0, "totalPrompted": 0, "totalRejected": 0, "batchesRun": 0 },
  "patterns": {}
}

### 2. 模式键
每个操作获得一个格式为 `{strategy}:{context}` 的模式键。
策略是你正在做什么。上下文是你在哪里做。
相同策略在不同上下文 = 不同信任级别。

### 3. 评分规则
- 每个操作从 PROMPTED 开始(系统描述它想做什么并询问我)
- 批准:分数 += 1
- 拒绝:分数 -= 2(不对称 - 设计上保守)
- 分数达到 graduationThreshold:模式毕业为 AUTONOMOUS
- 毕业后一次拒绝:立即降级(分数设置为阈值 - 1)
- 信任是每个模式的,不是全局的

### 4. 批量处理
- 以20个为一批处理项目
- 对于每个项目:分类策略,构建模式键,检查分数
- 如果已毕业:自主应用并记录 { date, action: "autonomous", item, context }
- 如果未毕业:向我显示建议的操作并请求批准
- 批次后:更新统计,写入 learnings.json,打印摘要

### 5. 预防钩子(可选但推荐)
创建一个防止问题复发的守卫。
这应该自动运行(pre-commit 钩子、linter 规则、CI 检查)
并阻止会创建新问题实例的操作。

## 要求
- 从零信任开始——每个模式从分数0开始
- 系统通过展示的准确性赢得自主权,而不是配置
- 拒绝比批准成本更高
- 毕业后一次错误 = 立即降级
- 记录每个决策以便审计
- 每批后打印摘要显示:已修复、自主、提示、拒绝、毕业模式

## 不要做什么
- 不要将任何模式默认设置为自主
- 不要跳过"明显"修复的批准步骤——让评分系统处理它
- 不要将阈值设置得太低(5是一个好的起点)
- 不要让拒绝与批准对称——信任打破比建立更快

逐步构建这个。从学习文件开始,然后是批量处理器,
然后是预防钩子。先用小批量测试。

调整顶部的任务描述,你就有了一个适用于任何领域的可重用框架。机制总是相同的:分类、评分、毕业、预防。具体细节改变。循环不变。


原文链接: Recursive Self-Improvement: Building a Self-Improving Agent with Claude Code

汇智网翻译整理,转载请标明出处