标题指向 LSTM 之父团队的最新综述,主题是 agent 自我进化的技术路径。Reader 只抓到 83 字,需回公众号读全文并找到原论文。
定义一下,什么才是 agent 的“自我进化”





context:全文的地基。论文不从「模型变强」出发,而从系统出发:只有当系统依据自身执行产生的轨迹、评价或验证结果,持久修改了 θ 或 Σ,并让下一次任务从不同起点出发,才构成真正的 self-improvement。这条定义把此前彼此混用的 self-reflection、self-play、agentic RL、self-evolving agent 等术语放进同一个坐标系。
费曼一下:判断一个 agent 是否在自我改进,不看它这次做得多聪明,看它下次开工时的起点有没有变。起点没变,再精彩的临场发挥也只是发挥。
context:论文把基础模型 Agent 表示为参数 θ 与脚手架 Σ 两部分。θ 是基础模型参数,Σ 是围绕模型运行的一切:Prompt、Memory、Tools,以及路由、调度和安全约束等控制逻辑。全文的两条改进路线、评测口径和安全边界都建立在这一分解之上。
费曼一下:把 agent 想成一个人加一套工作台。θ 是这个人脑子里的东西,Σ 是他桌上的清单、笔记本、工具箱和工作流程。想让他变强,你要么改造他的脑子,要么改造他的工作台。
context:Σ 在论文里不是配角,而是与参数并列的一等改进对象。它包含 Prompt、Memory、Tools 三类组件,外加路由、调度、安全约束等控制逻辑;Scaffolding Improvement 路线的全部动作都发生在这里。
费曼一下:脚手架就是模型之外、但决定模型怎么干活的那一整圈东西。它不聪明,但它决定聪明用在哪、用几次、出错了怎么办。
context:这是论文最锋利的一刀。上下文中的临时计划、对话历史和一次性反思只属于运行时状态;只有落到 θ 或 Σ 上的修改才是持久更新。由此 self-reflection 和 self-correction 本身不必然等于自我改进,而一条写入长期记忆的规则、一个修好后持续复用的工具,即便权重未动也已经改变了未来行为。
费曼一下:临场想通了一件事,和把它记进笔记本,是两回事。前者随会话结束而消失,后者会一直影响你之后的每一次工作。
context:论文解释为什么自我改进在基础模型时代才变得可操作。反馈控制、学习如何学习、自指程序、Gödel Machine、元学习等思想已延续数十年,真正的新变量是自然语言成为统一的修改介质:错误可以写成批评,经验可以压缩为记忆,工具和工作流可以直接生成与重写。
费曼一下:以前改一个系统,得改代码或调权重,人看不懂也不好查。现在改动本身就是一段话——写得出,读得懂,也就能审、能改、能回退。
context:第一条路线。Agent 自己生成训练示例、评价信号,或从真实环境与世界模型中获得探索经验,再通过 SFT、偏好优化或强化学习写回参数,代表工作包括 Self-Instruct、Constitutional AI、WebRL。更新慢、成本高、不易回滚,但一旦成功,能力可以跨任务共享;风险是把自身错误训练进权重,造成偏差放大、模型坍塌或灾难性遗忘。
费曼一下:把学到的东西刻进脑子。刻进去就跟着你走,但刻错了很难磨掉,所以下刀之前得先验证内容是对的。
context:第二条路线。模型参数保持不变,系统改写 Prompt,整理和淘汰 Memory,选择、修复或创建 Tools,甚至重构规划器、路由器和整套 Agent 代码;TextGrad、Mem0、Voyager、Gödel Agent、Darwin Gödel Machine 都属于这条路线。因为更轻量、更透明、更容易验证和撤销,它是当前工程实践中最活跃的方向。
费曼一下:不动脑子,改工作台。换一份更好的清单、修好一把趁手的工具、删掉过期的便签——成本低、看得见、随时能撤回去。
context:论文对 skill 的处理尤其值得注意:skill 不是 Prompt、Memory、Tool 之外的第五个组件,而是一种可序列化、可复用的更新。同一个技能可以存成工具及其调用约定,可以是一条工作流或记忆,也可以被固化进权重或控制逻辑——skill 描述的是「保留下来的能力单元」,而不是它被存在哪里。
费曼一下:技能不是一个抽屉,而是一块可以塞进任意抽屉的砖。重要的不是它放在哪,而是它能不能被原样取出来再用一次。
context:论文据此把技能分成两类。对象级 skill 用于完成外部任务,例如反复调用一段「收集资源」流程;元级 skill 直接作用于 Agent 自身,例如重写 Prompt、整理 Memory、创建工具或触发参数更新。后者一旦还能改进「如何改进自己」,就触及 RSI 最核心的自指结构。
费曼一下:一类技能是把活干好,另一类技能是把「怎么干活」改好。第二类叠加起来会指向一个奇怪的问题:改进自己的能力本身,能不能被改进。
context:论文在自指结构处主动降温:今天多数所谓 RSI,仍是受目标函数、测试集、沙箱和权限边界约束的「有限自我修改」,距离不受约束的智能爆炸相去甚远。研究重点不是科幻式失控,而是让更新可测量、可归因、可回滚。
费曼一下:会改自己不等于会失控。今天的 agent 改自己,就像员工在权限范围内改流程——改什么、改到哪、谁批准,全都被框住了。
context:论文的核心设计原则,也是两条路线的合流方式。反馈嘈杂、任务变化快时,优先改 Prompt、Memory、Tools 和控制逻辑,因为这些变化透明、便宜、可回滚;只有当一种策略经过充分验证、证明能跨任务迁移,再蒸馏或微调进权重,形成「快速适应—慢速固化」的双时间尺度。
费曼一下:先用铅笔在草稿纸上试,试通了再用墨水抄进正本。谁都不该拿墨水做实验。
context:自我改进 Agent 的研究对象不是一个静态分数,而是一条更新轨迹。可信实验至少要回答:固定预算下每轮提高多少、能否迁移到未见任务、旧问题是否再次失败、消耗了多少工具调用与人工监督、安全风险是否累积。不只看 Agent 达到多高,还要看它以多大代价、沿怎样的轨迹到达。
费曼一下:评价一个会长个子的人,只量今天的身高没用。得看他长得多快、有没有反复缩水、吃了多少东西才长这么高。
context:论文区分可执行指标与 Judge-based 评测,并给出一条关键防线:如果同一个模型既提出改进又负责打分,Agent 可能只是越来越会讨好「裁判」。因此生成者与评估者应分离,并用独立 Judge、隐藏测试和可验证子集校准。它与安全章节里「提出更新与批准更新不应由同一闭环控制」是同一条原则的两次出现。
费曼一下:自己出题自己打分,分数一定会越来越好看,但本事不一定见长。想知道真实水平,考卷得别人出。
context:安全章节的核心洞察。当 Agent 能够修改 Memory、Tools 乃至自身代码时,安全对象本身也在变化:一次 Prompt Injection 可能不再只是临时干扰,而会被写入记忆或工具逻辑,成为持久漏洞。对策是把 Critic 视为受治理的基础设施,每次修改都经过功能、权限和安全检查;在 Full Scaffolding 与 RSI 场景中,Agent 应被当作受保护环境中的「不可信程序」,所有更新都需经过分层门控。
费曼一下:以前被骗一次,说完就忘;现在被骗一次,会被写进笔记本,以后每次都照着错的做。所以能写进笔记本的内容,必须有人把关。
graph TD
C1["自我改进的系统级定义"]
C2["Agent 二元分解 θ 与 Σ"]
C3["脚手架 Σ"]
C4["运行时状态与持久更新的边界"]
C5["自然语言作为统一修改介质"]
C6["写进模型 FM Improvement"]
C7["写进系统 Scaffolding Improvement"]
C8["skill 是可复用的更新"]
C9["对象级 skill 与元级 skill"]
C10["有限自我修改"]
C11["快环探索慢环固化"]
C12["更新轨迹式评测"]
C13["生成者与评估者分离"]
C14["持久漏洞与分层门控"]
C2 -->|支撑| C1
C3 -->|层级| C2
C4 -->|界定| C1
C5 -->|因果| C1
C1 -->|层级| C6
C1 -->|层级| C7
C2 -->|支撑| C6
C3 -->|支撑| C7
C6 ---|张力| C7
C8 -->|支撑| C1
C9 -->|层级| C8
C9 -->|演化| C10
C6 -->|支撑| C11
C7 -->|支撑| C11
C1 -->|支撑| C12
C12 -->|支撑| C13
C7 -->|因果| C14
C10 -->|因果| C14
整张网络只有一个圆心:自我改进的系统级定义。全文所有概念要么是它的构件,要么是它推出的结果,要么是维持它成立所需的约束。
构件层:θ 与 Σ 的二元分解是定义的前置条件——没有把 Agent 拆成参数与脚手架,就无法说清「持久修改了什么」。脚手架 Σ 是这个分解中被长期低估的一半,它把 Prompt、Memory、Tools 与控制逻辑抬升为与权重并列的一等改进对象。运行时状态与持久更新的边界则从反面界定定义:它划掉了自我反思、临时计划、对话历史这些看似在进步、实则不留痕的东西。自然语言作为统一的修改介质是外部条件,它解释了为什么这套定义在今天才具备工程可操作性——修改从权重搜索变成了可读、可审、可回退的文字。
推论层:定义一旦成立,改进的落点就只剩两处,于是分出写进模型与写进系统两条路线。二者构成张力而非对立:前者慢、贵、难回滚但可跨任务共享,后者轻、透明、可撤销但更零散。张力的解法就是快环探索、慢环固化——两条路线各自承担一个时间尺度,脚手架负责试错,参数负责沉淀。skill 概念横跨两条路线:它被定义为「可复用的更新」而非某个组件,正因为一个技能可以落在工具、记忆、工作流或权重的任何一处。对象级与元级的划分是 skill 内部的层级,而元级 skill 沿自指方向演化就抵达 RSI,论文随即用「有限自我修改」为其设限。
约束层:定义要求更新「可验证」,评测就必须从静态分数转向更新轨迹;而更新轨迹式评测若不做生成者与评估者分离,就会退化成自我讨好,验证性随即失效。同一条原则在安全章节以另一种形式复现:提出更新与批准更新不应由同一闭环控制。安全约束的紧迫性来自脚手架路线本身——正因为记忆与工具可被持久改写,一次 Prompt Injection 才会从临时干扰变成持久漏洞;而有限自我修改的边界之所以必须被守住,靠的正是分层门控这类工程手段。
因此全文的论证闭环是:定义划出判据 → 判据分出两条路线 → 两条路线的差异催生双时间尺度设计 → 双时间尺度要求轨迹式评测 → 评测要求裁判独立 → 裁判独立与门控共同守住安全边界,反过来保证「持久修改」这件事值得被称为改进。
「自我进化」这个词最麻烦的地方,在于它听上去像一种状态,而不是一个可以被验证的事件。一个 agent 在一次任务里反省了三遍、改对了答案,看起来非常会自我改进;但任务结束、上下文清空,它和一小时前那个 agent 一模一样。分水岭不在于它有没有反省,而在于反省有没有在系统里留下痕迹。
把 agent 拆成两块,判据就清楚了:一块是模型参数 θ,一块是围着模型跑的那圈脚手架 Σ——prompt、memory、tools,加上路由、调度和安全约束。只有当系统依据自身执行产生的轨迹、评价或验证结果,持久修改了 θ 或 Σ,并让下一次任务从不同起点出发,才构成真正的自我改进。上下文里的临时计划、对话历史和一次性反思,都只属于运行时状态。
这条线切下去的结果有点反直觉。self-reflection 和 self-correction 本身不必然等于自我改进——「再想一遍」能提高当前答案,却未必留下任何跨任务能力。反过来,一条经过验证并写入长期记忆的规则、一个被修复后持续复用的工具,哪怕一个权重都没动,也已经改变了 agent 未来的行为。能力增长不再等同于训练,它也可以发生在模型之外。
顺着这条线还能推出一个更实用的判断。写进参数的更新慢、贵、难回滚,出错时还会把自身的错误重新训练进权重;写进脚手架的更新轻、透明、可撤销。所以合理的做法不是二选一,而是让脚手架承担快速、局部、可逆的探索,等一种策略反复验证有效、证明能跨任务迁移,再蒸馏进参数——快环探索,慢环固化。
同样的道理决定了该怎么评测。研究对象不是一个静态分数,而是一条更新轨迹:固定预算下每轮提高多少,能否迁移到未见任务,旧问题是否再次失败,消耗了多少工具调用与人工监督,安全风险是否累积。这里藏着一个容易被忽略的陷阱:如果同一个模型既提出改进又负责打分,agent 可能只是越来越会讨好裁判。生成者和评估者必须分开——这也是为什么当 agent 能改自己的记忆、工具乃至代码时,提出更新和批准更新不该由同一个闭环控制:一次 prompt injection 就不再是临时干扰,而会被写进记忆,成为持久漏洞。
所以比「会进化」更值得追求的,是知道该改什么、为什么改,以及什么时候不应该改。