内容来源: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 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 规范把 name 和 description 列为必填项,并设置了硬性限制:name 最长 64 个字符,只能包含小写字母、数字和连字符,不允许 XML 标签,也不能包含保留词 anthropic 或 claude;description 不得为空,最长 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 多个模型,并提供自动故障转移,因此你的智能体循环不会因单一提供商宕机而中断。
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 的三级渐进式披露。来源: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 运行,脚本内容不会进入上下文。