
Agent 完成一次任务,留下的往往不只是答案,还有一条昂贵的探索路径:读了哪些文件,试了哪些工具,在哪里失败,又靠什么检查确认结果。问题是,下一次执行未必能利用这些经验。模型参数没有改变,新的会话也不会天然继承上一轮的判断,已经付出的探索成本很容易再付一次。
EvoMap 研究团队(Infinite Evolution Lab)在论文《Evolver: Turning Agent Exploration into Evolving Capabilities》中,把这个问题落到了一个外部经验系统上。它不训练基础模型,而是把执行中产生的程序性知识整理成策略资产,再送回后续任务的上下文。这里更值得关注的不是"Agent 会不会自动变聪明",而是一个工程问题:怎样把一次性的执行记录,变成有适用条件、能被检索、也能被撤回的行动依据?
1. 探索外置
1.1 记录与策略
我们先区分两种东西。执行记录回答"这次发生了什么",策略回答"遇到什么情况,可以怎样行动"。前者需要保留任务细节、工具输出和时间顺序,后者则要从这些细节中提取可以再次使用的判断。保存全部日志,不等于完成了这一步转换。
例如,一段记录可能包含多次目录扫描、几种失败的调用方式和最终通过的检查。如果下一次把整段记录重新塞给 Agent,它仍要判断哪些步骤必要、哪些只是偶然绕路。经验并没有消失,但整理经验的工作被推迟到了每次检索之后。Evolver 选择把可复用的操作指导提前外置,让策略成为主要复用单位,而不是让完整轨迹直接承担这个职责。
这也解释了它与静态流程包的关系。论文把 Skill 描述为打包后的指令、工作流和资源,把 Gene 用作紧凑的策略表示。两者都可以影响执行,但 Evolver 更关注从历史交互中产生策略,并持续管理这些策略的状态。它不是靠换一个名称,就证明 Gene 在所有任务上优于 Skill;本篇实验的基线仍然保留了 Agent 原生工具和内置 skills。
1.2 外部状态
外置以后,系统可以拆成三个动作:先根据任务和当前经验库选择策略,再由原来的 Agent 执行,最后根据轨迹与反馈更新经验状态。基础模型负责推理和工具使用,经验系统负责保存、选择与维护行动指导。

图 1:经验在执行之外积累,再进入下一轮任务。
这个拆分的价值在于,不必把经验管理绑死在某一种 Agent 上。论文描述了 hooks、MCP 和宿主集成等接入方式,原来的运行框架仍然承担执行职责。不过,"不改参数"不等于"没有额外计算":收集、提取、审核和检索经验都可能产生开销。系统结构与收益核算,需要分开讨论。
2. 策略资产
2.1 Gene 的内容
既然不直接复用整段日志,策略应该保留什么?论文用五类信息描述 Gene:经验摘要、操作步骤、适用条件、任务匹配信号,以及可选的验证计划。
这五类信息各有职责。摘要帮助理解策略意图,步骤提供行动顺序,适用条件说明它在什么情况下值得考虑,匹配信号帮助检索系统找到它,验证计划则提示执行后怎样检查。只保存步骤,容易让一个局部有效的方法被套到不合适的环境;只保存总结,又可能得到一条无法落地的"最佳实践"。
这里有一个重要区别:适用条件是指导,不是运行时强制约束;写了验证计划,也不表示策略已经通过验证。 Gene 进入上下文后,仍由宿主 Agent 理解和应用。资产格式能把需要考虑的问题写清楚,却不能替代执行层的检查。
2.2 内容与状态
Evolver 没有让 Gene 承担全部信息。Capsule 把策略关联到具体执行案例,为复用提供上下文;AntiGene 保存应当避免的操作或做法;Event 记录资产操作,另外的来源与审核记录则保存资产从哪里来、当前是否可信以及是否获准使用。

图 2:策略内容、执行案例与使用资格分别保存。
这种分离有一个很实际的理由:策略内容可能需要长期保留,但它的使用资格会变化。论文描述了基于内容寻址、仅追加的资产存储,审核和来源状态放在独立记录中。拒绝一条策略,或者撤销对其来源的信任,不必覆盖原来的内容;系统可以保留它的身份,同时改变后续能否使用它。
于是,"记住了什么"和"现在允许相信什么"不再是同一个问题。这为追踪和撤回留下了空间,也避免把经验库理解成只增不减的提示词集合。具体路径是否真的执行这些状态检查,还要看接入方式,不能仅凭存储结构就推断所有入口都安全一致。
3. 选择与更新
3.1 候选入库
策略的来源不只一种。启用会话摄取后,适配器可以收集任务上下文、工具交互、执行错误和可得的结果,再整理成有边界的经验材料。论文提到启发式敏感信息脱敏,但这不是对所有私人信息的完整识别保证。
在提取阶段,默认自动起草路径从 assistant 的表达中抽取简短程序性提示,并把它们标为未经证明。可选的 LLM 蒸馏进一步生成结构化策略、案例和负向指导。自动起草或模型蒸馏的候选会进入隔离审核;某些显式提交路径则可以直接持久化资产。
为什么要把"生成了策略"与"批准使用策略"分开?因为执行成功,不代表从那次执行中提取出的每条建议都有效;执行失败,也不代表没有值得保留的避坑经验。提取器提出的是候选知识,不能顺手把候选升级为可靠能力。
3.2 按需复用
入库以后,问题转向选择。经验太少,Agent 仍要重复探索;经验太多,又可能把不相关的建议带入上下文。Evolver 提供了不同检索路径:会话启动 hook 提供有数量边界的本地合格 Gene,可选的 prompt-time recall 根据任务描述匹配信号,MCP 支持按需调用,自主执行另有结合相关性、质量和历史复用反馈的启发式选择机制。

图 3:候选经验经过审核,并由后续反馈影响使用状态。
这些入口并不是一套完全相同的排序器。它们的上下文预算、资格检查和选择策略存在差异,外部资产直接检索与导入本地后再使用,也可能走不同审核路径。EvoMap 的网络接口扩展了经验来源,但"来自网络"不自动等于"已获信任":导入资产可以先标记为不可信,再显式提升;部分直接检索接口并不施加同样的限制。
反馈则用来改变经验状态。依据执行路径,系统可以收集任务结果、验证结果和复用信号;可选的试用机制根据记录的成功与失败支持晋升,自主执行还会考虑历史复用反馈和失败限制。这里的"演化",首先是外部策略及其资格状态的演化,不是每使用一次,模型能力就必然提高一次。
到这里,整体设计已经清楚:让经验有内容、有案例、有来源,也有进入和退出后续执行的路径。接下来需要回答的,才是这些经验在什么实验条件下产生了收益。
3.3 系统闭环
整体来看,系统存在两条相互连接的路径:一条让任务探索产生经验,另一条让经验回到后续执行。Gene、Capsule、检索与审核不再是几个分散的名词,而是这两条路径之间的连接点。

图 4:Evolver 将任务探索、经验资产与后续执行连接成反馈闭环。
任务先进入宿主 Agent,由它进行工具调用、重试和结果验证;经验提取模块再从这些交互中起草策略、抽取信号,或进行可选的模型蒸馏。得到的知识进入持久化资产区,由 Gene 保存行动指导、Capsule 保留执行案例,事件与来源、审核记录提供管理依据。检索与注入模块把适用经验送回宿主,对应图中上方返回 Agent 的反馈路径:过去的探索由此影响下一次行动,而不是替换原来的执行框架。
执行结果与复用信号进入经验管理,支持批准、拒绝、晋升或退出后续使用。EvoMap 接口把这个本地回路连接到外部经验网络,来源追踪、审批策略、执行防护和数据、网络边界构建了系统的信任与安全层。
因此,Evolver 的整体设计不是在任务末尾追加一份总结,而是把"探索产生经验"和"经验指导执行"连接起来,同时保留更新使用资格的反馈路径。这个闭环提供了经验持续积累的系统结构。
4. 复用实验
4.1 三段协议
论文使用 Evolver v2.0.33,在 Claude Code 与 Codex 两种运行框架上,分别搭配 deepseek-v4.1-flash 和 gpt-5.6-sol。评估覆盖 Terminal-Bench 2.1、SWE-bench Multilingual、SWE-rebench 和 GAIA,分别涉及终端工程、软件问题修复与多步信息查找推理。两种框架、两种模型、四个基准形成 16 个配置,每个配置保留 20 个配对任务,共 320 对观测。
不过,理解这些数字之前,要先看 Baseline--Extraction--Gene,也就是 B--E--G 协议:
-
B,基线执行:
使用原生工具和内置 skills 完成任务,不注入额外 Gene。
-
E,经验提取:
从有效基线轨迹中蒸馏策略,成功与失败的轨迹都可以参与;经验池按评估批次、基准、框架和模型隔离,并在增强执行前冻结候选资产。
-
G,增强执行:
恢复任务环境,在新会话中执行原任务,并注入选中的 Gene;优先使用来自同一道任务的经验,其次使用隔离池内其他匹配候选,注入预算为 12,000 字节。

图 5:增强执行优先使用同一道任务的基线经验。
B 和 G 保持相同的基础模型与框架配置,并使用对应基准的原生评分器。环境恢复和新会话减少了直接继承上次执行现场的影响,但策略中仍然可以包含同任务经验。因此,这个实验测的是有历史经验以后,重做任务的效果,不是对从未见过的新任务的泛化,也不是长期在线演化的验证。
样本选择还有第二个边界。研究先按原始顺序优先取每个基准的前 20 个任务,对异常输出、超时或执行故障导致的空响应顺延替换,各配置使用同一组 20 个任务;最终分析保留有效结果和完整 token 记录,排除被超时或 token 限制中断的执行。论文同时明确,最终任务选择还考虑了观察到的结果改善和 token 使用情况。它是经过筛选的诊断集,而不是完整基准的随机样本,不能把其中的平均收益直接当成部署后的普遍预期。
4.2 成功与差异
在这组诊断样本中,成功率从 83.13% 提升到 87.50%。按 320 对任务换算,就是基线成功 266 次,增强执行成功 280 次,净增 14 次;按运行框架聚合,Claude Code 从 85.00% 到 87.50%,Codex 从 81.25% 到 87.50%。

图 6:成功率收益随运行框架、模型和任务类型变化。
Terminal-Bench 2.1 的聚合变化最大,从 64/80 到 71/80,增加 8.75 个百分点。SWE-rebench 与 GAIA 分别增加 5.00 和 3.75 个百分点;SWE-bench Multilingual 则在两种条件下都保持 96.25%。这说明经验复用的效果与任务、模型和宿主交互有关,而不是给所有执行统一加一个能力增量。
不过,成功率不变也不等于经验没有价值。若原来就能做对,新的问题是:是否还需要走同样长的探索路径?
5. 执行成本
5.1 保持成功
论文把资源变化单独拿出来分析。在全部 320 对任务上,平均记录的任务执行 token 从 1,641.1K 降到 1,243.3K,按总用量计算下降 24.24%;更有针对性的比较,是两种条件下都成功的 265 对任务。这一子集的平均 token 从 1,278.2K 降到 1,053.6K,下降 17.57%。它把"这次没有完成,所以少花了一些 token"与"任务仍然做对,但执行消耗下降"区分开来,支持经验复用具有执行效率价值。

图 7:两轮都成功的任务中,记录的执行 token 仍然减少。
如果把一份经验用于很多后续任务,提取和维护的成本可能被摊薄;如果只使用一次,新增开销也可能抵消执行节省。
5.2 案例与落点
Terminal-Bench 2.1 的数据集 token 计数任务,要求用指定 tokenizer 处理数据子集,并输出整数结果。Claude Code 搭配 GPT 的两轮执行都成功,注入经验以后,token 消耗下降 86.5%,模型调用从 112 次降到 17 次。
另一个是 RxJava 的 ObservableSwitchMap 并发空指针异常修复。Codex 搭配 DeepSeek 的两轮执行都通过基准评估,token 消耗下降 58.2%,模型调用从 86 次降到 52 次。

图 8:两个成功案例在经验复用后减少了 token 与模型调用。
回到开头的问题,Evolver 给出的不是一个自动变强的许诺,而是一种经验组织方式:把执行日志中的行动知识提取出来,用 Gene 保存策略,用 Capsule 保留案例,把来源、审核和使用资格与内容分开,再通过检索回到现有 Agent 的上下文。
它已经在选定的同任务经验复用实验中展示了成功率与执行效率收益。下一步真正影响工程判断的,是这套资产能否迁移到未见任务、不同接入路径能否一致执行资格检查,以及把提取和维护计入以后,长期复用是否仍有净收益。让探索留下策略,是第一步;让留下来的策略持续值得使用,才是经验系统需要长期完成的工作。
参考资料
-
Evolver: Turning Agent Exploration into Evolving Capabilities:https://arxiv.org/abs/2611.07595
-
EvoMap/evolver(GitHub):https://github.com/EvoMap/evolver