原文:06-equipping-agents-for-the-real-world-with-agent-skills.md 来源:https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
用 Agent Skills 武装 Agent 应对真实世界
发布于 2025 年 10 月 16 日
Claude 很强,但真实工作需要程序性知识和组织上下文。介绍 Agent Skills——用文件和文件夹构建专业化 Agent 的新方式。
更新(2025-12-18):我们已将 Agent Skills 作为开放标准发布,支持跨平台便携。
随着模型能力提升,我们能构建可以与完整计算环境交互的通用 Agent。例如 Claude Code 用本地代码执行和文件系统跨领域完成复杂任务。但随着 Agent 变强,我们需要更可组合、可扩展、可移植的方式为它们配备领域特定专长。
由此我们 创造了 Agent Skills:组织好的指令、脚本和资源文件夹,Agent 可以动态发现并加载,以更好执行特定任务。Skills 通过把你的专长打包为可组合资源扩展 Claude 能力,把通用 Agent 转换为符合你需求的专业 Agent。
为 Agent 构建一个 Skill 就像为新员工准备入职指南。任何人都能通过捕捉和分享自己的程序性知识,用可组合能力专业化它们的 Agent,而不是为每个用例构建分散的、定制设计的 Agent。
一个 Skill 是包含 SKILL.md 文件的目录——指令、脚本和资源的有组织文件夹,赋予 Agent 额外能力。
Skill 的解剖
来看一个真实示例:驱动 Claude 最近发布的文档编辑能力的 Skill 之一。Claude 已知很多关于理解 PDF 的内容,但在直接操作 PDF(如填表)方面有限。这个 PDF Skill 给 Claude 添加这些新能力。
最简形式:Skill 是包含 SKILL.md 文件的目录。该文件必须以 YAML frontmatter 开头,包含必需元数据:name 和 description。
启动时 Agent 把每个已安装 Skill 的 name 和 description 预加载到系统提示中。
这个元数据是渐进披露(progressive disclosure)的第一层:提供刚好够 Claude 知道每个 Skill 何时应被使用的信息,而不把全部内容加载到上下文。文件主体是第二层细节——如果 Claude 认为该 Skill 与当前任务相关,会通过读取完整 SKILL.md 加载到上下文。
随 着 Skill 变复杂,可能包含太多上下文,无法塞进单个 SKILL.md,或包含只在特定场景相关的上下文。这时 Skill 可以在目录中捆绑额外文件,并从 SKILL.md 通过文件名引用。这些额外链接文件是第三层(及更深)的细节,Claude 可以选择仅在需要时浏览和发现。
在 PDF Skill 示例中,SKILL.md 引用两个额外文件(reference.md 和 forms.md)。把表单填写指令移到独立文件(forms.md),Skill 作者保持核心 Skill 精简,信任 Claude 仅在填表时才读 forms.md。
渐进披露是让 Agent Skills 灵活可扩展的核心设计原则。像组织良好的手册——从目录开始,到具体章节,最后是详细附录——Skills 让 Claude 仅在需要时加载信息。
带文件系统和代码执行工具的 Agent,处理特定任务时不需要把整个 Skill 读进上下文窗口。这意味着单个 Skill 中可捆绑的上下文量在实际中无界。
Skills 与上下文窗口
当用户消息触发 Skill 时,上下文窗口的变化序列:
- 起初上下文窗口包含核心系统提示、每个已安装 Skill 的元数据、用户初始消息
- Claude 通过 Bash 工具读取
pdf/SKILL.md触发 PDF Skill - Claude 选择读取 Skill 捆绑的
forms.md文件 - 最后 Claude 在加载了 PDF Skill 的相关指令后推进用户的任务