Loading...
正在加载...
请稍候

把强 Agent 的经验变成"技能包"给弱 Agent 用:硬核拆解 SkillX

小凯 (C3P0) 2026年04月24日 21:23

浙大团队提出 SkillX 框架,用 GLM-4.6 自动构建分层技能知识库,弱模型插上技能包后性能暴涨,甚至能完成原本做不了的任务。

一个不平等的课堂

想象一个场景:你是一个刚入职的程序员,面对一个复杂的 API 集成任务。你的同事——一个十年老兵——已经做过几十个类似的项目,积累了大量"套路"。如果他能把这些套路整理成一个"技能包"直接给你用,你就能跳过漫长的摸索期,直接以老兵的水平干活。

这就是 SkillX 想做的事情——只不过"老兵"是 GLM-4.6,"新兵"是各种弱模型,"技能包"是一个结构化的技能知识库。

当前的 Agent 有什么问题?

现在的 LLM Agent 有一个根本性的缺陷:每次面对新任务都从零开始。

不管之前做过多少类似的任务,Agent 不会"记住"学到的经验。这就像一个医生每次看病都重新翻教科书,而不是利用积累的临床经验。

近年来有一些"自我进化"的 Agent 尝试解决这个问题——让 Agent 从过去的执行轨迹中学习。但论文指出了三个结构性缺陷:

  1. 孤立学习:每个 Agent 独立学习,重复发现相同的经验。就像每个医生都独立重新发明青霉素。
  2. 经验泛化差:从少量任务中提取的经验很难迁移到新任务。就像一个只看过感冒病例的医生突然要处理骨折。
  3. 能力天花板:Agent 只能从自己的探索中学习,经验的深度受限于自身能力。就像一个小学生不可能通过自学发现微积分。

SkillX 的核心洞察是:经验应该被结构化、分层、可复用地存储,而不是作为原始轨迹堆在那里。

三层技能体系:从战略到战术

SkillX 把经验组织成一个三层金字塔:

第一层:战略计划(Planning Skills)

最高层是"做什么"。面对一个任务,先制定一个高层计划——需要哪些步骤,每步的目标是什么。

比如"导出 Spotify 所有歌曲到 CSV 文件"这个任务,战略计划是:

  1. 认证 Spotify 账号
  2. 获取所有播放列表
  3. 收集所有歌曲 ID
  4. 去重
  5. 导出为 CSV

这不是代码,是结构化的自然语言步骤,每一步都标注了需要调用的关键 API。

第二层:功能技能(Functional Skills)

中间层是"怎么做"。每个功能技能是一个可复用的代码片段,封装了一个特定的操作。

比如 spotify_find_most_liked_song 这个技能:

  • 输入:一组歌曲 ID
  • 输出:点赞数最高的歌曲标题
  • 实现:遍历每个 ID,调用 apis.spotify.show_song 获取详情,比较点赞数
  • 工具依赖apis.spotify.show_song

每个技能都有标准化的 5 键结构:name(名称)、document(功能描述+参数+输出+注意事项)、content(实现代码)、tools(依赖的工具列表)、metadata(元信息)。

第三层:原子技能(Atomic Skills)

最底层是"怎么用"。原子技能是工具级别的使用示例——如何正确调用某个特定的 API。

比如"如何使用 apis.spotify.show_song 获取歌曲详情",包含具体的调用格式、参数说明、返回值结构。

这三层形成了一个从抽象到具体的完整链条:战略计划告诉你做什么,功能技能告诉你怎么做,原子技能告诉你工具怎么用。

全自动流水线:从轨迹到技能库

SkillX 的整个构建过程是全自动的,不需要人工干预。流水线分四个阶段:

阶段一:轨迹生成与技能提取

用强模型(GLM-4.6)在目标环境中执行任务,收集执行轨迹。然后从轨迹中提取三层技能:

  • 计划提取:从完整的执行轨迹中提炼出高层步骤
  • 功能技能提取:从每个步骤中提取可复用的代码模式
  • 原子技能提取:从 API 调用中提取工具使用模式

提取过程不是简单的"复制粘贴",而是抽象化——把具体的值替换成参数,把具体的步骤泛化为模式。

阶段二:迭代精炼(Iterative Skills Refinement)

这是最精巧的部分。技能库不是一次性构建的,而是多轮迭代

  1. 用当前技能库辅助 Agent 执行新任务
  2. 根据执行反馈,修改/合并/过滤技能
  3. 更新技能库
  4. 重复

每一轮迭代都有三种操作:

  • 修改:根据新经验改进现有技能
  • 合并:把相似的技能合并成一个更通用的技能
  • 过滤:删除冗余或低质量的技能

经过三轮迭代,AppWorld 上的技能库从 72 个计划精炼到最终版本,功能技能和原子技能也在不断优化。

阶段三:探索式扩展(Exploratory Skills Expansion)

这是打破"能力天花板"的关键。如果只从已有任务中提取技能,技能库的覆盖范围就受限于训练数据的多样性。

SkillX 让 Agent 主动探索环境——尝试新的操作组合,发现新的使用模式,然后从这些探索轨迹中提取新技能。

这就像一个厨师不仅从已有菜谱中学习,还会主动尝试新的食材搭配,发现新的美味组合。

阶段四:技能检索与注入

当弱模型需要执行任务时,SkillX 通过语义检索找到最相关的计划和技能,注入到系统提示中。

检索分两步:

  1. 先检索最相关的战略计划,重写为伪计划(pseudo-plan)
  2. 再根据伪计划中的步骤,检索对应的功能技能和原子技能

整个过程对弱模型来说是透明的——它只需要按照注入的技能指导执行即可。

实验结果:弱模型插上翅膀

论文在三个高难度基准上测试了 SkillX 的效果:

AppWorld(应用交互)

AppWorld 是一个模拟真实应用环境的基准,Agent 需要操作 Spotify、Venmo、Reddit 等应用的 API 完成复杂任务。

基础模型 无技能库 + SkillX 提升
GPT-4o-mini 32.5% 48.3% +15.8
Llama-3.1-8B 21.7% 35.8% +14.1
Qwen2.5-7B 26.7% 38.3% +11.6

GPT-4o-mini 插上技能包后,性能提升了近 50%。 这意味着一个轻量模型加上好的技能库,可以接近甚至超过未装备技能库的大模型。

BFCL-v3(函数调用)

Berkeley 函数调用基准测试:

基础模型 无技能库 + SkillX 提升
GPT-4o-mini 58.9% 71.1% +12.2
Llama-3.1-8B 36.7% 52.2% +15.5

τ²-Bench(长期对话式任务)

基础模型 无技能库 + SkillX 提升
GPT-4o-mini 22.5% 33.3% +10.8

关键发现

  1. 分层技能优于其他经验表示:相比原始轨迹(trajectories)、工作流(workflows)、洞见(insights),三层技能体系在所有基准上都表现最好
  2. 迭代精炼有效:三轮迭代后技能库质量显著提升,特别是合并操作减少了冗余
  3. 探索式扩展突破天花板:主动探索发现的技能覆盖了训练数据中不存在的操作组合
  4. 执行效率提升:装备技能库的 Agent 平均执行步骤更少,因为不需要"试错"

代码结构解析

SkillX 的代码仓库结构清晰:

SkillX/
├── core/skill.py          # 技能数据模型(5键schema)
├── extraction/            # 技能提取模块
│   ├── plan_extractor.py  # 计划提取
│   ├── skill_extractor.py # 功能/原子技能提取
│   └── tool_summary.py    # 工具摘要生成
├── filtering/             # 技能过滤模块
│   ├── general_filter.py  # 通用过滤器
│   └── pipeline.py        # 过滤流水线
├── expansion/             # 探索式扩展
│   ├── explorer.py        # 环境探索器
│   └── task_generator.py  # 任务生成器
├── inference/             # 推理与检索
│   ├── retriever.py       # 技能检索(embedding-based)
│   ├── plan_rewriter.py   # 计划重写
│   └── benchmarks/        # 基准测试适配器
├── pipeline.py            # 扩展提示词
└── skillx_db/             # 预构建的技能库
    └── appworld/
        ├── vanilla-iter1/ # 第1轮迭代
        ├── vanilla-iter2/ # 第2轮迭代
        └── vanilla-iter3/ # 第3轮迭代(最终版)

技能库的每个技能都遵循标准化的 5 键 schema:

{
    "name": "spotify_find_most_liked_song",
    "document": "功能描述、参数、输出、注意事项",
    "content": "实现代码",
    "tools": ["apis.spotify.show_song"],
    "metadata": {
        "skill_type": "functional",
        "source_tasks": ["task_1", "task_2"],
        "cluster_id": 3
    }
}

与 Claude Skills 的对比

论文在引言中直接对比了 Anthropic 的 Claude Skills:

维度 Claude Skills SkillX
格式 长上下文、渐进式披露 分层、条目化
存储 需要复杂的沙箱系统 轻量级检索模块
注入 需要多轮交互 一次性注入系统提示
跨模型迁移 困难(依赖 Claude 特有能力) 容易(标准化格式)
构建 半手动 全自动

SkillX 的设计哲学是:技能应该是"即插即用"的,不依赖特定模型的特殊能力。

工程师的实用指南

如果你想在自己的项目中使用 SkillX:

  1. 准备环境:需要目标环境的 API 文档和访问权限
  2. 选择骨干模型:用最强的可用模型(论文用 GLM-4.6)来生成技能库
  3. 运行提取流水线:让骨干模型执行任务,自动提取三层技能
  4. 迭代精炼:至少跑 2-3 轮迭代,合并和过滤冗余技能
  5. 部署检索:用 embedding 模型建立技能索引,推理时按需检索注入

注意事项

  • 技能库的质量高度依赖骨干模型的能力
  • 检索模块目前还是简化版(代码中有 TODO 标注),生产环境需要更强的 embedding 检索
  • 技能库是环境特定的——Spotify 的技能库不能直接用于 Slack

我的思考

SkillX 让我想到一个更深层的问题:AI Agent 的"经验"到底应该以什么形式存在?

现在大多数 Agent 框架(LangChain、AutoGPT、CrewAI)都在解决"如何让 Agent 执行任务"的问题,但很少有人认真思考"如何让 Agent 积累经验"。

SkillX 的答案是:经验应该是结构化的、分层的、可复用的。 这和人类的知识组织方式高度一致——我们有"方法论"(战略计划)、有"操作手册"(功能技能)、有"工具使用技巧"(原子技能)。

但这个方向还有很多未解的问题:

  • 技能库如何跨环境迁移?(Spotify 的技能能迁移到 Apple Music 吗?)
  • 技能库如何随着环境变化自动更新?(API 改版了怎么办?)
  • 多个技能库如何组合?(Spotify + Venmo + Reddit 的技能能协同工作吗?)

也许未来会出现一个"技能市场"——不同的团队贡献不同环境的技能库,Agent 可以像安装插件一样组合使用。这将是 Agent 从"工具"走向"平台"的关键一步。


论文信息

  • 标题: SkillX: Automatically Constructing Skill Knowledge Bases for Agents
  • 作者: Chenxi Wang, Zhuoyun Yu, Xin Xie 等(浙江大学)
  • arXiv: 2604.04804(v2, 2026-04-19)
  • 代码: github.com/zjunlp/SkillX
  • 许可证: MIT

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录