Skill 是什么?一篇带你从本质到原理完整拆解

如果你用过 Claude Code 或关注过 AI agent 工具链,一定看到过"skill"这个概念。这篇文章从本质出发,帮你彻底搞清楚 skill 是什么形态、怎么运作、背后的技术原理是什么。


一、Skill 的本质:结构化的 Prompt

先说结论:单个 skill 的本质,就是一个结构化的 Markdown prompt 文件。

它告诉 AI “在某类任务里,你应该按什么标准、什么步骤做事”。与普通 prompt 的区别在于:

  • 有固定格式(frontmatter + 正文)
  • 可复用(安装一次,到处生效)
  • 可组合(多个 skill 可以同时激活)
  • 按需加载(不相关的 skill 不会占用上下文)

一个最简单的 skill 文件长这样:

---
name: prd-development
description: "Use when user wants to create a PRD or product requirements document."
triggers:
  - "PRD"
  - "需求文档"
  - "产品需求"
---

# PRD Development Workflow

## 第一步:澄清背景
在开始写作前,先向用户确认以下信息:
- 产品背景和目标用户
- 核心功能范围
...

--- 之间是摘要(frontmatter),之后是完整的指令正文。这个区分非常重要,后面会解释为什么。


二、Skill 的三种形态

随着复杂度升级,skill 呈现出三种截然不同的文件结构。

形态一:纯 Prompt 型

prd-development/
└── SKILL.md

只有一个文件,全是自然语言指令。AI 用自身已有的能力去执行,不需要任何外部程序。

适合场景:编码规范、写作风格、文档模板、任何"告诉 AI 怎么思考"的任务。

形态二:Prompt + 脚本型

feishu-doc/
├── SKILL.md
├── create.js
├── append_simple.js
├── download_file.js
├── config.json
└── node_modules/

SKILL.md 里描述的某些操作,AI 自己做不到——比如"调用飞书 API 创建文档"。这时 skill 会附带可执行的脚本,SKILL.md 告诉 AI 什么时候调用哪个脚本,脚本负责真正跑 API 请求。

SKILL.md 是大脑,脚本是手脚。 简单 skill 只有大脑,复杂 skill 大脑和手脚都有。

形态三:Prompt + MCP Server 型

结构上等同于"一个打包好的 MCP Server + 配套使用说明"。skill 文件描述工具能干什么,背后跑着一个完整的 Node.js 或 Python 服务,监听在本地端口。

这类 skill 使用前需要先 npm install 安装依赖,再把它注册为本地 MCP Server,SKILL.md 的指令才能真正发挥作用。


三、Skill 的触发方式

Skill 的调用有两种模式,由 frontmatter 里的配置决定:

自动触发(model-invoked)
AI 根据你的请求内容,自动判断是否加载某个 skill。适合"规范类" skill,比如代码风格指南——你不用主动说"用这个 skill",AI 在写代码时会自动遵循。

斜杠命令触发(user-invoked)
你主动输入 /skill名称 来触发。适合"任务类" skill,比如创建 PRD、执行部署、提交 PR——你明确知道自己要做什么,直接调用更可控。


四、Skill 生态现状

来源分类

官方预置 skill
Anthropic 提供了几个开箱即用的官方 skill,主要是文档处理类:PowerPoint、Excel、Word、PDF。在 Claude.ai 里直接内置,背后也是 skill 驱动的。

社区开源 skill
目前社区最活跃的平台是 skills.sh,汇聚了大量开发者贡献的 skill。值得注意的是,SKILL.md 格式已经成为跨工具的开放标准——Claude Code、Cursor、Gemini CLI、GitHub Copilot 都能使用同一套 skill 文件,不需要任何修改。

自己编写
把文件放入 ~/.claude/skills/ 目录,Claude Code 会自动发现并加载,无需任何额外配置。

一个常见的误区

在 skills.sh 或 GitHub 上找到一个 skill 的介绍页,对应的是整个仓库——里面包含管理工具、测试脚本、CI/CD 配置等等。作为使用者,你只需要其中的 skills/skill名称/SKILL.md 这一个文件,其余都是仓库维护者自用的工具。


五、进阶:三层结构的 Agent 体系

当任务足够复杂时,单个 skill 不够用,就出现了 skill → workflow → agent 三层结构。

以"整理本周工作并发布博客"为例:

skill(领域容器):"博客"
│
├── workflow(具体任务流程):"收集素材"
│   └── 步骤1 → 步骤2 → 步骤3…
│
├── workflow:"写初稿"
│   └── 步骤1 → 步骤2 → 步骤3…
│
└── workflow:"发布"
    └── 步骤1 → 步骤2 → 步骤3…
  • Skill 是领域容器,声明"这个领域我有哪些能力",本身不直接干活
  • Workflow 是嵌套在 skill 里的具体任务流程,才是真正的执行单元
  • Agent 是并行执行 workflow 的独立工作者——多个 agent 同时运行,互不干扰

本质上是把大任务拆解成更精细的层级,让 AI 系统可以像团队一样协作,而不是单个 AI 从头做到尾。这是目前 AI agent 工程化的主流思路之一。


六、技术原理:渐进式披露

这是整个 skill 机制里最值得理解的部分。

100 token 摘要的作用

每个 SKILL.md 最顶部的 YAML frontmatter,就是这个 skill 的"索引"。它的内容极简——name、description、triggers——通常不超过 100 token。

所有已安装 skill 的完整正文加在一起可能有几万 token,但 frontmatter 加在一起只有几百 token。这就是系统可以"全部常驻上下文"的原因。

加载流程

第一步:启动时建立索引

系统启动时扫描所有 skill 目录,只读取每个 SKILL.md 的 frontmatter 部分,拼成一段系统提示词注入上下文:

You have access to the following skills:
- prd-development: Use when user wants to create a PRD... triggers: PRD, 需求文档
- feishu-doc: Use when user wants to write to Feishu... triggers: 飞书, feishu
- docx: Use when user wants to create Word documents... triggers: word doc, .docx

第二步:AI 判断相关性

你发一条消息,AI 基于这些摘要判断哪个 skill 与当前任务相关。

第三步:按需加载正文

系统捕捉到 AI 的判断信号,把对应 skill 的完整 SKILL.md 正文读取出来,追加到上下文里,AI 再按完整指令执行。

用户消息
   ↓
系统提示词(含所有 skill 摘要)→ AI 判断:"需要 prd-development skill"
   ↓
系统读取 prd-development/SKILL.md 完整内容,追加到上下文
   ↓
AI 按完整指令执行

没有任何魔法

不管内部实现细节如何,上下文窗口始终是唯一的载体。所谓"按需加载",最终都是"把文本塞进上下文",只是在塞之前做了筛选,避免一次性把所有 skill 的完整内容都撑爆窗口。

这个模式在 AI 工程里有个通用名字:RAG(检索增强生成)的轻量版。先检索相关内容,再生成回答。skill 加载只是把"检索"这一步做得极其轻量——因为 skill 数量有限,不需要向量数据库,frontmatter 直接充当索引就够了。


总结

Skill 的本质
│
├── 按内容复杂度
│   ├── 纯 prompt(SKILL.md 一个文件)
│   ├── prompt + 脚本(附带 .py / .js)
│   └── prompt + MCP Server(完整服务程序)
│
├── 按触发方式
│   ├── 自动触发(AI 判断相关性后加载)
│   └── 斜杠命令(/skill名 手动调用)
│
├── 按来源
│   ├── 官方预置(pptx / xlsx / docx / pdf)
│   ├── 社区开源(skills.sh / GitHub)
│   └── 自己编写(~/.claude/skills/ 即生效)
│
└── 运作机制
    ├── frontmatter = 索引(常驻上下文,几百 token)
    ├── 正文 = 数据(按需加载,用完释放)
    └── 本质 = RAG 的轻量版实现

Skill 把"如何使用 AI"这件事本身变成了可以版本管理、可以共享、可以组合的工程制品。随着社区生态的成熟,未来你用 AI 完成某类任务的最佳实践,很可能已经有人写成 skill 发布出来了——就像找一个好的 npm 包一样。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐