先别被“自我改进”四个字带跑

让 coding agent 自己改进自己,是这个方向里最容易让人兴奋的一步。因为一旦这件事成立,系统似乎就不再只会执行,而会开始积累能力、修正错误、逐步长出自己的优化循环。

问题也恰好出在这里。没有足够硬的评估,自我改进不会自动变成进步,它更可能只是把偏差放大得更快。SICA 值得追的,不是愿景,而是它先把验证机制放在了前面。

这里最关键的词,不是 improving,而是 loop。项目真正提供的,不是某种神秘的“自动进化能力”,而是一套能够反复运行的实验回路。把这个重点看清楚,这个项目的价值就会从科幻感回到工程感。

这套系统最难的地方,从来不是让 Agent 改代码

一个能读文件、执行命令、编辑代码的 Agent,理论上当然可以改自己的仓库。但这件事真正困难的地方,不在“能不能改”,而在“改完以后你怎么知道它变好了”。

论文摘要直接指出,作者展示的是一种非梯度、数据效率较高的学习机制:Agent 借由反思和代码更新,提升自己在 benchmark 任务上的表现。换句话说,这里并没有神秘的新训练范式,核心依旧是把代码修改作为学习媒介,把 benchmark 结果作为改进信号。

这也正是这个项目值得写长文的原因。它把一个常被口号化的问题压回了一个很朴素的工程现实:如果没有稳定评估,所谓自改进很容易只是随机漂移。今天加一个模块,明天删一个 prompt,也许单次看起来更顺了,但你根本不知道它是不是过拟合了某一批任务,或者只是恰好在一次试验里撞对了。

所以严格说,这个项目研究的不是“Agent 能不能改自己”,而是“Agent 怎样在有度量的前提下改自己”。

仓库设计的重点,是把改进过程做成可回放实验

GitHub README 给出的循环非常清楚。第一步,在 benchmark 上评估当前版本;第二步,把结果存档;第三步,运行 Agent 去修改自己的代码;第四步,回到评估阶段。仓库还专门设计了 results/run_<id> 结构,用来保存实验元数据、每轮版本、benchmark 结果和 meta improvement 日志。

这个结构非常重要,因为它把“Agent 自改进”从一次性奇观变成了一个可比较的试验序列。你可以回看哪一轮做了什么改动、哪一轮在哪类 benchmark 上提升、哪一轮反而退步。没有这层结构,自改进系统就只剩下“我感觉这次更好了”的口头判断。

另外,仓库还提供了交互式可视化页面,用来观察事件总线、调用图、overseer 信息以及子轨迹。这一点也很关键。自改进项目如果只输出最终分数,你会知道结果,却不知道过程发生了什么。可视化虽然不直接提高能力,却能把系统从黑箱拉回可以诊断的状态。

对真正想做自迭代平台的人来说,这套实验可回放性,往往比某一轮 benchmark 涨了多少更值得看。

它刻意从一个“并不强”的基线 Agent 出发

仓库 README 还有一段很容易被忽视,但其实非常重要的说明:base_agent 只是一个刚好能执行元改进任务的最小 Agent,它缺少高效文件编辑工具、tree-sitter、LSP 集成,以及更高级的推理结构。

这不是作者在自我贬低,而是一种设计选择。因为如果一开始就把系统堆成一个功能复杂的大 Agent,你很难判断后续提升究竟来自哪里。相反,从一个能力刻意受限但结构清楚的基线出发,改进的边际贡献才更容易被识别。

这件事对中文语境下很多“自进化 Agent”讨论很有提醒作用。我们太容易直接追求一个全能系统,然后再期待它自动把自己变得更强。可一旦基线本身就是一团混杂的复杂系统,后续每一步修改都会变得难以归因。结果不是不会进化,而是进化变成了不可解释的漂移。

Self-Improving Coding Agent 的一个重要价值,就在于它愿意先把起点压低,把实验边界画清楚。

安全和隔离在这里不是配角,而是主前提

仓库 README 明确提醒,系统必须运行在提供好的 Docker 容器里,因为 Agent 能执行 shell 命令,需要通过容器隔离宿主机文件系统风险。这类说明看似基础,实际上把问题说得非常诚实。

任何自改进系统,只要涉及真实代码编辑和命令执行,就天然带着双重风险。第一重是普通 coding agent 的执行风险。第二重是它修改的是自己,这意味着系统的行为边界会随着每轮演化而变化。如果没有足够隔离,自改进很容易从研究问题直接滑向运维事故。

这也是为什么这个项目虽然有强烈的“自我演化”色彩,但它的实现姿态却非常工程化。没有安全边界,自迭代不会变成“更聪明的系统”,只会变成“更难预期的系统”。

Spotlight 真正该借鉴它什么

../spotlight/AGENTS.md 把这个项目列在“自迭代与自改进”的重点参考里,我觉得抓得很准。但 Spotlight 如果要借鉴,最该借的并不是“让平台自己改自己”的口号,而是三件更基础的事。

第一,建立稳定评估面。没有 benchmark、验收标准和回放记录,自改进只是随机搜索。第二,建立结果归档面。每轮任务、每轮改动、每轮结果都需要有清楚的 run 记录,不然系统无法形成长期学习。第三,建立安全执行面。任何会改平台本身的 Agent,都必须在隔离环境、审批规则和回滚机制之下运行。

换句话说,真正值得移植的是自改进基础设施,而不是自改进口号。一个平台只有先能稳定地看见自己的变化,才配讨论让 Agent 去推动这些变化。

先定义“变好”,再谈自我改进

真正成熟的自我改进系统,往往会比想象中更保守。它不会因为能改就一直改,而会把评估、回退和边界控制放在循环内部,让每一次变动都留下可比较的证据。

所以 SICA 给这条路线补上的,不是一层装饰性的安全带,而是一道基本门槛。没有这道门槛,自我进化听起来越诱人,系统在现实里就越容易失真。

更新附注

  • 版本:v1.4

更新日期:2026-04-01 更新原因:补入仓库内的 base agent 设计说明作为第三条可核验来源,并同步刷新更新时间,避免这篇文章继续停留在 2 条引用状态。

  • 版本:v1.3

更新日期:2026-03-31 更新原因:收紧开头定义,让“loop 比 improving 更关键”这一条判断更直接。

  • 版本:v1.2

更新日期:2026-03-31 更新原因:重写首节和收束段,压缩模板味,把正文推进改成更克制的刊物式叙述。

  • 版本:v1.1

更新日期:2026-03-30 更新原因:统一重写标题、summary、abstract 与首屏导语文案,压低口号感,改成更克制的刊物式表达。

  • 版本:v1.0

更新日期:2026-03-24 更新原因:首发版本,围绕 Self-Improving Coding Agent 的评估闭环、基线设计与自改进基础设施完成长文整理。