Anthropic 发布 Agent Skills:让 AI 智能体学会“按需加载“专业技能
随着大模型能力的飞速提升,我们已经可以构建与真实环境深度交互的通用型智能体。以 Claude Code 为例,它能通过本地代码执行和文件系统操作,完成跨领域的复杂任务。
但问题也随之而来:智能体越来越强大,却也越来越"杂而不专"。
这就像一个什么都会的全能选手,看似无所不能,实际上在每个垂直领域都只是"略懂皮毛"。我们需要一种更具组合性、可扩展性和可移植的方法,让智能体能够快速获得领域专长。
Anthropic 给出的答案是:Agent Skills。
什么是 Agent Skills?
简单来说,Skills 是一个包含指令、脚本和资源的文件夹,智能体可以动态发现和按需加载这些技能包。
这个设计理念很有意思:与其为每个用例都构建一个定制化的 Agent,不如把专业知识打包成可组合的"技能包",让通用智能体随时调用。
打个比方,为新员工准备一份入职指南,和为每个岗位都招一个新人,哪个更高效?答案不言自明。Skills 做的就是这件事——把你的领域专长浓缩成可复用的资源,让 AI 智能体"拿来即用"。
更重要的是,现在任何人都可以创建和分享 Skills。这意味着社区的智慧可以快速流通,你不需要从零开始造轮子。
Skill 的核心结构

一个 Skill 本质上就是一个目录,核心是其中的 SKILL.md 文件。
以 Anthropic 官方的 PDF Skill 为例:Claude 本身就能理解 PDF 内容,但对 PDF 的编辑能力有限(比如填写表单)。PDF Skill 就是为了补足这块短板。
SKILL.md 文件必须以 YAML frontmatter 开头,包含两个关键字段:name 和 description。Agent 启动时,会将所有已安装 Skill 的名称和描述预加载到 system prompt 中。

这里有一个精妙的设计:渐进式披露(Progressive Disclosure)。

第一层:只加载 name 和 description。这足以让 Claude 判断"什么时候该用这个技能",而不需要一次性把所有内容塞进上下文。
第二层:当 Claude 判断当前任务需要某个 Skill 时,才会读取完整的 SKILL.md 内容。
第三层:如果 Skill 足够复杂,可以将部分内容拆分到其他文件中(如 forms.md、reference.md),在 SKILL.md 中引用即可。Claude 会按需加载这些"子模块"。

这种设计的好处是什么?**理论上,打包到一个 Skill 中的上下文数量可以是无限的。**因为不需要一次性全部加载,而是像翻阅一本目录清晰的手册,用到哪章翻哪章。
一个完整的调用流程
让我用一个具体场景串起整个流程:
![![[Pasted image 20260202171344.png]]](https://i-blog.csdnimg.cn/direct/1300ef50397a488abca3252944bd3e74.png)
- 预加载阶段:Agent 启动,读取所有 Skill 的 name 和 description
- 触发阶段:用户提到"帮我填一下这个 PDF 表单"
- 加载阶段:Claude 判断任务与 PDF 相关,加载
pdf/SKILL.md - 深入阶段:
SKILL.md中提到表单填写的详细指令在forms.md,Claude 继续读取 - 执行阶段:根据加载的指令完成任务
整个过程,Claude 只加载了真正需要的上下文,既节省了 token,又保证了执行的精准度。
Skills + 代码执行:确定性的力量
Skills 不只是文本指令的集合,还可以包含可执行的代码。
这一点非常关键。大模型擅长理解和生成,但某些操作用传统代码执行会更高效、更可靠。比如对一个列表排序,用 token 生成的方式远比直接跑一个排序算法昂贵得多。更重要的是,代码的执行结果是确定性的,而 LLM 的生成本质上是概率性的。
PDF Skill 里就包含了一个预写好的 Python 脚本,用于读取 PDF 并提取所有表单字段。Claude 可以直接运行这个脚本,而不需要把脚本内容或 PDF 文件加载到上下文中。

代码是确定性的,工作流也因此具备了一致性和可重复性。 这对于生产环境来说至关重要。
开发 Skills 的四条实践建议
如果你想开发自己的 Skills,Anthropic 给出了四条实用建议:
1. 从评估开始,而非从设计开始
不要凭空想象 Agent 需要什么能力。正确的做法是:在有代表性的任务上运行 Agent,观察它在哪些地方卡住或表现不佳,然后针对性地构建 Skill 来补足短板。
2. 为规模化设计结构
当 SKILL.md 变得臃肿时,果断拆分。如果某些上下文很少同时使用,保持路径分离可以显著减少 token 消耗。另外要明确区分:哪些代码是让 Claude 直接执行的工具,哪些是作为参考文档读入上下文的。
3. 从 Claude 的视角思考
观察 Claude 实际上是怎么使用你的 Skill 的。特别注意:是否有预期之外的执行路径?是否过度依赖某些上下文?name 和 description 写得是否足够清晰?Claude 正是根据这两个字段来判断是否触发某个 Skill。
4. 和 Claude 一起迭代
这条建议很有意思:让 Claude 把它成功完成任务的方法和常犯的错误,自己整理成可复用的上下文和代码。如果执行偏离预期,让它自我反省问题出在哪里。这样能发现 Claude 真正需要的上下文,而不是你预设的。
安全性提醒
Skills 通过指令和代码赋予 Claude 新能力,但这也意味着恶意的 Skill 可能带来安全风险——比如数据泄露或执行非预期操作。
只从受信任的来源安装 Skills。 如果必须使用不太熟悉的来源,务必在使用前仔细审查 Skill 中的所有文件,特别是代码依赖和外部网络连接。
写在最后
Skills 目前已经在 Claude.ai、Claude Code、Claude Agent SDK 和 Claude Developer Platform 全面支持。
Anthropic 还透露了一个更有野心的方向:希望未来 Agent 能够自己创建、编辑和评估 Skills,把自身的行为模式编码成可复用的能力。
这让我想到一个有趣的图景:AI 智能体不仅能使用人类打包好的技能包,还能在实践中自我总结、自我进化。就像一个员工不仅能照着 SOP 工作,还能根据经验不断优化 SOP 本身。
Skills 的概念和格式都很简单,但正是这种简单,让它具备了极强的扩展性和普适性。好的抽象往往如此——足够简单,以至于能承载无限的复杂。
更多推荐



所有评论(0)