先说背景
Anthropic 提出 Agent Skills 概念后,社区里很快就冒出了成千上万的 Skills。但一直没人系统性地回答一个问题:这些 Skills 到底有没有用?
SkillsBench 团队干了件硬核的事:84 个任务,覆盖 11 个领域,跑了 7,308 条轨迹,测试了 7 种模型配置。结果出来之后,我觉得挺值得每个搭 Agent 的人看看的。
人写的 Skills 远好过模型生成的
这个数据让我有点意外:
- 人工编写的 Skills:平均提升 +16.2%
- 模型自生成的 Skills:平均 -1.3%
研究原文有句话说得很到位:"Models cannot reliably author the procedural knowledge they benefit from consuming."——模型没法可靠地写出它自己受益的那种程序性知识。
为什么?模型确实能识别出"这里需要领域知识",但它生成的步骤往往太笼统(比如"用 pandas 处理数据"),缺具体细节(没有实际 API 调用),或者搞错重点(列了一堆工具名但不讲工作流)。
所以别指望让 Agent 自己总结怎么做事,Skills 得靠人来提炼领域经验。
给 Agent 塞太多 Skills 反而更差
每个任务配多少个 Skills 最优?数据是这样的:
- 1 个 Skill:+17.8%
- 2-3 个 Skill:+18.6%(最优)
- 4 个以上:+5.9%(明显下滑)
没想到吧?给得越多效果越差。原因其实也好理解——认知过载。Agent 面对太多选项时要么选择困难,要么硬把不相关的 Skill 套到当前任务上。
实操建议是每个任务配 2-3 个 Skills 就够了。如果你在做 Skill 检索,优先返回最相关的几个,别罗列所有"可能相关"的。
详细但别太长
这个发现我也觉得挺有意思:
- Detailed(详细):+18.8%
- Compact(简洁):+17.1%
- Standard(标准):+10.1%
- Comprehensive(全面):-2.9%
"Comprehensive"——听起来最美好的那个选项,效果反而是负的。道理也不复杂:过长的文档占用宝贵的 context 预算,Agent 很难从长篇大论里定位关键步骤,重要信息被噪声淹没。
控制在 800-1500 tokens 比较好。聚焦核心步骤,细节可以放在代码示例里。
要写"怎么做",不是写"是什么"
SkillsBench 对什么算 Skills、什么不算,有很清晰的界定:
- 系统 Prompt → 不算,缺乏结构化组件
- Few-shot 示例 → 不算,陈述性的不是程序性的
- RAG 检索结果 → 不算,事实性的不是流程性的
- 工具文档 → 不算,描述能力但不指导使用
- 程序性指导 → 这才是 Skills,描述"怎么做"
举个例子:
- ❌ "Python 是编程语言"(是什么)
- ✅ "用 pandas 读取 CSV 的三步流程"(怎么做)
Skills 必须包含可执行的步骤、代码示例和验证检查点。
垂直领域收益最大
各领域 Skills 带来的提升差异巨大:
- 医疗健康:+51.9%(专业流程知识模型严重缺乏)
- 制造业:+41.9%(特定领域的经验规则)
- 软件工程:+4.5%(模型预训练知识已经够多了)
- 数学:+6.0%(靠逻辑推理而非流程)
这个规律很直觉:模型越不熟的领域,Skills 价值越大。如果你在做通用编程类的 Agent,写 Skills 收益确实有限。但如果是医疗、制造、金融这些垂直领域,花时间打磨 Skills 绝对值得。
模块化设计和验证
最后两个原则放在一起说。
Skills 的设计要考虑复用性——适用于一类任务而不是单一实例,基于文件系统方便编辑和版本管理,多个 Skills 之间可以组合使用。一个 Skill 解决一类问题,别写成一次性的硬编码。
另外,每个 Skill 都应该配套验证方法。SkillsBench 用的是确定性验证器,不是让 LLM 来评判,而是程序化的断言。实操上来说,写完 Skill 之后在测试任务上跑通再投入使用,成功率低于 70% 的就该重写。
几个常见的坑
顺便整理一下避坑清单:
- ❌ 百科全书式文档 → ✅ 只写完成任务最常用的 3 个 API
- ❌ 硬编码任务细节(如"处理 user_data_2024.csv")→ ✅ 泛化描述(如"处理 CSV 格式的用户数据")
- ❌ 纯文字长篇描述算法原理 → ✅ 提供可复制的代码片段
- ❌ 覆盖 20 个边界情况 → ✅ 聚焦 80% 场景的核心路径
- ❌ 让模型自己写 → ✅ 人工提炼 + 验证 + 迭代
说到底,SkillsBench 这篇研究最核心的一句话是:Skills 的有效性不是必然的,而是设计出来的。同一个模型,好的 Skills 能提升 50%,差的反而拉低 40%,差距不在模型能力,在于你怎么写。这可能是 Agent 时代一门新的手艺——不是写代码,而是写"怎么做"。对于我们这些搭 Agent 的人来说,与其花时间堆功能,不如先把 Skills 写好。