Research Article
EvoSkills: 通过协同进化验证实现智能体技能的自我进化
EvoSkills: 通过协同进化验证实现智能体技能的自我进化
原文链接: arXiv:2604.01687
摘要
Anthropic 提出了技能 (Skills) 的概念,用于让 LLM 智能体处理多步骤的专业任务——这些任务无法通过简单的工具调用来解决。与单一、自包含的工具 (Tools) 不同,技能是一个结构化的多文件工件包,包含领域特定的指令、可执行脚本和参考材料。
然而,当前技能生成面临两大挑战:
- 标注成本高:依赖人工编写
- 认知不对齐:人机认知差异导致智能体性能下降
EvoSkills 通过协同进化验证框架解决了这些问题,实现了智能体技能的自主生成和迭代优化。
核心问题
工具 vs 技能
| 维度 | 工具 (Tool) | 技能 (Skill) |
|---|---|---|
| 复杂度 | 单一函数 | 多文件工件包 |
| 功能 | 原子操作 | 多步骤工作流 |
| 示例 | 文件读取、API 调用 | 数据分析管道、安全审计流程 |
| 生成难度 | 单次生成 | 需要迭代优化 |
现有方法的局限
- 人工编写:成本高、难以规模化
- 单次自生成:缺乏验证反馈,质量不稳定
- 简单提示工程:无法处理复杂的多文件依赖
EvoSkills 框架
架构概览
┌─────────────────────────────────────────────────────────────────┐
│ EvoSkills 协同进化框架 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Skill │ │ Surrogate │ │
│ │ Generator │◄───────►│ Verifier │ │
│ │ (技能生成器) │ 反馈 │ (替代验证器) │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 生成技能包 │ │ 生成测试用例 │ │
│ │ (代码+文档) │ │ (结构化断言) │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ └───────────┬───────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ 执行 & 验证循环 │ │
│ │ • 生成器执行技能 → 产生输出 │ │
│ │ • 验证器评估输出 → 提供诊断反馈 │ │
│ │ • 迭代优化直到 surrogate 测试通过 │ │
│ └───────────────────┬─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────┐ │
│ │ Ground-Truth Oracle Test │ │
│ │ (真值验证 - 仅返回 Pass/Fail) │ │
│ └───────────────────┬─────────────────────┘ │
│ │ │
│ ┌─────────────┴─────────────┐ │
│ │ │ │
│ ▼ ▼ │
│ [Pass] [Fail] │
│ │ │ │
│ ▼ ▼ │
│ 部署技能 测试升级 + 技能优化 │
│ (新一轮协同进化) │
│ │
└─────────────────────────────────────────────────────────────────┘
关键组件
1. Skill Generator (技能生成器)
- 功能:迭代生成和优化多文件技能包
- 输入:任务指令、上一轮技能、验证反馈
- 输出:改进后的技能包 (代码 + SKILL.md)
- 策略:基于 LLM 的上下文学习,持续积累验证反馈
# 技能生成迭代公式
S^(i+1) ~ π_θ(· | S^(i), C^(i+1))
C^(i+1) = C^(i) ⊕ F^(i,j)
# S^(i): 第 i 版技能
# C: 对话上下文
# F^(i,j): 验证器提供的失败诊断
2. Surrogate Verifier (替代验证器)
- 功能:作为真值验证的代理,提供密集反馈
- 独立性:完全独立的 LLM 会话,避免确认偏误
- 可见信息:仅任务指令和输出文件,不可见生成器代码
- 输出:结构化测试断言 + 失败诊断
关键设计:信息隔离确保验证器不会继承生成器的偏见
# 替代奖励函数
R̃(x, V) = (1/|V|) Σ 1[e_k(x)]
# x: 技能执行输出
# V = {e_1, ..., e_|V|}: 测试断言集合
# 1[e_k(x)]: 断言 e_k 是否通过
3. Ground-Truth Oracle (真值验证)
- 功能:最终验证技能质量
- 特点:仅返回 Pass/Fail,不透露测试内容
- 目的:防止生成器过拟合到测试集
协同进化循环
迭代过程 (Algorithm 1):
初始化: S^(0) ~ π_θ(· | I, S_meta) # 基于元技能生成初始技能
V^(0) = ∅ # 空测试套件
for n in range(N): # 最多 N 轮进化
# 1. 执行技能
x^(i) = Φ(S^(i), E) # 在环境 E 中执行技能 S^(i)
# 2. Surrogate 验证
R̃^(i,j) = R̃(x^(i), V^(j))
if R̃^(i,j) < 1: # 测试未通过
# 生成失败诊断
F^(i,j) ~ π_θ^V(· | I, x^(i), V^(j))
# 反馈给生成器优化技能
S^(i+1) ~ π_θ(· | S^(i), C ⊕ F^(i,j))
continue
# 3. 真值验证 (仅当 surrogate 通过时)
x̂^(i) = Φ(S^(i), E') # 在全新环境 E' 中重新执行
R^(i) = R(x̂^(i)) # 真值验证
if R^(i) == 1:
return S^(i) # 完美通过,返回技能
# 4. 测试升级
# 真值失败但 surrogate 通过 → 验证器需要更强的测试
V^(j+1) ~ π_θ^V(· | I, x^(i), V^(j))
实验结果
数据集:SkillsBench
- 任务数:87 个任务
- 领域:约 20 个专业领域
- 评估方式:确定性验证器,二元 Pass/Fail
RQ1: 技能质量对比
| 方法 | Pass Rate | 相比无技能 | 相比人工 |
|---|---|---|---|
| 无技能基线 | 30.6% | - | - |
| Self-Generated Skills | 32.0% | +1.4pp | - |
| CoT-Guided Self-Generation | 30.7% | +0.1pp | - |
| Skill-Creator | 34.1% | +3.5pp | - |
| 人工编写技能 | 53.5% | +22.9pp | - |
| EvoSkills (本文) | 71.1% | +40.5pp | +17.6pp |
关键发现:
- 单次自生成方法几乎无改进
- EvoSkills 的增益来自迭代验证循环,而非提示工程
RQ2: 消融实验
| 配置 | Pass Rate | 下降 |
|---|---|---|
| 完整 EvoSkills | 71.1% | - |
| 移除 Surrogate Verifier | 41.1% | -30.0pp |
| 仅使用背景上下文 | 48.6% | -22.5pp |
结论:迭代验证和结构化打包都是必需的
RQ3: 跨模型迁移性
技能从 Claude Opus 4.6 迁移到其他模型:
| 目标模型 | 无技能 | 有技能 | 提升 |
|---|---|---|---|
| Claude Opus 4.6 | 30.6% | 71.1% | +40.5pp |
| GPT-5.2 | 29.6% | 69.8% | +40.2pp |
| Claude Sonnet 4.5 | 28.3% | 64.8% | +36.5pp |
| Claude Haiku 4.5 | 27.1% | 63.5% | +36.4pp |
| Qwen3-Coder-480B | 26.9% | 67.0% | +40.1pp |
| DeepSeek V3-671B | 25.8% | 65.2% | +39.4pp |
| Mistral Large 3-675B | 24.6% | 68.9% | +44.3pp |
关键发现:
- 所有模型都获得显著提升 (+36–44pp)
- 技能编码的是可复用的任务结构,而非模型特定产物
- 模型匹配进化有微弱优势 (GPT-5.2 自进化 69.8% vs 迁移 65.0%)
RQ4: 领域级分析
EvoSkills 在 11 个领域中的 9 个超越人工编写技能:
| 领域 | 提升最大 |
|---|---|
| Finance | +56.9pp |
| Cybersecurity | +23.2pp |
| Natural Science | 人工技能反而降低性能,自进化技能显著提升 |
模式:人工技能表现好的领域 (Energy, Robotics) 进化增益小;人工技能无效的领域进化增益大。
进化动态
进化轮次 vs Pass Rate:
Round 0 (单次生成): ~30% (与无技能基线持平)
Round 2: ~44%
Round 3: ~63% (超越人工技能)
Round 5: ~75% (收敛)
平均每个任务: 4.1 次验证循环,2.4 次进化迭代
与神经符号 AI 的关联
结构化知识表示
EvoSkills 生成的技能包本质上是一种结构化知识表示:
- 符号层面:SKILL.md 中的指令、脚本中的代码逻辑
- 神经层面:LLM 生成的内容、上下文学习
可解释性
- 每个技能都有清晰的文档 (SKILL.md)
- 验证器提供结构化的失败诊断
- 进化过程可追溯
与 Shirui 研究的关联
🔬 神经符号 AI:EvoSkills 展示了如何将神经网络 (LLM) 与符号结构 (技能包、测试断言) 结合,实现可解释、可验证的自主系统。
🔬 具身 AI:技能可以被视为智能体的”程序性记忆”,类似于人类的专业技能。
局限与未来方向
当前局限
- 计算成本:平均 4.1 次验证循环,需要多次 LLM 调用
- 收敛性:少数困难任务无法收敛
- 领域依赖:某些领域 (Energy, Robotics) 人工技能已足够好
未来方向
- 更高效的验证:减少验证循环次数
- 技能组合:多个技能的组合和协调
- 在线学习:部署后持续进化
- 多智能体协作:多个智能体共同进化技能
结论
EvoSkills 通过协同进化验证框架实现了智能体技能的自主生成,核心创新包括:
- Skill Generator:迭代生成多文件技能包
- Surrogate Verifier:独立提供密集反馈,避免确认偏误
- Ground-Truth Oracle:最终验证,防止过拟合
实验结果:
-
SkillsBench 上达到 71.1% pass rate