论文链接:
- 【A】Evolving Procedural Memory from User Traffic for Agentic Graphic Design(EVOLVE):arXiv:2609.22086
- 【B】GraphSkillEvo: Evolutionary Optimization of Graph-Structured Agent Skills:arXiv:2609.21749 代码仓库:GraphSkillEvo(B 文开源;A 文为企业内部系统未开源) 发表时间:2026年9月(两篇均 2026-09-18 提交 v1) 机构:
- A:Adobe(企业)+ Brown University(高校)🌟企业+高校联合,真实生产场景
- B:City University of Hong Kong(港城大)+ National University of Singapore(NUS)+ Southern University of Science and Technology(南科大)纯高校 3 校合作 领域标签:cs.AI / cs.LG,Agent 技能优化与自进化(Harness 研究脉络)
两篇论文同年同月挂在 arXiv 上,主题撞车得很有意思:它们都在回答同一个问题——“Agent 的技能(Skill)能不能像生物体一样,从经验里自己越变越好?” 但给出的答案走向两个互补的方向:A 文关心"技能库怎么在真实噪声流量里安全地长大",B 文关心"单个技能长什么样、用什么算法把它优化到最好"。读完会发现,它们其实是同一枚硬币的两面。
下面先建立共用背景,再各自定位、定义问题、讲解法、看评估,最后回到共同的根源与灵感。
一、论文背景(共用)
1.1 Skill 是什么:给 Agent 的"岗位操作手册"
现代 Agent 通常由一个 LLM(大脑)+ 一堆工具(手)组成。LLM 负责思考,工具负责干活(查数据库、跑 Python、调 Photoshop)。但 LLM 再聪明,遇到"做一张电商 Banner 图"这种长流程任务,也容易走弯路、漏步骤。
**Skill(技能)**就是塞给 LLM 的一段自然语言"操作手册",告诉它:这类任务一般怎么拆、先做什么后做什么、有哪些坑要注意、用哪些工具。类比一下:
- Skill ≈ 老员工留给新人的"标准作业流程(SOP)";
- 没有 Skill 的 Agent ≈ 每次都从零摸索的实习生;
- 技能库(Skill Bank)≈ 公司共享的知识库,遇到对应任务就检索出来喂给模型。
业界把这种"把知识放在模型外面的文本里、随用随取"的做法,叫做 SKILL.md 范式——一个 Markdown 文件就是一个技能,名字致敬 Claude Skills / 代码仓库里的 SKILL.md 约定。
1.2 技能库 vs 参数训练:为什么不改权重
传统机器学习要变强,就微调模型权重(fine-tuning)。但今天的生产级 Agent 大多跑在外部托管的闭源前沿模型(GPT、Claude)上,你改不了它的权重,也不想为每次变化重训一个 200B 模型。
于是两篇论文共享一个核心前提:把"学习"的对象从模型参数,挪到模型身边的自然语言资产(技能库 / 单个技能)上。这带来三个诱人性质:
- 可解释、可编辑:技能是纯文本,人能读、能改、能审计;
- 零权重更新:冻结模型,省算力、不漂移、不破坏已有能力;
- 跨模型可移植:同一份技能换个 LLM 还能用(B 文专门验证了这点)。
一句话背景总结:Agent 技能 = 放在模型外面的"操作手册资产";两篇论文都在研究"这份资产怎么从经验里自动进化",只是 A 管"库的持续增长",B 管"单个技能的优化质量"。
二、论文定位和关联工作
2.1 研究谱系:从"试错反思"到"技能进化"
Agent 从经验里变强,经典路线如下:
| 谱系 | 代表作 | 核心思想 | 与本二文的差异 |
|---|---|---|---|
| 反思/自我批评 | Reflexion(arXiv:2303.11366) | 让 Agent 把失败写成"口头反思"塞回上下文,下一轮避免再犯 | 只在单轮/单轨迹内反思,没有把反思沉淀成持久、可复用的技能库 |
| 经验抽象 | ExpeL(arXiv:2308.10144) | 从多条轨迹里提炼"抽象经验教训"写入记忆 | 提炼出的多是通用原则,缺少 A 文的"覆盖缺口聚类"与 B 文的"图结构组件" |
| 技能发现 | Voyager(arXiv:2305.16291) | Minecraft 里自动课程+自动技能库,技能可复用 | Voyager 技能偏"动作脚本",本二文技能是高层自然语言程序且带准入门控 |
| 安全策略改进 | Safe Policy Improvement / SPIBB(Laroche et al., 2019;Thomas et al., 2015) | 只在"不比基线差"的约束下采纳策略更新 | 直接启发 A 文的 Matched Replay Gate(∃won ∧ ∄lost) |
| 技能优化 | SkillOpt(Yang et al., 2026a) | 用 rollout 反思→打补丁→验证门控迭代优化单技能 | B 文的直接 baseline;它是无结构文本技能 + 单候选自我精炼 |
| 提示/资产优化 | GEPA / DSPy 谱系 | 用评估反馈做"反思式变异"优化 prompt/程序 | 与 B 文的变异算子一脉相承,但 B 加了种群+交叉做更广探索 |
2.2 两篇论文各自的位置
| 维度 | A:EVOLVE | B:GraphSkillEvo |
|---|---|---|
| 进化对象 | 整个技能库(76→139 个 SKILL.md) | 单个技能的结构与内容 |
| 经验来源 | 真实产品用户流量(噪声、不可验证反馈) | 训练集轨迹(有可靠评分函数 R) |
| 表示形式 | 非结构化自然语言 SKILL.md | 图结构:全局指导 h_s + 有向图 g_s |
| 优化算法 | 两轴启发式(Widening/Deepening)+ 保守准入门 | 种群进化(N=4,T=5 代)+ 4 个变异/交叉算子 |
| 安全机制 | Matched Replay Gate(防回归) | 验证集 fitness 精英选择 + 图校验器 |
| 典型增益 | 执行成功率 72.7%→99.3% | 较 SkillOpt +1.76~+4.01pp,token 省 24~27% |
定位结论:A 是"生产级、噪声环境下的技能库持续适应",B 是"受控评测下的技能表示与优化算法"。二者正交——B 优化出的好技能,正可以放进 A 的库里被持续演化。
三、问题定义
3.1 A 文:噪声反馈下的安全技能进化
具体问题:一个冻结模型控制 230+ 工具的图形设计 Agent,每天从真实用户拿到成百上千条 brief(设计需求)。反馈是噪声且不可验证的——设计没有"成功 oracle",评分器(VLM Grader)对同一张图的分值会漂移,且一条任务失败很难归因到"哪一步、哪个技能"错了。
抽象问题:在"反馈不可信、上下文会漂移、改一个技能可能救了一个请求却搞砸另一个"的条件下,如何只采纳那些确实无损或有益的技能改动?
形式化:给定技能库 S、评分函数 R(有偏且漂移)、冻结上下文集合 C,候选改动 Δ 被采纳当且仅当
∃ prompt 在重放中胜出 ∧ ∄ prompt 在重放中落败(即式 (1))。
精妙之处在于:它根本不用绝对分数,只用"同一上下文下的 pairwise 胜负",把"评分漂移"这个不可控变量消掉了。
3.2 B 文:技能表示空间的结构化
具体问题:现有技能优化把技能当"一段无结构自然语言"来写。结果两难:① 写长了像冗长 checklist,小模型看不懂该走哪步;② 搜索空间爆炸——同一工作流有无数种文本写法,优化器在"文字游戏"里空转。
抽象问题:把技能优化重写成一个有约束的搜索问题——
max_s J_D(s), s = ⟨h_s, g_s⟩, g_s = (V_s, E_s)
其中 h_s 是全局指导,g_s 是有向图(节点=自包含执行步骤,边=条件化转移)。目标不变(让 Agent 在任务集 D 上得分最高),但搜索空间被图结构显式压缩、去冗余。这把"优化一段任意文本"变成"在结构化组件空间里重组",类比:把"随便写散文"变成"在乐高零件库里拼装"。
四、问题解法
4.1 A 文三机制:Widening / Deepening / Replay Gate
A 文的循环只有 SKILL.md 文件会变,围绕四个角色:Prompt(出题)、Solver(Agent 执行)、Grader(多模态打分+说清为什么失败)、Reflector(把失败改成 SKILL.md 编辑)。两个轴提出改动,一个门决定谁能上线。
(1) Widening(拓库:发现没覆盖的子任务)
- 每轮把"没检索到任何技能"或"技能背了失败锅"的子任务抽出来,按规范标签累计进"覆盖缺口池";
- 某标签累计出现 k_min = 3 次,冻结 LLM 把这批案例蒸馏成一个候选新技能;
- 类比:客服把"反复被问到却没标准答案"的问题,攒够 3 次就写成一篇新 SOP。
(2) Deepening(深化:把已有技能捶硬)
- 非对称设计——选是便宜宽松的启发式,准入才是严格裁判;
- 一条轨迹若得分低于阈值(τ=0.6)就记它检索过的每个技能一次"失败";某技能失败计数达 m=2(默认,优先处理失败最多的)就送去修订;
- Reflector 拿到"失败理由 + 同一技能成功调用的工具序列/中间结果",做成功↔失败对比式改写——不是只看失败文本拍脑袋,而是对着"这次为啥成、那次为啥败"的具体分歧来改;
- 同技能反复改不过门,则升级为整篇重写;仍失败可触发"探索循环"判定该技能是更新、删除还是保留。
(3) Matched Replay Gate(匹配重放门)——类比"灰度发布 + 回滚" 这是全文最巧的设计。它解决两个混淆源:① VLM 绝对分会漂移;② 结果好坏不只看技能(素材检索等上游状态也影响)。
做法:
- 冻结上下文——对每个相关 prompt 造几个上下文(不同素材/上游状态),同一个上下文在同一批里被双臂重放:候选 vs 在位(改写时)或候选 vs 无技能(新技能时);
- 顺序随机化做 pairwise 判断,所以"同一上下文里唯一在变的只有技能条件";
- 一个 prompt 要"赢"必须在其多个上下文里多数胜;
- 改动上线条件:至少赢了一个 prompt,且一个都没输(∃won ∧ ∄lost)。
类比:像互联网公司的"灰度发布"——新版本先对小部分固定用户放量, pairwise 对比新旧;只要没在任何一处在指标上回退(不回归),且至少一处变好,才全量推。它用"冻结上下文的重放对比"替代了"看绝对分数",等于把不可信的评分器变成了可信的"差分裁判"。
4.2 B 文:图表示 + 四算子进化
(1) 图结构技能 s = ⟨h_s, g_s⟩
h_s全局指导:任务描述、通用原则、跨步共享模板;V_s节点集:每个节点是一个自包含执行步骤(如"解析目标"“检索证据"“验证答案”),带自己的指令/规则/约束;E_s边集:由若干 workflow 定义(“Use When… → 步骤序列”),不同 workflow 可共享节点但走不同路径(条件化执行)。- 三个好处:低冗余(共享指令写一次)、显式工作流引导(小模型知道现在该走哪步)、更紧凑的搜索空间。
(2) 种群进化框架——类比"遗传算法的基因重组” 固定 N=4 个候选技能,跑 T=5 代:
- 初始化:初始技能 + LLM 造的多样化技能,逐个在验证集 D_val 上算 fitness;
- 训练集执行:每代从 D_train 抽 B=15 条,每个技能执行并保留最多 K=5 条失败轨迹作反思素材;
- 生成新技能:round-robin 选 4 个算子之一,按 fitness 排名概率选父代(排名越靠前越可能被选),LLM 生成新技能;
- 精英选择:合并父子代,保留 fitness 最高的 N 个进下一代。
四个算子(类比基因操作):
| 算子 | 类比 | 干什么 |
|---|---|---|
| 全局指导变异 | 改"公司总章程" | 基于失败轨迹修订 h_s,保留图结构 |
| 图结构变异 | 改"流程图节点/连线" | 精炼节点指令、增删节点、调路径 |
| 全局指导交叉 | 两个公司合并章程 | 重组两份技能的 h_s,保留一方图结构 |
| 图结构交叉 | 两条装配线拼零件 | 重组节点与边,保留一方 h_s |
类比:传统 SkillOpt 像"一个人对着镜子反复改自己的稿子"(单候选自我精炼);GraphSkillEvo 像"养了一池子候选人,让好的组件互相杂交"——交叉算子把不同搜索轨迹上发现的有效片段组合起来,探索得更广。
五、评估指标与实验证据
5.1 A 文:真实流量 5 轮,无权重更新、无人工标注
| 指标 | 基线 | 5 轮后 | 说明 |
|---|---|---|---|
| 技能库规模 | 76(文档蒸馏冷启动) | 139(其中 63 来自用户轨迹) | 纯经验驱动增长 |
| GenEval2 执行成功率(Claude-Sonnet-4) | 72.7% | 99.3% | 组合式文生图能力 |
| GenEval2 质量分 Soft-TIFA | 34.26 | 46.25 | 生成质量 +11.99 |
| BannerRequest400 胜率(vs 无技能) | 74.7% | 100% | 专业 Banner 设计基准 |
| 对无技能 Agent 胜率 | — | 61.8%(Sonnet-4)/ 67.6%(Opus-4.6) | 4 个专业设计基准 pairwise |
| 延迟开销 | — | +3.4~6.2% | 检索技能的代价,很小 |
设计证明力:
- 组合超加性:仅 Widening 胜率 49.4%、仅 Deepening 48.6%,二者组合 58.5%(p=0.025)。证明两轴不是各加各的,而是协同——覆盖新子任务 + 捶硬旧技能互相放大。
- 恒定留出集:每轮都在固定的 200 条人工 brief 上打分,排除"题目越出越简单"的作弊。
- 消融对照:R1 几乎全是修复(缺口池还没攒够),R2–R3 新技能最多,随覆盖饱和而回落——曲线本身证明了 Widening/Deepening 各自的阶段作用。
5.2 B 文:5 基准 × 2 模型 × 2 harness
主结果(vs No Skill 平均提升 / vs SkillOpt 平均提升,单位 pp):
| 设定 | vs No Skill | vs SkillOpt |
|---|---|---|
| GPT-5.4(无 harness) | +15.37 | +1.76 |
| GPT-5.4-nano(无 harness) | +21.86 | +4.01 |
| GPT-5.4(Codex harness) | +10.31 | +1.33 |
- 小模型受益最大:nano 上 +4.01 > 全量 +1.76——图结构的显式工作流对小模型尤其救命(它最怕长 checklist)。
- 过程型任务增益最大:SpreadsheetBench 较 SkillOpt +10.60、ALFWorld +3.73(唯一例外是 LiveMath-nano 略低 0.80)。
- token 省 24~27%:SkillOpt 总消耗是 GraphSkillEvo 的 1.31×(GPT-5.4)/1.36×(nano)倍,即优化本身更便宜。
设计证明力(消融,GPT-5.4-nano 平均):
| 变体 | 平均掉点 |
|---|---|
| 去变异(w/o mutation) | −17.02(掉最多) |
| 去图结构(w/o graph structure) | −7.44 |
| 去交叉(w/o crossover) | −4.93 |
→ 变异(用轨迹反馈局部精炼)贡献最大,图结构其次,交叉提供广探索补充。三者各自必要。
跨模型迁移:用 nano 优化、部署到 GPT-5.4,GraphSkillEvo 在 SpreadsheetBench 达 71.78,超过"直接在 GPT-5.4 上优化"的 69.40 和"迁移的 SkillOpt"的 53.21。证明图结构技能跨模型仍有效,且比非结构技能更好迁移。
六、效果优势的根源解释
6.1 因果链
A 文优势根因(论文实验已支持):
冻结上下文的 pairwise 重放 → 消除 VLM 绝对分漂移与上游状态混淆 → 只采纳"修失败且不回归成功"的改动 → 技能库在噪声反馈下单调变好、不污染。
若没有 Replay Gate(反事实):绝对分上升可能只是评分漂移,会误纳回归改动,生产环境里"改坏一个常用技能"代价极高——所以 A 文把"不回归"当作硬约束,这正对应其消融里"组合胜率远高于单轴"。
B 文优势根因(论文实验已支持):
图结构把"任意文本"约束为"显式步骤+条件边" → ① 执行时 Agent 明确当前该走哪步(低冗余、显式工作流);② 优化时搜索空间被压缩去冗余、组件可复用 → 变异/交叉在结构化空间高效重组 → 更广探索 + 更少 token 找到更优技能。
因果印证:去图结构 −7.44、去变异 −17.02、去交叉 −4.93 三项消融,恰好分别落到"表示约束"“轨迹反馈精炼"“种群广探索"三个环节,数字大小与因果权重一致;跨模型迁移(71.78>69.40)印证"结构化表示比非结构文本更可移植”。
6.2 相关工作检索与对照(交叉验证表)
下表所列前序工作多为两篇论文自身在 Related Work 中引用的谱系(即作者声明的灵感来源,而非本文另行独立复现的外部验证)。它们与本文机制的关系如下:
| 研究(可核验链接) | 相似尝试 | 相关结论 | 与本文差异/边界 | 对根源解释的影响 |
|---|---|---|---|---|
| Reflexion(arXiv:2303.11366) | 用失败反思改进后续行为 | 口头反思能缓解重复犯错 | 仅单轨迹内、不沉淀为持久技能 | 支撑 A 的 Reflector / B 的"基于失败轨迹变异"思路来源 |
| ExpeL(arXiv:2308.10144) | 从多轨迹抽象经验写入记忆 | 抽象经验提升后续泛化 | 提炼的是通用原则,无覆盖聚类/图结构 | 支撑"经验应被持久化为可复用资产"这一前提 |
| Voyager(arXiv:2305.16291) | 自动课程+可复用技能库 | 技能库显著降低探索成本 | 技能偏动作脚本,无准入门控 | 支撑 A 的"技能库"概念与 B 的"技能即可复用 artifact” |
| Safe Policy Improvement / SPIBB(Laroche et al. 2019; Thomas et al. 2015) | 仅在不劣于基线约束下采纳策略更新 | 保守更新避免部署回退 | 原用于 RL 策略,本文移植到文本技能 | 直接启发 A 的 Matched Replay Gate(∃won∧∄lost) |
| GEPA / DSPy 优化谱系 | 用评估反馈做反射式变异优化 prompt | 反思式变异比盲目搜索更高效 | 多为单候选;B 加了种群+交叉 | 支撑 B 的变异算子与验证门控设计来源 |
| SkillOpt(Yang et al., 2026a) | 无结构技能 + 单候选自我精炼 + 验证门 | 迭代精炼有效但搜索冗余 | B 的 direct baseline,缺结构与种群 | 反衬 B"图结构+交叉"带来的增益 |
说明:上表以论文自引谱系为主,构成"作者声明的机制来源"。在本文检索范围内,未发现与"Matched Replay Gate 防回归"或"图结构压缩技能搜索空间"直接矛盾的反例;两者优势在各自设定(噪声生产流量 / 受控评测)下成立。条件边界:A 的增益依赖有可重放的冻结上下文与 pairwise 裁判;B 的增益在过程型、低冗余收益大的任务上最显著,纯推理任务(如 LiveMath-nano)增益收窄。
6.3 综合判断
- 多研究共同支持:① “经验持久化为外部资产优于改权重”(ExpeL/Voyager 同脉);② “保守/不回归的更新约束可防部署退化”(SPIBB 同脉)。
- 仍属合理推测:A 的"组合超加性"是否来自"覆盖与深化共享同一检索通道"的协同,论文用胜率差(p=0.025)支持,但机制细节属作者推测级。
- 失效条件:反馈完全不可重放、或 pairwise 裁判本身有偏时,A 的 Gate 失效;任务无清晰工作流结构时,B 的图收益下降。
七、必要知识反推
假设一个零基础的人要复现这两篇工作,他最少必须掌握:
领域知识层
- Agent/Harness 运作:LLM + 工具调用循环、SKILL.md 检索注入机制(A 文 §2 明确要求理解"禁用检索即还原原 Agent"这一对照组)。
- 评测不可靠性:VLM 评分的位置/顺序偏差(Zheng et al.)、设计无成功 oracle——不理解就无法解释为何需要"差分裁判"。
方法论知识层
- 进化计算(EC)基础:种群、适应度、变异/交叉、精英选择(B 文核心)。
- 安全策略改进(SPIBB)的"不回归约束"形式化(A 文 Gate 的数学来源)。
- 技能优化谱系:SkillOpt 的"反思→打补丁→验证门"流程(B 文的 baseline 与对照基准)。
工程知识层
- 如何构造"冻结上下文重放":同一 prompt 多上下文采样、双臂同批、顺序随机化(A 文落地的关键工程)。
- 图序列化与图校验器:把技能解析成
⟨h_s, g_s⟩并校验 workflow 合法性(B 文落地关键)。 - 统计检验:pairwise 胜率、p=0.025 显著性、恒定留出集设计。
知识融合的关键节点:A 文的创造性节点在于"把 SPIBB 的保守更新,翻译成文本技能的 pairwise 重放门";B 文的创造性节点在于"把’技能难优化’重构为’表示空间太冗余’,用图+EC 同时解决执行与优化两难"。两者都是"换个表征/换个约束"级别的第一性原理重构,而非堆模块。
八、论文中可以提取的通用性灵感(共用)
范式迁移:把"训练权重"换成"进化资产"。 证据:两文均在零权重更新下让冻结模型大幅变强(A 72.7%→99.3%;B 较 No Skill +15~22pp)。 推广:RAG 知识库自维护、Prompt 模板自动演化、企业 SOP 自动补漏、客服话术持续优化。
机制:保守准入门 > 无界重写。 证据:A 的 ∃won∧∄lost 门控是组合增益(58.5% vs 单轴~49%)的根;去门控会误纳评分漂移导致的假改进。 推广:任何"用不可信自动评估驱动的配置变更"都应加"不回归"硬约束——模型微调的学习率门控、A/B 发布的护栏、自动代码重构的准入。
表示结构决定优化上限。 证据:B 把技能从"无结构文本"改为"图",搜索空间去冗余,token 省 24~27% 且质量更高;去图结构 −7.44。 推广:把要优化的对象先结构化再优化——把自由文本 prompt 改成带槽位的模板、把杂乱笔记改成知识图谱、把长 checklist 改成状态机。
种群+交叉 > 单候选自我精炼。 证据:B 去交叉 −4.93、去变异 −17.02,且迁移(71.78)优于直接优化(69.40);交叉组合了不同轨迹的有效片段。 推广:LLM 资产的"集体进化"——多份候选 prompt/技能并行、互相杂交;也适用于多智能体方案的择优重组。
拒绝/失败信号本身就是学习信号。 证据:A 用失败计数 m=2 选修订对象、用"成功调用"作不回归基线;B 保留最多 K=5 条失败轨迹驱动变异。 推广:把错误日志、用户差评、测试用例失败当作"定向改进清单",而非仅仅是监控指标。
跨模型可移植资产价值巨大。 证据:B 用 nano 优化、GPT-5.4 部署仍达 71.78;技能是模型无关的"程序性知识"。 推广:在模型快速迭代的时代,把能力沉淀为模型无关的中间资产(技能/工具/协议),比绑定单一模型权重更抗过时。
一句话收束:EVOLVE 与 GraphSkillEvo 像是 2026 年 9 月给"Agent 技能自进化"这道题写下的两封互补答案信——一封讲"库如何在噪声里安全地长大",一封讲"单个技能如何被结构化地优化到最好"。它们共同印证:当模型权重被冻结,模型身边的自然语言资产才是持续适应真正的主战场。