1 引入skills

1.1 Skills是什么?

Skill本质就是一个prompt(一个任务模版),在claude code加载skill,最终都是把skill.md、references/、asset/、scripts、合并成一个prompt
举例

1.2 Skills Vs 直接写Prompt区别

特性
直接写 Prompt
使用 Skill
长度
需要每次输入完整指令
一次定义,重复使用
管理
分散在各处
集中在 Skill 文件夹
版本控制
难以追踪变化
Git 管理,有历史记录
分享
复制粘贴 prompt
打包成 .zip 或 Git 仓库
组合使用
手动合并多个 prompt
可以同时加载多个 Skills

1.3 Skills作用

1、提高可重用性 – 一次编写,到处使用,标准化工作流程

2、 突破上下文限制 – Skills 采用了独特的 “渐进式披露” 架构,像一本组织良好的手册,从目录开始,然后是特定章节,最后是详细附录,Skills 让 Claude 只在需要时加载信息 Claude

3、 提高可重用性 – 一次编写,到处使用,标准化工作流程

2 Skill目录

2.1 标准结构

Skill本质就是一个prompt(一个任务模版),为了保证skill.md中内容简洁,对于比较复杂的skill.md 可以将数据归类到references/scripts/asset目录下。
一个标准的Skill目录如下

2.1.1 SKILL.md 详解

SKILL.md 是 Skill 的灵魂,它由两部分组成:YAML Frontmatter (元数据) 和 Markdown Body (指令主体)。

  • YAML Frontmatter (元数据区):位于文件最顶端,用 — 包裹,用于定义 Skill 的基本信息、依赖和配置
  •  Markdown Body (指令区) :跟在 YAML 之后,这里是你放置核心提示词的地方,其结构与我们之前介绍的 “通用 Skill 设计模板” 完全一致,包含角色设定、目标、输入输出要求、示例、限制等。

scripts/ 

此目录保存封装的的脚本或者代码

references/ 

存放供 AI 在执行任务时 “阅读” 的背景材料,尤其适用于涉及专业领域知识的 Skill,可以当成知识库

  • 存放大量示例数据.
  • 技术规范文档。例如,一个用户 JSON 对象的字段定义(user_id, username, email)、数据类型、是否必填和示例值。

assets/ 

用于存放 Skill 在生成结果时需要用到的静态资源:

  • 模板文件。比如 Skill 的目标是生成一份 HTML 报告,这里可以存放报告的模板文件。模板中可以使用占位符(如 {{ title }} 和 {{ content }}),AI 的任务就是生成填充这些占位符的内容。
  • 配置文件
  • 多媒体:比如报告或产出物中需要用到的图片、Logo 等

2.2 🔥skill中有script/、references/、/asset目录,这些目录是做什么。正常不是只有一个skill.md不就行了

skill本质就是一个提示词 来构建的任务模版,为了保证skill.md中prompt简洁,对于比较复杂的skill.md 可以将数据归类到references/scripts/asset目录下。

正常情况简单场景 (只需 skill.md),比如:提取邮件地址这种简单任务。(大概80%的场景)

复杂场景 ,需要完整结构

3. 选择哪种方式?

大概80% 的 Skills 只需要 skill.md

只用 skill.md
需要额外目录
提示词 < 500 行
提示词 > 500 行或需要分模块
无需编程逻辑
需要前/后处理脚本
示例在提示词内就够
大量示例数据
个人使用
团队协作/发布到社区

2.3 Skill的 script也是在 prompt提供的样例,llm本身不执行script吧?

LLM本身不执行script,而是:

  • LLM的角色:根据prompt中的示例和指令,生成符合格式的script代码
  • Script的执行:由外部的执行引擎/运行时环境来解析和执行这些script

具体流程是这样的:

类比理解:

  • LLM就像一个”代码生成器”,根据文档示例写出符合规范的代码
  • 但它不是”编译器”或”解释器”,不负责真正运行这些代码
  • 真正的执行由外部系统(如function calling框架、MCP服务器等)完成

3. 创建 Skill

3.1 直接使用官网库

https://github.com/anthropics/skills,这个项目是 Anthropic 的 Skills 系统的公开仓库。Skills 是一些指令、脚本和资源的文件夹集合,Claude 可以动态加载它们来提升在特定任务上的表现。

第一步:添加市场。这个命令是将 anthropics/skills 这个 GitHub 仓库注册为一个插件市场源,类似于添加一个”商店”,安装在~/.claude/plugins/marketplaces。

skill没有公开市场平台,只有这个公共代码库,都是在本地添加市场

第二步:安装具体的 Skills。这个命令才是真正安装具体的 Skills 到你的 Claude Code 中。

第三步 执行 /plugin list

81e0b1ae-ab63-40e4-bd59-639de7da9482

第四步:测试一个demo。执行如下会在本地创建一个docx的文档:

注意:这里不需要显示指定 @document_skills ,直接在对话框输入上面文本就行。一般在测试某一个skill时,才指定skill。

3.2 创建自定义Skill

方式1 使用官方脚本创建https://github.com/anthropics/skills

下载官方项目,进入到当前目录的skill-creator/scripts,然后执行如下命令,在new下创建了一个extract-email目录

b295ef10-150c-4214-9018-819b2f319e30 生成如下:

950ce6ef-c3d3-4b82-a553-7699feb2477e

方式2 手动创建

安装目录格式手动创建上面的目录和文件

4. Skill 加载机制 :如何读取skill的skill.md、references、assetss的信息

最终还是构建一个prompt。

1. 启动: 扫描 skills/ 目录,索引所有 Skill

2. 调用: 用户通过 @skill-name 触发

3. 加载和组装Context

  • 读取 skill.md (必需) + references/ + assets/ ;
  • 构建完整的 System Promp

4. 执行: 调用 Claude API

阶段 1: 启动时扫描

默认流程

Claude Code 会在特定位置查找 Skills:

  • skill.md
  • references/patterns.md
  • assets/template.json

 

激活配置config.json

config.json是把skill的所有信息生成prompt,都合并到context。

当你配置 active_skills 时,Claude Code 做的事情

 

对比下有激活和无激活的system prompt

1、默认(无激活配置conifig.json)。每次需要动态的价值sklill,即根据用户输入,圈定具体的skill,然后再加载skill。所以默认情况下system prompt原始内容没有load skill的信息

2、 有激活config.json。预加载 Skills 后的 System Prompt,保证每次skill都是生效,行为一致可预测,但是每次会消耗更多的tokens。

 

阶段 2: 用户调用 Skill

正常情况下是通过llm自动识别的,不需要显示指定。

在测试阶段可以使用 @ 语法显示调用。

 

阶段 3: 加载和组装Context

组装后的实际prompt

5. 发布Skill:创建好的skill如何加入到Claude Code

方式1 放置源码-本地使用

1. 包含两个目录

  • 个人的 Skills
  • 项目 Skills  :如果只是某一project下,建立一个skill目录,然后把原始的skill放在skill目录下就行。

 

2、FAQ

Q 定义一个cluade skill,在当前project的skills目录下放置的是skill的原始目录,还是通过pacakage打包的产物

A: 在项目中,skills 目录下通常放置的是 skill 的原始源代码目录,而不是打包后的产物。

 

Q 如何要在.claude/config.json配置  {   “active_skills”: [“email-extractor”] },那么是否需要先打包发布呢

A :不需要先打包发布。在 .claude/config.json 中配置本地 skill 时,可以直接引用本地的源代码目录。

方式2 通过/plugin 发布自己的 Skills 的方式

 

anthropics/skills/代码库 VS Plugin Marketplace区别

1. GitHub 仓库 (anthropics/skills)

  • 这是一个示例和参考仓库
  • 包含 Anthropic 官方提供的示例 Skills
  • 主要用于:学习如何创建 Skills,参考最佳实践;使用 Anthropic 提供的官方 Skills

2. Claude Code Plugin Marketplace

  • 这是 Claude Code 的插件市场系统
  • 可以从任何 GitHub 仓库添加为 marketplace 源
  • 你可以创建自己的仓库并添加为市场源

公开 Skills

私有Skills

方式3 通过 package 发布的场景

使用package (验证 + 依赖分析+ 元数据+ 优化 + 签名 + 压缩)。它不是简单的 zip 命令,而是一个完整的构建和发布流程.

  1. 下载:https://github.com/anthropics/skills/tree/main/skills/docx
  2. 进入脚本目录 cd skills/skill-creator/scripts
  3. 打包并输出到指定目录 ./package_skill.py ~/.claude/skills/company-branding ~/Desktop/

6. Skills 和 MCP

核心区别

Skills
MCP
  • 本质: 提示词模板/指令集
  • 作用: 定义 Claude 如何思考和回应
  • 内容: 系统提示、输出格式、示例、质量标准
  • 类比: 给 Claude 的”工作手册”或”SOP”
  • 本质: 数据和工具连接协议
  • 作用: 让 Claude 访问外部资源
  • 内容: 数据库、API、文件系统、搜索引擎等
  • 类比: 给 Claude 的”工具箱”

两者关系

协同工作示例

假设你要构建一个”客户邮件分析”系统:

Skill 定义 (skill.md):

MCP 提供能力:

  • gmail-mcp: 连接 Gmail,读取邮件内容
  • crm-database-mcp: 连接 CRM 数据库,查询客户历史

执行流程:

  • Skill 告诉 Claude 如何分析邮件
  • MCP 让 Claude 能够读取 Gmail 中的实际邮件
  • Skill 指导 Claude 按指定格式输出分析结果
  • MCP 让 Claude 能够将结果存入 CRM

【Anthropic】借助 Agent Skills 助力智能体适配现实世界

分类&标签