EvoSkills 深度精读:Agent 如何自主进化自己的技能?
EvoSkills 深度精读:Agent 如何自主进化自己的技能?
Section titled “EvoSkills 深度精读:Agent 如何自主进化自己的技能?”论文: Self-Evolving Agent Skills via Co-Evolutionary Verification (EvoSkills) 作者: Hanrong Zhang, Shicheng Fan 等(UIC, MBZUAI, McGill, Columbia, UBC 等) 链接: arXiv:2604.01687
问题定义:这篇论文要解决什么问题?
Section titled “问题定义:这篇论文要解决什么问题?”Anthropic 提出了 Agent Skills 的概念——与简单的 tool(单一自包含函数)不同,skill 是一个结构化的多文件包,包含工作流指令、可执行脚本和领域参考材料,用于指导 LLM Agent 完成复杂的多步专业任务。
核心痛点有两个:
- 手工编写 skill 成本高且难以扩展:当前 skill 主要靠人类专家编写,劳动密集型,且无法保证质量一致性。
- 人机认知错位(Human-Machine Cognitive Misalignment):这是一个非常有趣的观察——SkillsBench 评估显示,人类编写的 skill 在某些领域(如 Natural Science)不仅没有提升性能,反而降低了 Agent 的表现。论文假设原因是:人类设计的 workflow 和抽象方式符合人类直觉,但与 LLM Agent 实际处理上下文、推理和执行的方式不匹配。
为什么重要? 这篇论文触及了一个根本性问题:Agent 需要的”技能”应该由谁来定义?是人类专家根据自己的认知模型,还是 Agent 自己根据实际执行经验来构建?如果 Agent 能自主进化出高质量 skill,那就意味着我们可以实现 Agent 能力的自主扩展,而不再依赖人类手动维护 skill 库。
核心思想:协同进化验证(Co-Evolutionary Verification)
Section titled “核心思想:协同进化验证(Co-Evolutionary Verification)”EvoSkills 的核心是一个双组件协同进化框架:
Skill Generator(技能生成器):
- 维护一个持久的对话上下文 C,初始化为任务指令 I + 一个领域无关的 meta-skill(教 Agent 如何创建 skill)
- 每次迭代中,Generator 读取当前 skill 版本 + 累积的验证反馈,生成改进版本
- 执行 skill 获得输出,交给 Verifier 评估
Surrogate Verifier(替代验证器):
- 运行在完全独立的 LLM session 中,只能看到任务指令和输出文件,看不到 Generator 的推理过程和 skill 内容
- 这种信息隔离防止了确认偏差(confirmation bias)——verifier 不会继承 generator 的盲点
- 生成代理测试断言套件,提供密集的结构化反馈(而非 ground-truth 的 opaque pass/fail)
协同进化循环
Section titled “协同进化循环”Generator 生成 skill → 执行 → Verifier 评估 ↓ 如果失败:返回结构化诊断反馈 → Generator 修复 skill 如果通过:Ground-Truth Oracle 重新执行 ↓ 如果 Oracle 通过:完成 如果 Oracle 失败:Verifier 升级测试套件 → 重新循环关键设计点:
- Ground-Truth Oracle 只返回二元 pass/fail 信号,不泄露测试内容,防止 overfitting
- Test Escalation 机制:当 surrogate 通过但 ground-truth 失败时,verifier 独立升级测试(更多样、更全面、更有挑战性的测试用例)
- 上下文管理:设置 β=0.7 的上下文使用比例上限,防止 LLM 上下文溢出
- 进化预算:最多 N=5 次 oracle 轮次,M=15 次 surrogate 重试
论文将任务环境建模为 POMDP(部分可观测马尔可夫决策过程),因为 Agent 永远不知道 held-out ground-truth 测试实际在检查什么。优化目标是最大化 skill 条件下的期望终端奖励 J(S)。
-
Skill ≠ Tool:明确区分了 tool(单文件函数)和 skill(多文件结构化包),并设计了首个针对 skill 的自进化框架。现有 self-evolving 方法(Voyager, LATM 等)都是为 tool 设计的,无法处理多文件依赖。
-
人机认知错位的实证发现:论文用数据证明了人类编写的 skill 在某些领域会降低 Agent 性能,这是一个被忽视但至关重要的问题。自进化 skill 在 9/11 个领域超越人类 skill。
-
信息隔离的 Surrogate Verifier:验证器运行在独立 session 中,只能看到输入/输出,看不到 Generator 的内部状态。这比 self-verification 更可靠。
-
无 Ground-Truth 依赖:通过协同进化机制,Agent 在不知道真实测试内容的情况下也能持续改进 skill,这在实际场景中非常关键。
-
跨模型迁移性:Claude Opus 4.6 进化出的 skill 可以迁移到 GPT-5.2、Qwen3、DeepSeek 等 6 个模型,且提升幅度达 36-44pp。
Benchmark: SkillsBench(87 个任务,约 20 个专业领域,确定性验证器)
Baselines:
- No-Skill Baseline:无 skill
- Self-Generated Skills:单次生成,无进化
- CoT-Guided Self-Generation:结构化 CoT 提示 + 单次生成
- Skill-Creator:Anthropic 官方 skill-creator 的自主化版本
- Human Curated Skills:SkillsBench 的人类编写 skill
评估指标: Pass Rate(所有测试通过的二元指标)
模型: Claude Opus 4.6 + Claude Code(主要),GPT-5.2 + Codex(次要),跨模型迁移测试 6 个模型
主实验(Claude Opus 4.6 + Claude Code)
Section titled “主实验(Claude Opus 4.6 + Claude Code)”| 方法 | Pass Rate |
|---|---|
| No-Skill | 30.6% |
| Self-Generated | 32.0% (±3.1) |
| CoT-Guided | 30.7% (±5.2) |
| Skill-Creator | 34.1% |
| Human Curated | 53.5% |
| EvoSkills | 71.1% |
关键观察:所有单次生成的方法(Self-Generated, CoT-Guided, Skill-Creator)几乎都没有提升(30-34% vs 30.6% baseline)。这说明 skill 生成的质量完全取决于迭代验证,而非生成提示词的质量。
- 去掉 Surrogate Verifier:71.1% → 41.1%(-30pp),说明结构化诊断反馈是核心
- 只给背景上下文不加进化:48.6%,说明领域知识有用但不够
- 完全无 skill:30.6%
Opus 进化的 skill 迁移到 6 个模型,均提升 36-44pp。有趣的是 GPT-5.2 用自己的模型进化 skill(69.8%)比用 Opus 迁移的(65.0%)高 4.8pp,说明 model-matched evolution 有微小但一致的优势。
自进化 skill 在 9/11 领域超越人类 skill,最大优势在 Finance(+56.9pp)和 Cybersecurity(+23.2pp)。人类 skill 已经很好的领域(Energy, Robotics)进化收益递减。
- Round 0(无验证):≈ baseline
- Round 2:44%
- Round 3:超越人类 skill(63%)
- Round 5:75%(收敛)
- 平均每任务 4.1 次 verification cycle,2.4 次 oracle round
-
计算成本极高:每个 task 需要 5 次进化迭代,每次都有完整的 skill 执行 + verifier 评估 + 可能的 oracle 重执行。论文没有详细报告总 token 消耗和成本。
-
依赖前沿模型:进化 Agent 使用 Claude Opus 4.6 或 GPT-5.2 等最强模型。用弱模型来进化 skill 的效果如何?论文没有探索。
-
Ground-Truth Oracle 的现实可用性:虽然论文强调不需要 GT 测试内容,但仍然需要 GT oracle 进行二元评估。在真实开放场景中,这种确定性 oracle 通常不存在。
-
Benchmark 局限:只在 SkillsBench 上评估,且只有 87 个任务。泛化性有待验证。
-
没有探索 skill 组合:每个 skill 独立进化,但实际 Agent 场景可能需要 skill 的组合和复用。
-
收敛不保证:约 10 个任务始终未收敛,增加进化轮次是否能解决还是根本性困难?
1. 这是最有价值的发现:人机认知错位
Section titled “1. 这是最有价值的发现:人机认知错位”论文最打动我的不是方法本身,而是那个观察:人类专家写的 skill 在 Natural Science 领域让 Agent 性能下降了。这暗示了一个深刻的洞察——我们对 LLM 的认知模型可能是错的。我们以为给 Agent 提供清晰的 workflow 和结构化指导会帮助它,但实际上这些”指导”可能与 LLM 的推理模式冲突。
这让我想到一个更广泛的问题:在 Agent 系统设计中,skill/prompt 的编写者(人类)和执行者(LLM)之间也存在类似的认知错位。我们写的 prompt 是否真的最优?
2. 协同进化的思路可以泛化
Section titled “2. 协同进化的思路可以泛化”Skill-Verifier 的协同进化模式不仅适用于 skill 生成,也可以用于:
- 测试用例自动生成:自动进化更全面的测试套件
- Prompt 优化:用替代验证器来指导 prompt 的迭代改进
- Agent 系统设计:让 Agent 自主优化自己的工作流配置
3. 方法的实际可行性存疑
Section titled “3. 方法的实际可行性存疑”虽然方法在学术上很 elegant,但实际应用有几个障碍:
- 成本太高:每次进化需要多次强模型调用
- 收敛性不确定:10/87 的任务未收敛
- 需要确定性验证器:真实世界任务很少有完美的 binary evaluator
EvoSkills 提出了一个在概念上很有吸引力的框架:让 Agent 自己来进化自己的技能包,而不是依赖人类专家。核心贡献在于(1)识别并量化了人机认知错位问题,(2)设计了信息隔离的协同进化验证机制,(3)实证证明了自进化 skill 可以超越人类编写的 skill 且跨模型迁移。但方法的实际应用还面临成本、收敛性和 ground-truth 依赖等挑战。