自主智能体的下一道分水岭,不是更强的单轮推理,而是能不能在长程运行中越用越强——即"自我进化"。2026 年的技术栈已经收敛出三条主线:以 Voyager 为代表的可执行代码技能库、以 DSPy 为代表的编译式提示词优化、以 Reflexion/ExpeL 为代表的经验回放蒸馏。三者的共同底层假设是"经验可沉淀、可检索、可复利"。但实测发现,自我进化的复利曲线并非单调上升:技能库膨胀导致检索污染、跨任务负迁移、以及经验写入覆盖旧能力(即自主体版的"灾难性遗忘"),是比单点能力更危险的塌陷红线。本文横评五套自进化内核,给出复利成立的前提条件与治理工程清单,并对 SWE-bench Verified 从 1.96% 到 80.9% 的曲线归因。
| 维度 | Voyager 技能库 | DSPy 编译优化 | Reflexion 反思 | ExpeL 经验蒸馏 | SE-Agent 轨迹自进化 |
|---|---|---|---|---|---|
| 进化载体 | 可执行 JS 代码技能 | 优化后的指令+少样本 | 语言层 post-mortem | 跨任务抽规则/insight | 轨迹 Revision/Recombination |
| 是否改权重 | 否(外挂库) | 否(重写提示) | 否(外挂记忆) | 否(外挂记忆) | 否(搜索空间扩展) |
| 数据需求 | 自主探索产出 | 带标注的 train 集 | 任务反馈信号 | 多轮成败轨迹 | 轨迹对比对 |
| 灾难性遗忘风险 | 中(库可膨胀) | 低(确定性编译) | 低(只增不改) | 高(规则覆盖) | 中(搜索偏移) |
| 工程复杂度 | 高 | 中 | 低 | 中高 | 高 |
| 最适场景 | 开放世界/具身长程 | 稳定任务管线优化 | 单任务多次试错 | 跨任务泛化 | 代码 Agent 长程求解 |
| 变现天花板 | 中(具身/游戏强) | 高(B 端管线) | 中(训练营好讲) | 中高(知识产品化) | 高(代码生产力) |
Voyager(NVIDIA/Caltech,TMLR 2024)给出的核心洞见是:自主体的复利单位应当是"可验证、可复用、可组合"的可执行代码,而不是自然语言笔记。其循环为"探索 → 自动课程 → 写技能 → 验证 → 入库 → 检索复用"。新技能通过复用旧技能组合而成,形成真正的复利:第 N 个技能的获取成本随库增长而下降。
# Voyager 式技能库的最小复利单元
def craft_wooden_pickaxe(agent):
# 复用已入库的原子技能
agent.invoke_skill("craft_planks", count=3)
agent.invoke_skill("craft_sticks", count=2)
return craft_table.craft("wooden_pickaxe")
# 关键:技能必须先在环境里验证成功才入库,污染源被拦在门外
if env.verify(skill): # 可验证
skill_lib.add(skill, embedding) # 可检索
skill_lib.link_deps(skill, deps) # 可组合——这是复利来源
实测要点:复利成立的硬前提是入库存证机制。Voyager 强制"执行验证通过才写库",从源头消除了幻觉技能污染检索池。一旦放宽这条(很多复刻项目为了演示速度会跳过验证),技能库会在几十轮后退化成"看似有用实则报错的死代码堆",检索 Top-K 召回的全是噪音,复利曲线立刻翻车。变现角度,Voyager 式技能库在具身/游戏/工业控制场景最适合包装成"机器人技能课程"训练营;但在纯文本 SaaS 场景,代码技能库维护成本高于收益。
DSPy(Stanford NLP)走的是完全不同的路:与其手写提示词,不如把它声明化、再用优化器编译。2026 年的默认优化器已是 MIPROv2,辅以 BootstrapFewShot、COPRO、GEPA。其"进化"体现在每次评测后,指令与少样本会被贝叶斯提案重写,保留验证集上得分最高的版本。这本质上是"提示词维度的自我进化",且是确定性可复现的。
import dspy
# 声明签名,不写一字提示
class Rerank(dspy.Signature):
"""Reorder docs by relevance to the query."""
query: str = dspy.InputField()
docs: list = dspy.InputField()
ranked: list = dspy.OutputField()
# 编译:优化器在 train 集上自动进化指令+少样本
optimizer = dspy.MIPROv2(metric=ndcg_at_3, num_threads=8)
compiled = dspy.BootstrapFewShot(...).compile(student, teacher)
# 每轮评测后,best 提示被固化,下一轮在其上叠加——复利
DSPy 的复利是最干净的:没有检索污染、没有遗忘,因为优化器在固定验证集上只取最优解,是单调保优的。代价是它需要带标注的训练集,更适合"任务边界稳定、有评测函数"的 B 端管线(搜索重排、抽取、分类)。变现天花板最高:可直接把客户管线"编译优化"做成按效果付费的服务。实测陷阱:缺乏好 metric 时,MIPROv2 会朝 metric 过拟合,进化出"分数高但实际错"的提示——优化器越强,metric 缺陷的放大倍数越大。
Reflexion(Shinn et al., NeurIPS 2023)的进化单位是自撰反思(verbal post-mortem):任务失败后,智能体用自然语言写出"哪里错了、下次怎么改",存入情景记忆缓冲,下次同任务检索注入。它不需要训练集、不需要改权重,是工程门槛最低的自进化形态。
# Reflexion 的最小循环
for trial in range(max_trials):
trajectory = agent.act(task, reflections=buffer.top_k(task, 3))
score = env.score(trajectory)
if score == PASS: break
# 进化点:把失败翻译成可复用的语言层教训
reflection = llm.reflect(task, trajectory, why_failed=score)
buffer.add(task, reflection) # 只增不改,遗忘风险最低
实测结论:Reflexion 在单任务多次试错场景提升明显(典型 +10~20 个点),但它的复利是有上限的——反思缓冲本质是 in-context 注入,token 预算和检索质量共同封顶。它的优势恰恰也是劣势:因为"只增不改",老反思不会被淘汰,长期运行后缓冲里充斥过时教训,检索 Top-K 命中率随轮数缓慢衰减。训练营友好度最高:概念直观、demo 炫,适合做"让 Agent 自己改错"的入门课。生产中需要给缓冲加 TTL 与去重,否则就是缓慢膨胀的债务。
ExpeL(Zhao et al., 2308.10144)比 Reflexion 多走一步:它不只存反思,而是跨任务蒸馏出抽象 insight。其方法需要"为每个任务构造多次 rollout,形成成功-失败对比对(contrastive trajectory pairs)",从中归纳出普适规则,再用检索在推理时注入。这让它具备跨任务泛化能力,但也引入了自我进化里最危险的塌陷模式。
# ExpeL 的经验蒸馏与注入
# 1) 构造成败对比对 → 2) 抽 insight → 3) 检索注入
insights = llm.extract_insights(success_trajs, failure_trajs) # 跨任务归纳
new_rules = llm.consolidate(existing_rules, insights) # 与旧规则合并
# 危险点:consolidate 若无版本治理,新 insight 会覆盖/矛盾旧规则
agent.inject(retrieve(new_rules, query=task, k=5))
塌陷红线:ExpeL 的 consolidate 步是自主体版灾难性遗忘的高发区。一条来自新领域、新分布的 insight,可能悄无声息地"修正"掉一条在老任务上长期奏效的规则——而系统不会立刻报错,只会在数小时后的某个边角任务上失效。这与"自主 Agent 静默漂移"同源:进化是渐进的、不可逆的、且缺乏回滚锚点。治理手段是给规则库加版本号 + 回归测试集,每次 consolidate 后在历史任务快照上跑一遍,任何旧任务通过率下降即拒绝该次进化。
SE-Agent(JARVIS-Xs)把自进化从"记忆层"挪到"搜索层",通过 Revision(修正)、Recombination(重组)、Refinement(精炼) 三种算子,让推理路径之间交换信息,逃离局部最优。它在 SWE-bench Verified 上拿到 SOTA,是 2026 年代码 Agent 自进化的代表性工作。
# SE-Agent 轨迹级进化的三种算子
Revision : 父轨迹中的错误步骤被另一条轨迹的正确步骤替换
Recombination: 多条轨迹的"有效子序列"被拼接成新候选解
Refinement : 候选解在反馈上做局部梯度式修补
# 本质:用进化算法在轨迹空间里搜索,而非在权重/记忆里累积
SE-Agent 的价值在于:它绕开了遗忘问题——进化发生在单次任务的搜索过程中,不沉淀为全局状态,因此不会污染其他任务。代价是单任务算力成本高(多轨迹 + 重组合),它是用"推理时算力"换"搜索质量",而非用"经验积累"换"长期复利"。这恰好对应 SWE-bench Verified 曲线的一段:从早期单线 Agent 到多轨迹自进化,是 1.96%→80.9% 这堵墙背后最实在的工程杠杆之一。变现:直接对接到代码生产力产品,按 PR 合并率/工时节省计费。
把上面五种内核放在一起实测,自我进化的真正瓶颈不是"能不能学到",而是"学到的会不会反噬"。2026 年的持续学习研究(catastrophic forgetting in AI agents)把它归纳为三条塌陷红线:
flowchart TD
A[任务输入] --> B[检索技能/规则/反思]
B --> C[执行/搜索 SE-Agent算子]
C --> D{验证通过?}
D -->|是| E[入库存证: 验证-去重-版本号]
D -->|否| F[失败轨迹]
F --> G[Reflexion反思 / ExpeL蒸馏]
G --> H{历史回归测试守门}
H -->|通过| I[consolidate合并]
H -->|未通过| J[拒绝进化 保留旧版本]
I --> K[更新库+触发淘汰LRU]
E --> K
K --> B
style D fill:#fef3c7
style H fill:#fecaca
style J fill:#fecaca
把塌陷红线翻译成可落地的工程项,自进化系统才能从"演示一次惊艳"变成"跑一周还稳"。最小清单如下:入库存证(Voyager 式验证门,禁止未验证经验进库)、版本与回滚(ExpeL 式 consolidate 必须带版本号和可回滚快照)、回归守门(每次进化后跑历史任务子集,通过率下降即拒绝)、检索阈值 + 淘汰(相关度门槛 + 频次 LRU,控制库规模)、领域标签 + 干触发(防负迁移,规则只在前提成立时激活)、可观测(记录每次进化的 before/after 指标,复利曲线可视化,出现拐点即告警)。没有这套治理,"自我进化"会迅速退化成"自我退化"。
一句话定盘:自我进化的胜负不在"学得多快",而在"学错时能不能不塌"。复利成立的三条铁律——验证才入库、进化必守门、覆盖可回滚——决定了你的自主智能体是越用越强,还是 14 小时后静默跑崩。
本文由微信公众号「51学通信」原创出品,站长爱卫生(微信:gprshome201101)。关注获取更多 AI 智能体实战拆解。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
