Ricardo Notes
arXiv 2605.24117 · Paper Note

SkillEvolBench:从一次性经验到可复用程序性技能

这篇论文问的不是 agent 会不会调用 skill,而是更关键的一步: 真实任务留下的工具调用、代码修改、失败尝试、verifier feedback, 能否被压缩成未来 agent 在上下文迁移、诱导捷径和多技能组合中仍可复用的程序性技能。

Problem

问题背景:它补的是 agent memory 的哪块空白

轨迹复用、反思记忆、workflow memory 都说明旧经验有用;agent skills 说明程序性指导有用。 SkillEvolBench 关心中间缺失的一步:一次性经验能否变成 durable procedural knowledge。

轨迹不是技能

一个 episodic trajectory 记录了“这一次发生了什么”:读了哪些文件、运行了哪些命令、哪里失败、怎样修复、最终 verifier 如何反馈。 这些信息很有价值,但它混有 fixture-specific 细节、失败假设和偶然上下文。

一个 procedural skill 应该回答另一个问题:未来遇到同类任务时,什么时候触发、按什么步骤做、检查什么、避开什么捷径。

已有评测少测“形成过程”

SWE-bench、WebArena、OSWorld 等更偏“能不能完成任务”;SkillsBench 证明 curated skills 有用, 但 self-generated setting 更接近 cold-start,尚未回答 agent 能不能从真实执行和 verifier feedback 中沉淀 skill。

SkillEvolBench 的贡献,是把每次 acquisition attempt 变成一次抽象机会,再把 library 冻结后放到 deployment 任务上检验。

判断标准很严格:如果 skill 只提升 acquisition 或 replay,它可能只是本地补丁;只有 frozen deployment 的 context-shift、adversarial、composition 也提升,才更接近 reusable skill。

Benchmark Design

评测设计:180 个任务怎样组织成 skill-evolution arcs

每个环境包含 5 个 recurring procedural families。每个 family 包含 6 个 role-conditioned tasks: 前 3 个暴露经验,后 3 个冻结评测。

SkillEvolBench taxonomy:6 个环境、5 个 families、6 个 role progression
论文 Figure 2。六个环境覆盖代码、API、数据、文档、研究和沟通操作;每个 family 都从 canonical 学习任务推进到 context-shift、adversarial 与 composition deployment。
六个环境与对应 procedural families。
环境 五个 skill family 它主要测什么
E1 Code 系统错误诊断、依赖冲突、安全重构、多文件 bug、merge conflict 代码修改中的根因追踪、行为保持、跨文件协调和冲突合并。
E2 Tool/API 参数校验、重试退避、分页拉取、多步编排、响应校验 fallback API discipline、状态依赖和接口边界条件。
E3 Data schema 检查、类型归一化、join key 对齐、null-safe 聚合、结果 sanity check 表格处理里的前置检查、清洗和结果验证。
E4 Docs 字段抽取、格式迁移、模板填充、文档 diff、多源合并 结构化转换和源目标一致性验证。
E5 Research 多源筛选、证据比较、引用核验、约束摘要、矛盾检测 信息综合中的 evidence grounding 和 source fidelity。
E6 Communication 邮件 triage、上下文回复、follow-up 跟踪、会议排期、action item 抽取 开放式沟通任务里的多约束执行和上下文保真。

Acquisition roles

  • canonical:给出基础 procedure。
  • enriched:暴露 naive skill 缺失的子能力。
  • variant:改变表面形式,但保留核心程序。

Frozen deployment roles

  • context-shift:技能需求嵌入更宽泛请求。
  • adversarial:提供可能骗过浅层检查的 shortcut。
  • composition:需要目标 skill 与其他 skill 组合。
Protocol

机制拆解:从 trajectory 到 skill library 的执行链路

每个 environment 是一个独立 lifelong episode。skills 可以在同环境内累积,但切换环境时 reset,避免跨环境泄漏。

1

初始化 skill library

Self-generated 从空 skill 开始;curated-start 从 gap-exposed curated skill 开始;zero-shot 只根据 metadata 写 fixed skill。

2

完成 acquisition tasks

agent 依次处理 canonical、enriched、variant。每次尝试后,系统记录指令、文件访问、工具调用、命令、编辑、输出、测试和最终响应。

3

压缩轨迹并接收 verifier feedback

rich compaction 给 Skill Author 使用;rough compaction 给 Raw-Trajectory control 使用。作者特别说明不访问 hidden model state 或 private chain-of-thought。

4

Skill Author 写入、修订或跳过

Skill Author 是 host-side LLM call,与 task-solving agent 分离。它只接收 same-family skills 和 same-family acquisition history。

5

冻结 deployment 与 replay

library 冻结后,agent 只能读取和应用 skills,不能继续修订。deployment 后再 replay 原 acquisition tasks,用来区分 local recovery 与 transfer。

实验条件。核心是区分 base capability、直接轨迹复用、人类先验和经验诱导 skill。
条件 含义 它排除什么混淆
No-Skill 没有 persistent memory 或 skill library。 base agent capability。
Raw-Trajectory 检索同 family acquisition 轨迹,不生成 skill。 直接 episodic reuse 是否已经足够。
Curated-Static / Revision / Always 从 gap-exposed curated skill 开始,静态或按策略修订。 人类初始程序知识和经验修订的贡献。
SelfGen-ZeroShot / Revision / Always 空起点或 metadata 起点,由 agent 从轨迹诱导 skill。 agent 自己从经验形成 skill 的能力。
Always+Tier3 强制写入或更新 scripts/references/assets/ library 容量是否是瓶颈。
Results

局部适应有,但 reusable skill 不稳

我从项目页内嵌 leaderboard 解析出十个模型的平均指标。结论很清楚: always-update 略好,但绝大多数 skill 条件没有形成稳定 deployment 优势。

十模型平均结果。ESR/CSSR/ARSR/CompSR 才是判断 reusable skill 的关键。
条件 LSR RSR ESR CSSR ARSR CompSR ESR 变化
No-Skill 40.1 - 34.7 38.3 43.7 22.0 baseline
Curated-Static 41.8 - 32.2 38.0 39.7 19.0 -2.46 pp
Curated-Revision 41.2 46.0 34.0 38.0 41.3 22.7 -0.68 pp
Curated-Revision-Always 40.6 41.8 35.5 41.0 40.7 24.7 +0.77 pp
SelfGen-ZeroShot 41.0 - 32.1 37.0 37.7 21.7 -2.57 pp
SelfGen-Revision 41.7 44.1 32.1 37.0 38.3 21.0 -2.58 pp
SelfGen-Always 40.8 43.1 35.1 40.7 41.0 23.7 +0.44 pp

LSR / RSR 会骗人

acquisition 或 replay 变好不代表 skill 真可复用。论文中多个模型在 LSR/RSR 上涨,但 ESR、CSSR 或 CompSR 下降。

部署轴是分裂的

context-shift、adversarial robustness、composition 暴露的是不同 failure mode。单一 success rate 会把 missed invocation、shortcut reliance 和 weak modularity 混在一起。

模型依赖很强

Opus 4.5、GPT-5.4 等模型更容易从 procedural memory 获益;Gemini 2.5 Pro 在多数 memory variants 下反而受损。

Bottleneck

为什么 raw trajectory 经常赢过 distilled skill

这是论文最刺痛当前 agent memory 方法的结果:如果 skill abstraction 真保留了可复用程序, distilled skills 应该至少不输直接轨迹复用;但实验中不是这样。

Skill-based conditions relative to Raw-Trajectory 的 heatmap
论文 Figure 4。大面积负值说明 skill-based conditions 经常低于 Raw-Trajectory。也就是说,抽象后的 skill 丢掉了 raw trajectory 中仍然有用的上下文和程序线索。

raw trajectory 保留了过程证据

  • 具体跑过哪些命令和测试。
  • 哪个错误暴露了根因。
  • 哪些 schema、字段、边界条件曾经被验证。
  • agent 怎样从失败假设中回退。

distilled skill 容易过度清洁

  • 泛化建议删掉了触发条件。
  • 反例和失败路径被当作噪声过滤。
  • validator / template 没被持久化。
  • metadata 描述不准导致未来 skill 不触发。

我的判断:这不是“总结写得不够长”的问题,而是 selective procedural abstraction 的问题。 当前 agent 不稳定地知道哪些 execution details 是未来程序的一部分,哪些只是当前 episode 的噪声。

Library size versus frozen evaluation success by model
论文 Figure 5。Tier-3 forcing 让 library 变大,但很多点只是向右移动,ESR 不升反降。容量扩张不能替代选择性抽象。
Tier-3 capacity diagnostic 的正反例。
现象 例子 解释
资源文件有时有用 Claude Opus 4.6 在 SelfGen-Always+Tier3 中 ESR 从 37.8% 到 40.0%。 某些脚本、模板、参考确实能保存 compact SKILL.md 放不下的稳定程序。
容量也会伤害 Gemini 3 Flash 的 SelfGen-Always+Tier3 ESR 从 No-Skill 35.6% 掉到 27.8%。 额外资源可能变成 stale context、过拟合 validator 或弱触发文件,增加检索和判断负担。
Always update 不单调 Self-generated Always 平均略好,但也会降低部分模型或指标。 更多写入提高 coverage,也增加 episode-specific drift。
Engineering

如果我们要做 agent skill system,该学什么

这篇论文不是给出一个最终算法,而是给 skill 系统设计提供了很明确的失败清单。

skill 不应替代 trace memory

更合理的架构是双层记忆:skill library 保存稳定 procedure,episodic trace memory 保存具体执行证据。 未来 agent 用 skill 做骨架,用 trace 还原局部上下文。

skill 要写验证,不只写原则

比起“validate input before using it”,更有用的是“merge 前检查 dtype、case、unmatched keys; merge 后 assert row count 和 critical NaN”。技能的核心是可执行检查点。

update policy 要有过滤器

每次任务都可以提取 candidate lesson,但只有 stable、repeated、verifier-backed、future-triggerable 的内容才应该进入 skill body。

library 需要生命周期治理

真实系统需要 skill retirement、duplicate merge、trigger collision check、usage audit、stale resource detection 和 skill-level regression tests。

一个实用 checklist:写清触发条件;写具体流程;保留失败线索;写验证方法;区分稳定程序和局部细节; Tier-3 文件必须被 SKILL.md 明确引用;修订后问它是否能帮助未来不同上下文的任务。

Insight

我的判断

SkillEvolBench 最好的地方,是它用 Raw-Trajectory control 逼所有 skill 方法面对一个朴素问题: 你提炼出的技能,为什么比原始经验更好?如果答案说不清,skill 很可能只是看起来更干净的 lossy compression。

当前 agent 的核心瓶颈不是“不会总结”,而是“不知道哪些执行细节是未来程序的一部分”。 很多命令、schema 检查、异常路径、失败尝试和 verifier 诊断,在摘要时看像局部噪声, 但在 deployment 的 context shift 或 adversarial task 里恰好是关键线索。

所以我会把这篇论文当作 agent skill system 的评测框架,而不是只当 benchmark 榜单。 后续真正有价值的方向,是 trace-to-skill loss analysis、skill trigger evaluation、skill regression tests 和 hybrid skill+trace retrieval。

术语解释与概念边界

Skill library
agent 从历史任务中沉淀出的可复用步骤、规则或程序集合。它应该能被新任务调用,而不是只记录旧轨迹。
Trajectory
一次任务的完整执行过程,包括观察、动作、失败、修正和结果。轨迹是原始经验,不等于已经抽象好的技能。
Acquisition task
用于让 agent 形成或修订技能的学习任务,重点看它能否从过程经验中提炼可迁移规则。
Frozen deployment
冻结技能库后再评测新任务,避免模型边做边改,把“临场适应”误判成“已有技能可复用”。
Source Map

证据边界与资料索引

本报告以 arXiv 论文、项目主页、Hugging Face Paper 页面和 Hugging Face Dataset 为主证据。 dataset parquet 中包含 30 个 skills 与 180 个 tasks 的结构。

论文主体 arXiv:2605.24117v1,标题为 SkillEvolBench: Benchmarking the Evolution from Episodic Experience to Procedural Skills,提交日期 2026-05-22。
项目主页 skillevolbench.github.io 页面和内嵌 leaderboard 数据;Paper 链接可用,Code/Data 按钮当前在页面 HTML 中仍是占位 #
HF Paper Hugging Face Paper 页面提供标题、作者、摘要、提交信息、项目页链接与 AI summary;未显示 linked models/datasets/spaces。
HF Dataset skillevolbench/skillevolbench 可访问,包含 skillstasks 两个 config;核验 skills=30tasks=180
SkillEvolBench 从 episodic attempts 到 skill library 的协议图
论文 Figure 1。SkillEvolBench 把一次任务执行压缩为 trajectory summary,并结合 verifier feedback 交给 Skill Author,随后冻结 skill library 到更难任务上测试。