原文链接:Equipping agents for the real world with Agent Skills
Claude 功能强大,但实际工作离不开过程性知识与业务场景背景。为此,我们推出 Agent Skills—— 一种通过文件和文件夹构建专业智能体的全新方式。
随着模型能力的提升,我们如今已能构建可与完整计算环境交互的通用智能体。例如 Claude Code,可借助本地代码执行和文件系统完成跨领域复杂任务。但随着这些智能体愈发强大,我们需要更具可组合性、可扩展性和可移植性的方式,为其赋予特定领域专业能力。
这一需求促使我们打造了 Agent Skills:它是包含指令、脚本和资源的结构化文件夹集合,智能体可动态发现并加载这些内容,从而在特定任务中表现更出色。Skills 通过将专业知识封装为 Claude 可调用的组合式资源,拓展了 Claude 的能力边界,让通用智能体转变为贴合具体需求的专业智能体。
为智能体构建 Skill,就如同为新员工准备入职指南。无需为每个使用场景单独构建零散的定制化智能体,现在任何人都能通过捕捉和分享过程性知识,为智能体添加可组合的专业能力。本文将详细解释 Skills 的定义、工作原理,并分享构建专属 Skill 的最佳实践。

1 Skill 的构成
要直观了解 Skills 的运作方式,我们以一个实际案例展开:该 Skill 为 Claude 近期推出的文档编辑功能提供支持。Claude 本身已具备强大的 PDF 理解能力,但在直接操作 PDF(如填写表单)方面存在局限,而这款 PDF Skill 恰好弥补了这一短板。
从本质来看,一个 Skill 是包含SKILL.md文件的目录。该文件必须以 YAML 前置元数据开头,包含两项必填内容:名称(name)和描述(description)。智能体启动时,会将所有已安装 Skill 的名称和描述预加载到系统提示词中。
这些元数据构成了渐进式披露的第一层级:它仅提供足够信息,让 Claude 判断何时应使用某个 Skill,而无需将全部内容加载到上下文。文件的正文部分则是第二层级的详细信息。当 Claude 认为某一 Skill 与当前任务相关时,会通过读取完整的SKILL.md文件将该 Skill 加载到上下文。

随着 Skill 复杂度提升,单一SKILL.md文件可能无法容纳全部内容,或部分内容仅适用于特定场景。这种情况下,Skill 可在目录中包含额外文件,并在SKILL.md中通过文件名引用这些文件。这些关联的额外文件构成了第三层级及更深层次的细节,Claude 仅会在需要时自行导航和获取。
在下方展示的 PDF Skill 中,SKILL.md引用了两个额外文件(reference.md和forms.md),这些文件与核心的SKILL.md一同打包。通过将表单填写说明移至独立文件forms.md,Skill 创作者得以保持核心文件的简洁性,同时确保 Claude 仅在执行表单填写任务时才读取forms.md的内容。

渐进式披露 是 Agent Skills 具备灵活性和可扩展性的核心设计原则。就像一本结构清晰的手册 —— 先有目录,再分章节,最后附上详细附录 ——Skills 让 Claude 仅在需要时才加载对应信息。

具备文件系统和代码执行工具的智能体,在处理特定任务时无需将 Skill 的全部内容载入上下文窗口。这意味着,一个 Skill 可容纳的上下文信息实际上不受限制。
2 技能与上下文窗口
下图展示了用户消息触发 Skill 时,上下文窗口的变化过程:

- 初始状态:上下文窗口包含核心系统提示词、所有已安装 Skill 的元数据,以及用户的初始消息;
- Claude 通过调用 Bash 工具读取pdf/SKILL.md的内容,触发 PDF Skill;
- Claude 选择读取该 Skill 打包的forms.md文件;
- 加载完 PDF Skill 中的相关指令后,Claude 开始执行用户的任务。
3 技能与代码执行
Skills 还可包含代码,供 Claude 根据任务性质自行决定是否作为工具执行。
大型语言模型在诸多任务中表现优异,但某些操作更适合通过传统代码执行完成。例如,通过生成令牌排序列表的成本远高于直接运行排序算法。此外,许多应用场景需要只有代码才能提供的确定性可靠性。
在上述 PDF Skill 案例中,包含一个预编写的 Python 脚本,可读取 PDF 并提取所有表单字段。Claude 无需将脚本或 PDF 本身加载到上下文,即可直接运行该脚本。得益于代码的确定性,这一工作流程具备一致性和可重复性。

4 技能的开发与评估
以下是启动 Skill 创作和测试的实用指南:
- 从评估入手:让智能体执行代表性任务,观察其在哪些环节遇到困难或需要额外上下文,明确能力缺口。随后逐步构建 Skill 以弥补这些不足。
- 结构化设计以支持扩展:当SKILL.md文件过于庞大时,可将内容拆分至独立文件并建立引用。若某些上下文互斥或极少同时使用,保持其路径独立可减少令牌消耗。此外,代码既可作为可执行工具,也可充当文档,需明确 Claude 是应直接运行脚本,还是将其作为参考内容读取到上下文。
- 从 Claude 的视角思考:观察 Claude 在实际场景中对 Skill 的使用情况,并据此迭代优化。留意是否存在意外执行路径或对特定上下文的过度依赖,同时重点打磨 Skill 的名称和描述——Claude 会依据这些信息判断是否触发该 Skill。
- 与 Claude 协同迭代:在与 Claude 协作完成任务的过程中,可要求它将成功经验和常见错误整理为 Skill 中可复用的上下文和代码。若 Claude 使用 Skill 执行任务时出现偏差,可让它自我反思问题所在。这一过程能帮助你精准定位 Claude 实际需要的上下文,而非仅凭预判进行设计。
5 使用 Skills 的安全注意事项
Skills 通过指令和代码为 Claude 赋予新能力,这既让它功能强大,也意味着恶意 Skill 可能会给使用环境带来漏洞,或诱导 Claude 泄露数据、执行非预期操作。
我们建议仅从可信来源安装 Skill。若需安装来源可信度较低的 Skill,使用前务必进行全面审计:首先读取 Skill 打包的所有文件内容,了解其功能用途,尤其关注代码依赖项以及图片、脚本等打包资源。同时,警惕 Skill 中要求 Claude 连接潜在不可信外部网络资源的指令或代码。
6 Skills 的未来发展
目前,Agent Skills 已在 Claude.ai、Claude Code、Claude Agent SDK 以及 Claude 开发者平台全面支持。
未来几周,我们将持续添加新功能,覆盖 Skill 的创建、编辑、发现、分享和使用全生命周期。我们尤其期待 Skills 能帮助企业和个人与 Claude 共享自身的业务场景和工作流程。此外,我们还将探索 Skills 如何与模型上下文协议(MCP)服务器互补,教会智能体处理涉及外部工具和软件的更复杂工作流程。
长远来看,我们希望让智能体能够自主创建、编辑和评估 Skills,将自身的行为模式固化为可复用的能力。
Skills 概念简洁,格式也相应简单。这种简洁性让企业、开发者和终端用户都能轻松构建定制化智能体,为其赋予新能力。
我们期待看到大家利用 Skills 创造出更多实用功能。如需立即上手,可查阅我们的 Skills 文档和使用指南。




