From Procedural Skills to Strategy Genes: Towards Experience-Driven Test-Time Evolution
Junjie Wang, Yiming Ren, Haoyang Zhang
cs.SE, cs.CL
2026-04-16
4590次对照里,230 token的策略基因把科学代码平均过关率从51.0%提到54.0%,2500 token的Skill文档包反而掉到49.9%;失败经验压成警告比往里堆历史更有效。
Agent 圈把经验做成可复用对象已经成默认动作:口头反思、外部记忆、可执行技能库,再到最近一堆文档型 Skill。隐含假设是经验写得越完整、结构越像说明书,下次推理就越稳。
这份来自清华与 EvoMap 的 beta 技术报告把假设拆开测。问题不在要不要存经验,而在经验以什么形态重新进模型。他们把可复用经验定义成测试时控制信号:参数不动,只靠外挂对象改生成分布。对照是两种包装。Skill 是给人读的文档包,约 2500 token,主体是 overview、workflow、pitfalls、errorhandling,附件是 apinotes、examples、scripts。策略基因是给模型用的控制对象,约 230 token,字段是 keywords、summary、strategy、AVOID。
评测面叫 Gene-Bench:45 个科学代码场景,4590 次保留试验。输出是可执行 Python,沙盒 120 秒超时,按检查点过关率计分。模型锁死 Gemini 3.1 Pro Preview 和 Gemini 3.1 Flash Lite Preview,温度 0.05,最大输出 16384 token。控制走 systemInstruction,题面走 contents。
策略基因不是把 Skill 截短。蒸馏目标是控制密度:谁该被匹配、一句话意图、几步策略、失败相关的 AVOID。上面再套 Gene Evolution Protocol,把基因规范成可匹配、可替换、可修订的对象。协议里还有两层:capsule 记录一次验证过的执行路径,event 是不可变演化日志。循环是 SCAN、SIGNAL、INTENT、MUTATE、VALIDATE、SOLIDIFY。
跑例能看清包装差在哪。UV-Vis 峰检测里,模型常把 mindistance 当成波长而不是样本索引,或把 peakwidths 的原始输出直接当半高宽。Skill 把概述、流程和参考材料整包塞进上下文。基因只盯高风险决策:用 prominence 找峰、先把距离换成索引、报半高宽之前先把宽度换回波长。
三组探针分开打。Skill Probe 1440 次,问文档包能不能当控制信号。Gene Probe 1890 次,问基因是不是只是更短的提示。Evolution Probe 1260 次,问基因能不能当经验积累的载体。同一场景的经验源固定,变的是包装。
主对照相对无指导 51.0%:
| 条件 | Pro | Flash | 平均 | Δ |
| Skill 全文 | 50.7% | 49.0% | 49.9% | -1.1 |
| 无指导 | 60.1% | 41.8% | 51.0% | 0.0 |
| 策略基因 | 59.9% | 48.2% | 54.0% | +3.0 |
Skill 把 Flash 从 41.8% 拉到 49.0%,同时把 Pro 从 60.1% 砸到 50.7%。基因几乎不伤 Pro(59.9% 对 60.1%),Flash 提到 48.2%。平均 +3.0 几乎全是弱模型贡献。
Skill 拆开看,能用的信号很窄。Overview 平均掉 4.7 个百分点。Workflow 是唯一明显正项,+1.5。ErrorHandling +0.7,QuickRef +0.5,Pitfalls 几乎持平(+0.1)。把 Workflow 和 Pitfalls 截到约 230 token,分别只剩 +0.5 和 +1.0,仍低于基因的 +3.0。短解释了一部分,解释不完。
基因也不是越短越好。只留 keywords 平均 53.5%(+2.5)。keywords 加 summary 掉回基线 51.0%。三件套才到 54.0%。把 API notes 或 examples 加回去,平均掉到 51.5% 和 52.0%。两个号称互补的基因一起塞,平均崩到 44.9%(-6.1);两个互相冲突的基因反倒还能 53.2%。高精度科学代码里,控制焦点被搅糊比指令打架更致命。
内容错了才伤:错算法 48.8%,错领域 49.4%。结构拧了还能打:优先级倒置 52.8%,约束过死 55.9%,过时范式甚至到 56.6%。同一段基因拍成散文,平均掉到 50.5%,结构化本身值大约 3.5 个百分点。
失败历史往上贴,载体差很多。Skill 加失败 47.8%,自由文本加失败 49.6%,基因加失败 52.0%。裸贴仍比干净基因低 2.0 个百分点。失败压成独立警告最好,平均 54.4%(+4.6,这组无指导基线是 49.8%)。策略和失败混写,两边都变弱。
CritPt 上两套基因进化系统用 OpenClaw 做宿主、Evolver 做引擎,各跑约两天。相对配对基座:Gemini 3 Pro Preview 从 9.1% 到 18.57%,Gemini 3.1 Pro Preview 从 17.7% 到 27.14%。3 月那版覆盖 70 题、210 个基因槽、36 个唯一 ID,arxiv 来源被选中 148 次。2 月那版可观测输入输出成本约 0.81 美元,论文写成约为该基座跑基准 26 美元的 3.1%,推理 token 没计入。
给正在往 Agent 里塞 SKILL.md 的人一条硬结论:给人读的完整文档,塞进 system prompt 常常是负资产。Pro 被全文 Skill 砸掉约 9.4 个百分点,这件事比平均 +3.0 更该记住。
可落地的做法也清楚。经验做成短的、带字段的、面向失败的控制对象,不要做成说明书。更新时压成 AVOID,不要把日志原文贴进去。一次只投一个对准任务的基因,不要当技能背包往上下文里倒。
CritPt 那约 9 个百分点不能读成换个 prompt 格式就涨。进化系统带着检索、验证、固化整条环,变量不干净。Gene-Bench 上的 +3.0 才是包装本身的证据。
这是 beta 技术报告,正文没有独立局限节。模型只覆盖两个 Gemini Preview,温度锁在 0.05。换到 Claude、GPT 或开源模型,没有数据。
评测全是科学代码的检查点过关率。Workflow 帮 Flash、伤 Pro,说明控制信号高度模型依赖,平均 Δ 会把这件事抹平。
CritPt 对照把进化引擎、宿主运行时和基因表示绑在一起。从 9.1% 到 18.57% 有多少来自基因格式、多少来自多轮工具循环,论文没有拆开。作者机构就是 EvoMap,评的也是自家协议和引擎,独立复现还没有。
过约束和过时范式超过干净基因,说明「正确模板」本身并不稳。两个互补基因崩盘,也说明协议宣称的可组合性,在这篇实验里还没站住。