共计 2258 个字符,预计需要花费 6 分钟才能阅读完成。
https://www.zhihu.com/video/1963241813205849712
根据 Anthropic 的官方说明:
Skills 是一个包含指令、脚本和资源的文件夹,Claude 能够动态加载这些内容,从而在特定任务中提升其性能。这些技能教会 Claude 如何以可重复的方式完成特定任务,诸如根据公司品牌规范撰写文档、使用特定流程进行数据分析,或是自动化个人任务。
换句话说,Skills 可以看作是增强 Claude 功能的模块化能力 。每个 Skill 都包含指令、元数据以及可选的资源(例如脚本和模板),在执行相关任务时,Claude 会自动调用这些内容。
因此,Skills 和 MCP Tools 实际上都是 LLM 的扩展能力,但 Skills 的定义显然更为复杂。

让我们更详细地探讨 Skills 的文件系统设计,以 PDF Skill(赋予模型理解和编辑 PDF 文档的能力)为例。首先,这个文件夹必须包含一个名为 SKILL.md 的文件,该文件需以 YAML frontmatter 开头,其中包含一些必需的元数据,例如名称(name)和描述(description)。

可以看出,YAML frontmatter 实际上是对这个 Skill 的简要说明,其性质与 Tool 的说明类似。在启动时,Agent 会将所有已安装 Skill 的名称和描述预加载到系统提示词中。这种轻量化的设计意味着可以安装大量 Skills,而不会占用过多的上下文空间,Claude 只需知道每个 Skill 的存在及其使用时机。
Metadata 只是 SKILL.md 文件的第一层内容。当用户请求的内容与该 Skill 的描述相符时,Claude 将通过 Bash 从文件系统中读取 SKILL.md 文件,并加载第二层内容:Instructions,到上下文窗口中。Instructions 是 SKILL.md 文件的主体部分,采用 Markdown 格式。它实际上是 Metadata 的细化,详细描述了使用该能力的工作流程、最佳实践和使用指导等信息。
若该 Skill 的复杂性较高,可能会包含过多的内容,此时就无法完全放入单个 SKILL.md 文件中,因为 LLM 的上下文长度是有限的。在这种情况下,可以在 Skill 目录中捆绑额外文件,并在 SKILL.md 中通过名称引用它们。这些额外的文件构成了第三层内容,Claude 仅在需要时会读取这些文件。例如,在 PDF Skill 中,SKILL.md 引用了两个附加文件(reference.md 和 forms.md),将填写表单的指令移动到单独的 forms.md 文件中,可以保持核心 Skill 的简洁,同时确保 Claude 仅在需要填写表单时才会读取 forms.md。

具体来说,第三层内容包括捆绑的资源和代码,这些内容只有在需要时才会被加载。

它们分为三类:
- 指令:额外的 Markdown 文件(如 FORMS.md、REFERENCE.md),包含专业指导和工作流程;
- 代码:可执行脚本(如 fill_form.py、validate.py),Claude 通过 Bash 运行;脚本提供确定性操作且不占用上下文;
- 资源:参考材料,包括数据库 schema、API 文档、模板或示例。
这种层次化的设计理念是使 Skills 灵活且可扩展的核心原则。可以将其比作一本结构清晰的手册,先有目录,再有具体章节,最后是详细附录。Skills 让 Claude 仅在需要时加载信息,从而减轻 LLM 的上下文负担。

以下是 Claude 如何加载并使用 PDF Skill 的示例:
- 首先,上下文窗口包含核心系统提示和每个已安装技能的元数据,以及用户的初始消息;
- Claude 调用 Bash 工具读取 pdf/SKILL.md 以触发 PDF 技能;
- Claude 选择读取技能捆绑的 forms.md 文件;
- 最后,Claude 在加载了 PDF 技能的相关说明后,开始执行用户的任务。

PDF Skill 中包含一个预先编写的 Python 脚本 extract_fields.py,用于读取 PDF 并提取所有表单字段。Claude 可以运行该脚本,而无需将脚本或 PDF 加载到上下文中。由于代码具有确定性,该工作流程稳健且可重复。

从上述 Skill 的定义和使用可以看出,Skill 需要与 LLM 紧密配合,并涉及多次交互。这一点与 MCP Tool 有明显区别。MCP Tool 的定义相对简单且具体,且需要一次性加载到 LLM 的系统提示词中:

因此,MCP Tool 适合于非常具体的能力配置,例如单纯读取 PDF 文档并返回具体内容,这种情况适合使用 MCP Tool,Agent 调用 MCP Server 后,Server 执行任务并返回结果。然而,对于复杂的能力配置,单凭简单的工具说明难以满足需求,此时采用层级设计的 Skill 更为合适。
官方也对 Skills 与 MCP 之间的区别进行了说明:
MCP 将 Claude 连接到外部服务和数据源,而 Skills 则提供完成特定任务或工作流的操作指令。两者可以结合使用:MCP 提供工具访问能力,Skills 教 Claude 如何高效使用这些工具。


