内容来源:DataLLM Lab。https://www.datallmlab.com/blog/claude-code-skills.html
原题:What Are Claude Code Skills? Guide & How to Build One
原发布时间:2026-06-18

Claude Code Skill 是一个包含 SKILL.md 文件、由 Claude 按需加载的文件夹——Anthropic 将 Agent Skills 定义为“由指令、脚本和资源组成的结构化文件夹,智能体可以发现并动态加载它们,从而更好地完成特定任务”。你只需编写一次指令;Claude 会在启动时读取单行描述,只有当请求与其匹配时才加载完整正文。本指南将说明 Skill 到底是什么、它与 MCP 服务器和斜杠命令有何不同(斜杠命令现在采用相同机制)、提供可直接复用的最小 SKILL.md、介绍各种 Skill 在磁盘上的位置,以及哪些仓库值得信任——内容截至 2026 年 7 月,每项具体声明均指向 Anthropic 文档或真实 GitHub 仓库。

Claude Code Skills 详解——一个包含 SKILL.md、由 Claude 按需加载的文件夹

归档校注

• 这篇文章对 Claude Platform/API 与 Claude Code 的 Skill 格式差异区分得较为严谨,主要路径、调用方式、实时更新、命名优先级和安全建议均与 2026-07-22 的官方文档基本一致。
• 文中反复使用的“每个 Skill 约 100 Token”“正文小于 5,000 Token”是 Claude Platform 文档中的近似值,不是 Claude Code 的硬限制。Claude Code 的技能清单预算按模型上下文的 1% 缩放,单条描述与 when_to_use 合计最多展示 1,536 个字符。
• 调用后的 SKILL.md 会留在会话上下文中,但自动压缩只为每个 Skill 重新附加前 5,000 Token,所有 Skill 共享 25,000 Token 预算;原文的三级加载图没有体现这一生命周期。
• “脚本内容永不进入上下文”和“Level 3 资源无限”属于简化表述。脚本直接执行时通常只有输出进入上下文,但 Skill 也可以要求 Claude 阅读脚本或参考文件;实际读取的内容仍消耗上下文并受产品、权限与文件系统限制。
• 当前插件 Skill 的 name 不仅影响插件根目录 SKILL.md,也可替换 plugin/skills/<dir>/SKILL.md 的命令末段;插件前缀仍保留。这一行为在 v2.1.216 前后发生过变化。
• “MCP 工具 Schema 都在启动时加载”并非普遍成立,当前工具搜索与延迟加载机制可以减少初始上下文中的 MCP Schema。
• “同一 SKILL.md 可驱动任意模型”只表示格式具有一定可移植性;不同 Agent 对 Frontmatter 字段、工具、沙箱与调用语义的支持并不相同。DataLLM 的 300 多个模型、自动故障转移及“永不宕掉”等属于厂商推广主张,未在本归档中独立测试。
• 抓取时该站点 TLS 证书已过期,因此仅对公开页面临时关闭证书验证;HTML、头图和内嵌 SVG 均已通过固定字节数与 SHA-256 校验。
• 页面没有视频、音频或 iframe;原始头图与正文内嵌的渐进式披露 SVG 均已归档。

详细结构化校注见 source_snapshot.json

原文译文

Claude Code Skill 是什么

Skill 是一个包含 SKILL.md 文件的文件夹,Claude Code 会按需加载它,以便更好地完成某项特定任务。 Anthropic 的标准定义是:Agent Skills 是“由指令、脚本和资源组成的结构化文件夹,智能体可以发现并动态加载它们,从而更好地完成特定任务”。按照 Claude Code 自己的说法:“你创建一个包含指令的 SKILL.md 文件,Claude 就会把它加入自己的工具箱。Claude 会在相关情境下使用 Skills,你也可以通过 /skill-name 直接调用。”

理解其他一切的关键心智模型是:启动时,Claude 只会读取 Skill 的简短描述(大约 100 Token);只有当你的请求与之匹配时,才会加载完整指令。它就像书架上的参考书,而不是钉在每条提示词后面的一段话。这种按需加载方式被 Anthropic 称为渐进式披露,正是它让你可以安装数十个 Skills 而不会让上下文膨胀。如果你对 CLI 本身还不熟悉,请先阅读我们的 Claude Code 使用指南,之后再回到这里。

SKILL.md 的结构

每个 Skill 都需要一个 SKILL.md 文件,其中先是位于 --- 标记之间的 YAML Frontmatter,随后是 Markdown 指令。 两个平台对规则的定义略有不同,因此你必须明确自己的目标平台:

平台/API 规范namedescription 列为必填项,并设置了硬性限制:name 最长 64 个字符,只能包含小写字母、数字和连字符,不允许 XML 标签,也不能包含保留词 anthropicclaudedescription 不得为空,最长 1,024 个字符,同样不允许 XML 标签。
具体到 Claude Code,所有 Frontmatter 字段都是可选的,只推荐填写 description。省略 name 时,默认使用目录名称;省略 description 时,Claude 会使用 Markdown 正文的第一段。

除了这一个文件外,Skill 还可以包含三个可选子目录,每个目录都有明确用途:

路径 用途 加载方式
SKILL.md 必需入口——Frontmatter + 指令 触发时加载正文
scripts/ Claude 通过 Bash 运行的可执行代码 运行,但不读入上下文
references/ 按需加载的文档 按需加载
assets/ 模板与配套文件 按需加载

以上信息的来源。 字段约束和目录结构分别来自 Anthropic 的 Agent Skills 概览(平台规范)和 Claude Code Skills 文档(核对于 2026 年 7 月)。引用每项声明时应选择正确的平台文档:API 规范比 Claude Code 更严格。

Skill、MCP 与斜杠命令对比

Skills 和斜杠命令现在采用相同机制;MCP 则是另一种互补机制。 这是人们真正关心的对比,直接看表:

Skill MCP 服务器 斜杠命令
它是什么 指令文件夹 + 可选脚本 对外提供外部工具/数据的运行中服务器 Skill(已并入)
主要用途 封装流程知识/工作流 集成外部工具与软件 按名称调用 Skill
存在形式 .claude/skills/<name>/SKILL.md 已配置的服务器进程 .claude/commands/<name>.md 或 Skill
调用方式 自动匹配或 /name Claude 在相关情境下调用其工具 /name
上下文成本 触发前约 100 Token 工具 Schema 在启动时加载 与 Skill 相同
能否运行代码? 可以——通过 Bash 运行打包脚本 可以——在服务器内运行 通过底层 Skill 运行

事实表特别明确了两点:

斜杠命令 = Skills。 “自定义命令已经并入 Skills。”.claude/commands/deploy.md 文件与 .claude/skills/deploy/SKILL.md Skill 都会创建 /deploy,工作方式也相同。旧的 .claude/commands/ 文件仍然有效;如果 Skill 与命令重名,以 Skill 为准。
MCP 是互补机制,并未被取代。 Anthropic 表示:“Skills 可以通过教智能体执行涉及外部工具和软件的复杂工作流,与模型上下文协议(MCP)服务器形成互补。”Skill 甚至可以包含由 Claude 通过 Bash 作为工具运行的代码——这与 MCP 的工具集成有所不同。经验法则是:用 Skill 编排工作流,用 MCP 连接系统。如果你正在接入 MCP 风格的思维循环,我们的 Claude Code 顺序思考指南很适合配合阅读。

构建一个最小 Skill

最小可用 Skill 只需要一个文件夹和一个文件。 创建目录,放入 SKILL.md,Claude Code 就会自动发现它——无需安装;如果会话开始时 .claude/skills/ 文件夹已经存在,也无需重启。

# 仅限当前项目:只在这个仓库中生效
mkdir -p .claude/skills/summarize-changes
$EDITOR .claude/skills/summarize-changes/SKILL.md

下面是一份最小 SKILL.md,由 Frontmatter 和指令组成。在 Claude Code 中可以完全省略 name(它默认使用文件夹名 summarize-changes),不过写上它和一段准确的 description 仍是良好实践,因为 Claude 正是通过描述进行匹配:

---
name: summarize-changes
description: 将当前 Git diff 总结为简短、便于审查的变更日志,
  并按领域分组。当用户要求总结变更、编写变更日志,或想在提交前
  了解改动内容时使用。
---

# 总结变更

运行 `git diff --staged`(如果暂存区没有内容,则改用 `git diff`),
然后输出:

1. 用一行概括整体变更。
2. 按领域(API、UI、测试、文档)分组列出要点,影响最大的在前。
3. 对涉及身份验证、迁移或资金路径的内容,附上一则简短的“风险”说明。

全文不超过 200 字。不要编造 diff 中不存在的变更。

这就是一份完整、有效的 Skill。现在输入 /summarize-changes 即可调用它;当你提出“为我刚暂存的内容写一份变更日志”之类的请求时,Claude 也会主动使用它。如果要扩展这项 Skill,可以添加 references/changelog-style.md 来记录内部规范,或添加 scripts/diffstat.sh,让 Claude 通过 Bash 运行脚本,而不把脚本内容读入上下文。Anthropic 建议将 SKILL.md 控制在 500 行以内,并把详细参考资料拆到单独文件中。

用一个密钥,在任意模型上运行由 Skill 驱动的智能体

Skills 是与模型无关的指令——同一份 SKILL.md 可以驱动 Claude、GLM 或开源模型。DataLLM Lab 通过一个兼容 OpenAI 的密钥路由 300 多个模型,并提供自动故障转移,因此你的智能体循环不会因单一提供商宕机而中断。

获取 API 密钥

浏览全部模型

Skills 存放在哪里,如何安装

Skill 的位置决定其作用范围;所谓安装,通常只是把文件夹放到正确位置。 Claude Code 有以下四种存储位置:

作用范围 路径 适用对象
企业级 托管设置 组织中的所有用户
个人级 ~/.claude/skills/<name>/SKILL.md 你的所有项目
项目级 .claude/skills/<name>/SKILL.md 仅当前项目
插件级 <plugin>/skills/<name>/SKILL.md 启用该插件的环境

当不同层级的两个 Skills 重名时,优先级为企业级 > 个人级 > 项目级;其中任何一个都会覆盖同名的内置 Skill。插件 Skills 使用 plugin-name:skill-name 命名空间,因此绝不会发生冲突。

以下几个操作细节值得了解:

实时重新加载。~/.claude/skills/、项目的 .claude/skills/,或 --add-dir 目录内的 .claude/skills/ 中添加、编辑或删除 Skill,会在当前会话内生效。只有在会话开始时并不存在顶层 skills/ 目录、之后才新建该目录时,才需要重启。
Monorepo 发现机制。 项目 Skills 会从启动目录的 .claude/skills/,以及向上直到仓库根目录的每一层 .claude/skills/ 中加载;随着你在子文件夹中工作,Claude Code 还会按需发现嵌套的 .claude/skills/ 目录。
插件市场。 一些第三方合集以插件形式安装。例如,BuilderIO 的仓库使用 /plugin marketplace add BuilderIO/skills,然后执行 /plugin install builder-skills@builder-skills(更多内容见仓库一节)。

跨平台注意事项。 Skills 可用于 Claude API(通过 skill_id 使用预构建或自定义 Skills)、Claude Code(仅支持基于文件系统的自定义 Skills,不支持 API 上传)以及 claude.ai(预构建 Skills,以及通过“设置 > 功能”以 ZIP 文件上传的自定义 Skills)。自定义 Skills 不会跨平台同步——磁盘上的 Skill 不会自动出现在 claude.ai 中。

调用、参数与控制

你可以输入 / 加目录名称来调用 Skill;当请求与描述匹配时,Claude 也会自动加载它。 注意一个细节:命令名称来自 Skill 的目录名称;Frontmatter 中的 name 只是显示名称(唯一例外是插件根目录中的 SKILL.md)。

Skills 支持参数,因此用起来很像命令:

$ARGUMENTS——把所有参数作为一个字符串。执行 /fix-issue 123 时,$ARGUMENTS 会被替换为 123
$ARGUMENTS[N]$N——从 0 开始的位置参数。
$name——在 Frontmatter 的 arguments 块中声明的命名参数。

Claude Code 还有两个专用开关,用来控制可以调用 Skill(默认情况下,你和 Claude 都能调用):

disable-model-invocation: true——只有用户可以调用;Claude 不会自动触发。
user-invocable: false——只有 Claude 可以调用;它不会出现在 / 菜单中。

此外还有动态上下文注入!`<command>` 行会在 Skill 内容送达 Claude 之前*运行一条 Shell 命令,并用其输出替换占位符(多行形式使用带有 ```! 标记的代码围栏)。需要强调的是:这是 Claude Code 完成的预处理,并不是 Claude 自己决定执行的操作。这些调用控制与上下文注入能力属于 Claude Code 对开放标准的扩展*,下一节将继续介绍。

渐进式披露与上下文成本

Skills 采用三级加载,因此对上下文的消耗很低。 正是这种设计,让你可以安装很多 Skills,而不必每一轮都为全部内容付出上下文成本:

Agent Skills 的三级渐进式披露

Agent Skills 的三级渐进式披露。来源:Anthropic Agent Skills 概览,2026 年 7 月。

具体来说:Level 1 元数据(名称 + 描述)始终在启动时加载,每个 Skill 约 100 Token;Level 2(SKILL.md 正文)只在 Skill 触发时加载,并保持在约 5,000 Token 以内;Level 3 及以上的资源按需加载,而脚本通过 Bash 运行,不会把内容载入上下文,因此实际上没有资源数量限制。还有一个生命周期细节:Skill 被调用时,渲染后的 SKILL.md 会作为单条消息进入对话,并在会话余下时间里始终保留——Claude Code 不会在之后的轮次重新读取该文件,这也进一步说明了为什么内容必须精简。

Claude Code Skills 遵循 Agent Skills 开放标准(agentskills.io),可跨多种 AI 工具使用;Claude Code 在此基础上增加了前文介绍的调用控制、子智能体执行(context: fork)与动态上下文注入。除非通过 disableBundledSkills 将其禁用,否则每次会话还会提供内置 Skills,包括 /code-review/batch/debug/loop/claude-api。这些 Skills 基于提示词——它们指导 Claude,而不是执行固定逻辑——调用方式与其他 Skill 相同。

去哪里寻找优质 Skills

先从 Anthropic 自己的仓库开始,再像审查软件一样审查第三方 Skills。 截至 2026 年 7 月,Skill 仓库已有数十个;以下三个尤其重要,而且可以核实:

anthropics/skills——Anthropic 官方公开仓库。包含 ./skills(按类别组织的示例 Skills)、./spec(Agent Skills 标准)和 ./template(Skill 模板)。该仓库用于演示和教学;大多数内容使用 Apache 2.0 许可证,而文档类 Skills(docx、pdf、pptx、xlsx)采用源码可用许可证。
anthropics/launch-your-agent——Anthropic 官方 Skill 仓库,帮助创业者从创意一路走到上线 Claude Managed Agent。Skills 位于 .claude/skills/ 中;在该文件夹内运行 Claude Code 时会被自动发现,无需安装。
BuilderIO/skills——采用 MIT 许可证的第三方合集(“面向编程智能体的小型、可组合 Skills”),同时也是 Claude Code 插件市场。安装方法:先执行 /plugin marketplace add BuilderIO/skills,再执行 /plugin install builder-skills@builder-skills;使用 /plugin marketplace update builder-skills 更新。它提供 /visual-plan/visual-recap/agent-watchdog/plan-arbiter/plow-ahead/read-the-damn-docs 等 Skills。这只是某个项目的做法,并非 Anthropic 标准。

若要构建并评估自己的 Skill,可以使用官方 skill-creator 插件(来自 claude-plugins-official)自动完成流程——执行 /plugin install skill-creator@claude-plugins-official 安装,再运行 /reload-plugins;它会进行 A/B 基线对比(启用 Skill 与禁用 Skill),记录通过率、Token 数和耗时。

安全第一。 Anthropic 的明确建议是:只使用来自可信来源的 Skills(自己创建或来自 Anthropic)。恶意 Skill 可能指示 Claude 以违背其声明用途的方式调用工具或执行代码——安装 Skill 应像安装软件一样谨慎。启用前,请阅读 SKILL.md 及所有 scripts/

常见问题

什么是 Claude Code Skill?

它是一个包含 SKILL.md 的文件夹;该文件由 YAML Frontmatter 和 Markdown 指令组成,Claude Code 会按需加载它,以便更好地完成任务。Anthropic 将 Agent Skills 定义为由指令、脚本和资源组成的结构化文件夹,智能体会发现并动态加载它们。Claude 在启动时读取简短描述,只有当请求匹配或你输入 /skill-name 时才加载完整正文。

Skill 与 MCP 服务器有什么区别?

两者相互补充,并非彼此竞争。Skill 封装流程知识(指令 + 可选的 Bash 脚本);MCP 服务器则通过一个运行中的进程集成外部工具和实时数据。Anthropic 表示,Skills 可以通过教智能体使用外部工具的工作流,与 MCP 形成互补。用 Skill 编排工作流,用 MCP 连接系统。

斜杠命令现在与 Skills 相同吗?

是的。自定义命令已经并入 Skills。.claude/commands/deploy.md.claude/skills/deploy/SKILL.md 都会创建 /deploy,行为也相同。旧的 .claude/commands/ 文件仍然有效;如果 Skill 与命令重名,以 Skill 为准。

如何创建 Claude Code Skill?

创建 .claude/skills/<name>/SKILL.md,写入由 --- 包围的 Frontmatter 块和描述,再添加 Markdown 指令。在 Claude Code 中,所有 Frontmatter 字段都是可选的,只推荐填写 description;省略 name 时会默认使用目录名称。还可以添加可选的 scripts/references/assets/ 子文件夹。

Skills 在磁盘上存放在哪里?

个人级:~/.claude/skills/<name>/SKILL.md。项目级:.claude/skills/<name>/SKILL.md。插件 Skills 位于插件的 skills/ 内;企业级 Skills 由组织管理。发生名称冲突时,优先级为企业级 > 个人级 > 项目级,而且它们都会覆盖同名的内置 Skill。

如何调用 Skill?

输入 / 加 Skill 的目录名称(例如 /summarize-changes),或者在请求与描述匹配时让 Claude 自动加载。命令名称是目录名称,并非 Frontmatter 中的 name。参数写在命令之后,在 Skill 内通过 $ARGUMENTS 读取。

去哪里寻找优质 Skills?

官方来源:github.com/anthropics/skills(示例 + 规范 + 模板)和 github.com/anthropics/launch-your-agent。第三方来源:BuilderIO/skills(MIT 许可证,同时也是插件市场)。安装任何 Skill 都要像安装软件一样谨慎——只使用可信来源。

Skills 会消耗很多上下文吗?

不会,因为它采用三级渐进式披露。Level 1(名称 + 描述,每个 Skill 约 100 Token)始终加载;Level 2(正文,小于 5,000 Token)在触发时加载;Level 3 资源按需加载,而脚本通过 Bash 运行,脚本内容不会进入上下文。