核心判断
这是一篇很好的系统设计地图,但不是“自我改进已经被证明”的实证综述。它把基础模型与外部 scaffold 放进同一状态空间,解决了“微调权重才算学习,还是写入记忆也算学习”的术语混乱;但论文没有做统一效果量、复现实验或文献筛选审计,所覆盖方法也大多是在人工设计的任务、奖励、验证器和沙箱中完成局部优化。
两类持久化底座
慢而难回滚的模型参数 \(\theta\),以及快而可检查的 scaffold \(\Sigma\)。
真正的控制点
不是谁提出更新,而是谁有权验证并把候选更新 commit 到下一版本。
尚未证明的东西
没有证据表明现有系统能在开放世界里稳定、通用、低成本地递归提升自身。
Self-improvement 不是“模型多想了一轮”,而是经验驱动的、跨任务持久化的、有验收门槛的状态迁移。如果没有持久写回,它只是推理;如果没有独立验收,它可能只是把错误永久化。
它解决的真实问题:大家说的“自我改进”根本不是同一种东西
当前文献把 self-training、self-reflection、self-play、memory、prompt optimization、自动造工具、修改 Agent 源码乃至递归自改都放在相似叙事中。只看名称,会把三件完全不同的事混在一起:一次任务内利用上下文做得更好;跨任务保留经验;修改产生更新的机制本身。
综述的关键动作是把现代 Agent 拆成“模型核 + 运行 scaffold”。这样,模型微调和外部软件更新不再是两个不相干的领域,而是同一个系统的不同持久化通道。这个视角也解释了为什么近中期最常见的改进并不发生在权重里:prompt、playbook、工具封装、检索规则和代码 diff 更便宜、更透明,也更容易回滚。
定义:先把会话状态与能力状态分开
论文把时刻 \(t\) 的 Agent 写成:
自我改进被进一步拆成“执行产生信号”与“更新提交状态”两步:
这里 \(\mathcal{E}\) 产生轨迹、批评、偏好、验证结果或候选 patch;\(\mathcal{U}\) 决定是否写回。一个容易忽视的边界是:论文只要求学习信号由 Agent 的执行诱发,并不要求更新器、奖励、任务或验收规则都由 Agent 自己设计。因此它采用的是宽口径的 self-improvement,而不是“完全自治地重写自己的学习算法”。
形式化里最关键的缺口:更新不等于改进
原定义只要 \(\mathcal{U}\) 产生持久变化就进入“self-improvement”框架,却没有要求 \(\mathcal{A}_{t+1}\) 在任何独立目标上优于 \(\mathcal{A}_t\)。写入一条错误 memory、把 prompt 改坏、训练出 reward-hacking policy,同样满足“自诱发 + 持久提交”。因此这个公式严格说定义的是 self-induced adaptation;只有增加验收谓词,才定义了 improvement。
这里 \(G\) 是独立的 promotion gate,\(\Gamma_t\) 是版本、权限、隐藏测试、安全策略与回滚记录组成的治理状态。把 \(\Gamma\) 单列出来很重要:如果最终验收器也只是 Agent 可写的 \(g_t\) 一部分,Agent 就能通过降低门槛来制造“进步”。可写的运行 scaffold 与不可由同一闭环任意修改的治理根,应当是不同的信任域。
分类地图:先问“改哪里”,再问“信号从哪里来”
| 更新面 | 信号 / 子类 | 典型持久化物 | 主要优势 | 主要失败模式 |
|---|---|---|---|---|
| 模型参数 \(\theta\) | 内生生成示范 | 合成指令、解题轨迹、self-edit 数据进入 SFT / RL | 行为可摊销到后续推理,不必反复塞入上下文 | 模型坍塌、同质化、错误自强化、遗忘 |
| 内生评估反馈 | 自评分、偏好、置信度、一致性、自然语言 critique | 开放任务也能产生训练信号 | 生成器与裁判共享盲点;相关错误被多数票放大 | |
| 外生探索经验 | 真实环境或 world model 中的轨迹、奖励、可执行结果 | 反馈更接近任务后果 | 环境昂贵、奖励稀疏、代理环境失真、reward hacking | |
| Scaffold \(\Sigma\) | Prompt | 标量搜索、文本批评、种群演化、textual gradient | 快、便宜、可读、可回滚 | 模板过拟合、上下文坍塌、评价器依赖 |
| Memory | 经验对象、层级/图结构、读写更新删除策略 | 跨会话积累,可保留罕见恢复路径 | 污染、陈旧、隐私泄露、错误合并、检索噪声 | |
| Tool | 动态路由、迭代修复、自动创建与注册 | 把一次成功变成可执行程序 | 工具膨胀、接口漂移、供应链与权限风险 | |
| Full scaffold | 修改 Agent 源码、控制流、组合与 improver 本身 | 程序 patch、候选 Agent archive、版本谱系 | 评价目标被钻空子;自改范围越大,验收越难 |
这些类别不是互斥模块,而是不同写回目标。同一条成功轨迹可以先变成 memory / tool,再被蒸馏进权重;一次完整 scaffold patch 也会同时改 prompt、工具和路由。论文把 “skill” 定义为可序列化、可复用的更新算子,因此 skill 的身份不由存储位置决定:它可以是权重、提示、记忆、工具或控制逻辑。
文献清单审计:它显示研究重心,但不能当作统计样本
对作者当前公开清单逐行去重后,方法区共有 245 行,另有 1 行 benchmark。这个数字与 X 帖的“239 papers”、正文 526 个唯一引用键和 bibliography 的 715 条记录都不是同一口径。更重要的是,清单本身会持续更新且存在跨类重复、别名和链接错误,因此下面的比例只能描述当前策展列表的结构,不能估计整个领域的真实方法分布或平均效果。
方法条目
74 行参数改进,171 行 scaffold 改进;另有 1 行单列 benchmark。
Scaffold 条目
171 / 245。它说明近期研究活跃,不证明 scaffold 的成功率高于权重更新。
集中于 2025–2026
196 / 245,时间窗口非常新,长期复现、部署寿命和失败数据都不足。
Venue 标为 arXiv
143 / 245;是否经过同行评审、版本成熟度与证据质量不能混为一列。
声称有代码链接
152 / 245,但“有链接”不等于权重、数据、环境和完整复现实验均可用。
重复标题组
按大小写归一后有 19 个重复余量;跨类收录有时合理,但会破坏简单计数。
清单内部暴露出的三类边界问题
| 问题 | 已核验例子 | 为什么会改变结论 |
|---|---|---|
| 瞬时推理被列入持久改进谱系 | Self-Refine 的原论文明确是不训练模型、由同一 LLM 在当前样本上反复反馈和改写;综述正文也称其为 transient output correction,却仍把它列入 prompt improvement 的代表表与清单。 | 如果没有把更新后的 prompt / rule 跨任务保存,变化发生在输出与会话状态 \(X_t\),不满足综述自己对持久 \(p_t\) 的定义。它可以作为前置机制,不应与真正写回混计。 |
| 条目不一定是自改进方法 | 方法列表混入 CodeARC benchmark、world-model survey、Agentic RAG survey,以及侧重记忆架构而不一定展示持续更新闭环的工作。 | 列表更像“相关技术生态”,不是通过同一纳入标准筛出的干预研究;由此不能从条目数推断证据密度。 |
| 去重与链接质量不足 | 245 行只有 226 个大小写无关的唯一标题、223 个规范化唯一论文 URL,1 行缺失论文链接;至少出现 SEDM 指向 EvoPrompt、RoboCat 指向 prompt-engineer 代码、同名 Dynamic Cheatsheet 两个 arXiv ID、空或嵌套错误代码链接等明显问题。 | “239”无法从公开数据稳定复算;自动统计 category、code availability 或年份前,必须先做实体解析与人工抽查。 |
Scaffold 占近七成,更可能由三个因素共同产生:现代 Agent 的可写面扩大;文本与代码更新比训练权重便宜;2025–2026 的论文命名大量采用 self-evolving 叙事。它是研究供给侧信号,不是“scaffold 已被证明更有效”的因果证据。
代表性证据:四条路径都成立,但距离开放式递归改进仍很远
| 方法 | 改了什么 | 作者报告的关键结果 | 结论边界 |
|---|---|---|---|
| SEAL | 模型自己生成 finetuning 数据和更新指令,再用下游表现训练 self-edit policy,最终改 \(\theta\)。 | 在经过筛选的 ARC 子集上,self-edit 成功率 72.5%,基座 self-edit 为 20%,ICL 为 0%,人工 oracle TTT 为 100%;单篇 SQuAD 知识写入为 47.0%,基座为 32.7%。 | 窄证据 ARC 只有 11 个训练任务和 8 个评估任务;更大 SQuAD continued-pretraining 中 GPT-4.1 合成数据仍更强;连续编辑出现遗忘,奖励计算昂贵且依赖参考 QA。 |
| ACE | 不改权重;把上下文当成可增长 playbook,用 Generator–Reflector–Curator 增量写入 \(p/m\)。 | 作者报告 Agent 任务平均 +10.6%、金融任务 +8.6%;AppWorld 相对 GEPA 的离线适配延迟下降 82.3%、rollout 数下降 75.1%。 | 工程证据 增益依赖足够强的 reflector 和任务反馈;更长 playbook 带来检索与维护成本,仍受基础模型能力上限约束。 |
| WebRL | 从失败中生成新任务,用 outcome reward model 与 curriculum RL 更新 Web Agent 权重。 | WebArena-Lite 上 Llama-3.1-8B 从 4.8% 到 42.4%,GLM-4-9B 从 6.1% 到 43.0%。 | 受控环境 评测为 165 个样本;初始轨迹和 reward-function 数据来自人工标注,reward model 训练集扩展到 12,200 条。“self”主要在课程生成,不是从零获得目标与验证器。 |
| DGM | 让 Coding Agent 修改自己的 Python scaffold,保留多样候选 archive,以 benchmark 验收后继版本。 | 作者报告 SWE-bench 从 20.0% 到 50.0%,Polyglot 从 14.2% 到 30.7%。 | 有界自改 一次 SWE-bench 演化约两周、约 22,000 美元;只验证两个 coding benchmark,开放探索算法本身仍固定,系统在沙箱、限时、有限网络和人工监控下运行。 |
这四个样本支持综述的分类:改权重、改上下文、用环境反馈、改完整程序确实是不同工程路径。但它们不支持“系统会自然越改越通用”。现有最强证据仍来自验证器清晰、环境可重置、失败成本可控的领域;一旦目标开放、评价主观或动作不可逆,闭环最缺的不是生成候选,而是可靠的信用分配与准入控制。
再看三个边界样本:相似循环,性质完全不同
| 方法 | 循环发生在哪里 | 是否形成跨任务持久更新 | 更准确的标签 |
|---|---|---|---|
| Self-Refine | 同一 LLM 对当前输出生成 feedback,再迭代改写当前输出。 | 原方法不训练模型,也没有要求把规则写回未来任务;通常没有。 | test-time iterative inference,而非严格的 persistent self-improvement。 |
| Reflexion | 把任务反馈转成语言反思,写入 episodic memory,供后续 trial 使用。 | 在同一任务多次尝试中明确持久;是否跨独立任务、保存多久、何时遗忘取决于 memory 生命周期。 | 介于会话适应与 scaffold 学习之间,必须报告 retention boundary。 |
| OPRO | 把历史候选 prompt 与分数放入 meta-prompt,生成并筛选下一批候选。 | 当最优 prompt 被保存并部署到新样本时成立;搜索轨迹本身仍可丢弃。 | 外部目标函数约束下的离散 prompt search。 |
这组三分法说明“有 feedback loop”远远不够。至少还要问:更新对象是什么、保存到哪个版本、跨过什么边界、由谁验收、失败时是否回滚。同一篇工作甚至会因部署生命周期不同,从普通 test-time compute 变成真正的 scaffold learning。
评测:不要问新版本有多高,先问提升轨迹是否真实
论文最值得直接采纳的是评测框架。对固定的 held-out 分布 \(\mathcal{D}_{\text{eval}}\),第 \(t\) 个版本的能力应写成:
重点不是最终峰值,而是固定预算下的整条曲线。一个可信报告至少需要六列账:
起点与曲线
基座、每次更新后的均值与方差,而不是从多轮里挑最好一次。
迁移
在未参与更新的任务族、时间切片、仓库或环境上验证。
回归
旧能力、尾部失败、安全违规与灾难性遗忘是否恶化。
总预算
token、GPU/API、工具调用、墙钟时间与人类监督分别计价。
机制归因
冻结环境、交换模块、做 component ablation,区分真正更新与采样噪声。
裁判独立
驱动训练的 judge 不应同时担任最终裁判;用异构 rubric、可执行子集或人工抽检校准。
把“候选变好”写成可拒绝的统计门槛
均值上升仍可能来自采样波动、挑选最好 seed 或在同一 judge 上过拟合。更严格的 gate 应同时约束迁移收益、回归、风险与预算,并对不确定性使用置信界:
如果证据不足,正确状态不是“更新失败”,而是“不允许提交”。这能防止系统把探索噪声永久写入自身。对于 judge-based 任务,还应把生成/更新预算、训练 judge 的预算和最终验收预算分账;否则更高分可能只是裁判获得了更多推理资源。
| 要证明的主张 | 最低指标 | 常见伪阳性 |
|---|---|---|
| 这次更新有效 | 隐藏迁移集上的 \(\Delta m\) 及置信区间 | 同一训练任务、同一 judge、只报最好 checkpoint |
| 持续学习而非局部修补 | 整条 \(m_t\) 曲线、旧任务 retention、尾部失败 | 新任务涨分但旧能力持续遗忘 |
| 资源效率提高 | 单位累计预算的面积或斜率 \(\Delta m/\Delta B\) | 用十倍 rollout 换取少量终点增益 |
| 出现递归加速 | 后续学习斜率本身提高,且跨任务、跨 seed 保持 | 一次昂贵搜索找到更好 scaffold |
| 能够安全自治提交 | 独立权限域、隐藏安全集、回滚演练与审计谱系 | Agent 同时改 critic、测试和准入阈值 |
critic 不是被动 benchmark,而是系统的治理基础设施和攻击面。提议更新的 Agent 不能同时拥有修改验收器、降低门槛并批准自己的权限;否则闭环优化的很可能是“更会通过检查”,而不是“更有能力”。
证据边界:为什么它更像 field map,而不是 systematic review
- “239 篇”不是当前材料中可复算的样本量。当前配套清单的方法区有 245 行,另有 1 行 benchmark;按大小写归一后只有 226 个唯一标题、223 个规范化唯一论文 URL。论文源码含 715 条 bibliography entry,正文实际引用 526 个唯一 citation key。差异来自持续更新、跨类重复与错误链接,但论文没有给出 239 到任何公开集合的精确映射。
- 缺少系统综述的检索协议。没有说明数据库、检索式、时间窗、双人筛选、纳入排除标准、质量评级或遗漏风险。因此它能说明“作者如何组织领域”,不能支持“领域方法的总体效果是多少”。
- 形式化只保证持久适应,没有保证提升。更新算子没有要求 held-out 能力增益、回归上限或风险约束;一个持久的坏更新也满足原公式。论文在评测章节补充了轨迹、迁移与安全要求,但没有把这些条件接回“什么才算 improvement”的定义。
- 分类包含规范性判断。例如“权重更新更慢但迁移更广”“scaffold 更快且可回滚”是很好的默认设计启发,不是跨论文统一控制变量后的因果结论。
- 系统边界仍有模糊处。Agent 被写成 \((\theta,\Sigma)\),但环境、critic、数据管线与权限系统被放在上下文或更新器外部。若这些部分也会演化,谁算 Agent、谁有最终写权限会直接改变“自我”的含义。
- 很多案例是自动化改进,不是开放式自我决定。任务分布、奖励函数、测试集、模型 API、沙箱和停止条件大多仍由人类规定;“没有逐步人工介入”不等于“系统自己选择了目标和价值函数”。
不能推出 recursive self-improvement 已经进入失控加速阶段,不能推出 scaffold 更新必然比权重更新安全,也不能把一次 benchmark 上升解释成通用能力复利。现有证据更接近“有界搜索 + 可验证写回”。
独立洞察:自我改进的核心不是 intelligence loop,而是 state migration governance
1. “自我”的可操作定义应落在写权限,而不是生成来源
模型提出一个 prompt diff,并不比工程师提出 diff 更神秘。真正改变系统性质的是它是否能把候选写入未来版本,以及写入前要经过谁的验收。由此可以把自治程度拆成三个独立轴:proposal autonomy(谁提议)、evaluation autonomy(谁判断)、commit autonomy(谁批准持久化)。很多论文只自动化了第一轴,却用“self-improving”描述整个闭环。
2. 最合理的近期架构是“两速学习”,但中间必须有 promotion gate
先在可读、可回滚的 scaffold 层高速探索;只有当某个策略在独立任务、回归集与安全检查上稳定,才把它蒸馏进权重。这与 CPU cache / database compaction 的直觉相似:热状态便于快速修改,冷状态负责压缩和复用。关键不是简单地“memory 最后都进模型”,而是为 promotion 定义证据门槛,并保留那些蒸馏容易丢失的罕见错误恢复轨迹。
3. 自我改进系统的最小可信单位不是 Agent,而是带谱系的 update
静态模型卡不足以描述持续变化的系统。每个更新应携带来源任务、信号类型、适用范围、候选 diff、验证集、成本、回归与安全结果、批准者和回滚点。这样才能回答“为什么变好”“哪里可能退化”“能否把这项能力移植给另一个 Agent”。论文把 skill 视为可序列化 update operator,真正的工程含义正是把能力积累变成可版本化资产。
4. 复利需要测“改进速度的改进”,而不仅是任务分数上升
一次从 20% 到 50% 可能只是高成本搜索找到了更好配置。递归自我改进的更强证据应是:后续每单位预算获得的提升更大、发现新更新所需的样本更少、跨任务 transfer 更强,同时回归与风险不增加。换言之,不仅要测 \(m_t\),还要测在同一预算下的 \(\Delta m/\Delta b\) 是否随版本改善;否则“self-accelerating”仍只是叙事。
5. 一棵 taxonomy tree 不足以描述真正的自改进系统
“改权重 / prompt / memory / tool”只回答了写到哪里,却没有回答更新能否信任。更好的记录单位是一个多轴 change manifest:target(写哪里)、signal(从哪里学)、proposer、verifier、committer、lifetime、scope、reversibility 与 cost。这也解释了清单为何出现大量跨类重复:真实系统本来就是组合式更新,强行塞进单棵树会丢掉治理信息。
6. Skill 不是一段成功文本,而是带适用条件的可部署更新包
综述把 skill 视为可序列化 update operator,这是连接 memory、tool 和权重的好抽象;但“可序列化”仍不足以保证可复用。一个可信 skill 还必须携带输入前置条件、依赖与权限、适用任务分布、测试、版本、失败语义和卸载/回滚方法。否则把某次成功轨迹存入 skill library,只是把未经校准的经验变成更容易传播的风险。
工程落地:一套比“让 Agent 自己学”更具体的协议
- 定义可写面。明确 prompt、memory、tool、workflow、model adapter 哪些可改;权限与最终验收器默认不可被同一闭环修改。
- 把治理根与运行 scaffold 分域。将身份、权限、隐藏测试、准入阈值和回滚账本置于受保护的 \(\Gamma\);Agent 可以提交修改建议,但不能直接改写自己的最终验收条件。
- 把临时状态与持久状态分开。只有跨任务保留且可版本化的内容进入 improvement ledger;会话内反思不冒充能力积累。
- 候选更新在隔离副本运行。先做功能测试、权限测试、成本上限、随机扰动与对抗输入,再进入 canary。
- 训练信号与最终裁判分离。使用隐藏回归集、不同 judge 或可执行 oracle;记录 judge 版本与预算。
- 同时度量 gain、regression 与 cost。禁止只用最优峰值;报告学习曲线、方差、迁移和每单位资源增益。
- 保留 lineage 与一键回滚。每次 commit 都能追溯到经验、diff、验证证据与适用范围,失败更新不能污染后续记忆。
- 为 skill 写部署契约。记录前置条件、依赖、权限、适用域、测试与失效方式;检索相似不等于满足调用条件。
- 达到稳定门槛后再做权重固化。把成熟的 scaffold 经验蒸馏进参数,但重新跑完整安全与遗忘评测。
证据边界与资料索引
主材料为 arXiv v1(2026-07-14,97 页、12 幅图)及作者维护的项目与论文清单;截至 2026-07-22,arXiv 仍只有 v1,官方仓库在初次阅读后的提交没有修改论文正文或方法列表。本文复核了正文、图表、附录、公开 LaTeX 与当前清单,并用 SEAL、ACE、WebRL、DGM、Self-Refine、Reflexion、OPRO 原论文校准参数、上下文、环境、完整程序与“瞬时推理 / 持久更新”的边界。实验数值均为各论文发布方报告,本次未重新训练模型或独立复现实验;清单持续更新,条目计数和链接质量会变化。
- Self-Improvements in Modern Agentic Systems: A Survey(arXiv)
- 作者项目页与分类导航
- 作者维护的论文、源码与版本记录
- DailyPapers / HuggingPapers 发布帖
- SEAL: Self-Adapting Language Models
- ACE: Agentic Context Engineering
- WebRL: Self-Evolving Online Curriculum RL
- Darwin Gödel Machine
- Self-Refine: Iterative Refinement with Self-Feedback
- Reflexion: Language Agents with Verbal Reinforcement Learning
- OPRO: Large Language Models as Optimizers