知行合一:当人类知识学会自己奔跑--skill
一句话摘要:Skill 是大模型的「外挂技能包」,通过标准化的 YAML + Markdown 文件结构赋予 AI 助手领域专家级能力------如果说大模型是一个聪明但没有实战经验的毕业生,Skill 就是那本让他秒变老司机的「新员工手册」。
想象一下:你教 ChatGPT 画架构图,每次都要重复说一遍"用深色背景、加图标、记得画箭头"......有了 Skill,说一次就够了,而且它比你记得还清楚。
| 属性 | 信息 |
|---|---|
| 领域 | AI 工程 / LLM 应用 / 开发者工具 |
| 关键词 | Skill, MCP, Tool Use, Prompt Engineering, Agent |
| 难度 | 入门 → 中级 |
| 阅读体验 | 约 15 分钟(含边看边试的时间) |
| 最后更新 | 2026-03-02 |
目录
- [1. 概述------Skill 到底是啥](#1. 概述——Skill 到底是啥 "#1-%E6%A6%82%E8%BF%B0")
- [2. 全景架构------大模型如何调用 Skill](#2. 全景架构——大模型如何调用 Skill "#2-%E5%85%A8%E6%99%AF%E6%9E%B6%E6%9E%84")
- [3. Skill 的前世今生](#3. Skill 的前世今生 "#3-skill-%E7%9A%84%E5%89%8D%E4%B8%96%E4%BB%8A%E7%94%9F")
- [4. Skill 的专业定义------文件结构解剖](#4. Skill 的专业定义——文件结构解剖 "#4-skill-%E7%9A%84%E4%B8%93%E4%B8%9A%E5%AE%9A%E4%B9%89")
- [5. 手把手定制你的第一个 Skill](#5. 手把手定制你的第一个 Skill "#5-%E6%89%8B%E6%8A%8A%E6%89%8B%E5%AE%9A%E5%88%B6%E4%BD%A0%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA-skill")
- [6. 多 Skill 协同------高效编排的艺术](#6. 多 Skill 协同——高效编排的艺术 "#6-%E5%A4%9A-skill-%E5%8D%8F%E5%90%8C")
- [7. Skill 使用核心技巧------老司机秘籍](#7. Skill 使用核心技巧——老司机秘籍 "#7-skill-%E4%BD%BF%E7%94%A8%E6%A0%B8%E5%BF%83%E6%8A%80%E5%B7%A7")
- [8. 哲学反思------从 Skill 看 AI 的未来](#8. 哲学反思——从 Skill 看 AI 的未来 "#8-%E5%93%B2%E5%AD%A6%E5%8F%8D%E6%80%9D")
- [9. 参考资料------致敬先行者](#9. 参考资料——致敬先行者 "#9-%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99")
1. 概述
1.1 什么是 Skill?
Skill(技能包)是一种标准化的知识封装格式,它让大模型在特定领域拥有专家级的执行能力。简单来说,Skill 就是一个文件夹,里面装着"该怎么做"的指令、"可以用什么工具"的脚本、以及"参考什么标准"的文档。
这个概念诞生于 AI 辅助编程工具的实践中。当开发者发现大模型虽然"什么都知道一点,但什么都不够专业"时,Skill 应运而生------它不是让模型重新训练,而是在推理时给它一个精确的行动指南。
你可以把 Skill 想象成游戏里的装备系统:大模型本身是一个满级角色,但面对不同副本(任务场景),你需要给它换上不同的装备(Skill)才能发挥最大战力。
💡 人话翻译:Skill 就是写给 AI 的标准操作手册,让它按你的要求做事,而不是自由发挥。
1.2 解决了什么问题?
在 Skill 出现之前,世界是这样的:
- 痛点 1:每次让 AI 画架构图,都要在 Prompt 里写一大段样式要求,像极了每天早上重新教实习生怎么开电脑
- 痛点 2:不同项目、不同团队成员使用 AI 的方式五花八门,生成的文档格式千奇百怪
- 痛点 3:大模型的"好记忆"只限于当前对话窗口,下次打开又是一张白纸,所有定制化偏好归零
然后,Skill 带着它的「标准化 + 持久化 + 可复用」三板斧出现了------
它把你的专业知识、风格偏好、工作流程封装成一个文件夹,AI 每次工作时自动加载,不用你重复交代。一次封装,永久生效,还能分享给团队。
1.3 核心优势
| 优势 | 说明 | 趣味类比 |
|---|---|---|
| 知识持久化 | Skill 文件存储在项目中,不随对话结束而丢失 | 相当于给金鱼装了一块硬盘------终于不用 7 秒一循环了 |
| 质量标准化 | 内置质量检查清单和模板,每次输出都达标 | 像麦当劳的操作手册,无论哪个门店汉堡味道都一样 |
| 团队可复用 | Git 提交后全团队共享同一套 Skill | 一人封装,全队受益------开源精神的极致体现 |
| 渐进式加载 | 元数据→正文→资源文件,按需读取不浪费 Token | 像自助餐,饿了才拿,不是把所有菜搬到桌上 |
2. 全景架构
🏗️ 在深入 Skill 的细节之前,先从上帝视角看一下大模型、MCP、HTTP、Tool Use 和 Skill 之间的关系。
2.0 技术栈一览
| 组件 | 技术 | 说明 |
|---|---|---|
| 🧠 AI 引擎 | Claude / GPT / DeepSeek | 大语言模型,核心推理引擎 |
| 🔍 技能匹配 | Skill Matcher + Skill Registry | 根据用户意图匹配 Skill 并查询注册表 |
| 🌐 协议层 | MCP (Model Context Protocol) | 模型上下文协议,连接模型与外部工具 |
| 🔗 传输层 | HTTP / HTTPS / WebSocket / stdio | 实际通信传输协议 |
| ⚙️ 工具调度 | Tool Dispatcher + Tool Use | 路由 Tool Call 请求到具体工具函数 |
| 📦 技能层 | Skill Pack | 领域知识+工作流+脚本+资源的封装单元 |
| 🖥️ IDE 层 | CodeBuddy / VS Code / Cursor | AI 辅助开发的宿主环境 |
2.1 大模型与 Skill 全景调用关系
下图展示了从用户指令到 Skill 执行的完整调度链路。
推理引擎"] L2["🔍 Skill Matcher
技能匹配器"] L3["📄 Context Builder
上下文组装器"] end subgraph SKILL_REG ["📦 技能注册 --- Skill Registry"] R1["📦 Skill Registry
技能注册中心"] end subgraph MCP_LAYER ["🌐 MCP 协议层 --- Model Context Protocol"] M1["🌐 MCP Server"] M2["🔗 MCP Client"] M3["📋 Capability Discovery
能力发现"] end subgraph SKILL ["📦 Skill 层 --- Skill Packs"] S1["📄 SKILL.md
入口定义"] S2["📚 references/
参考文档"] S3["⚙️ scripts/
可执行脚本"] S4["🎨 assets/
模板资源"] end subgraph TOOL_DISP ["⚙️ 工具调度 --- Tool Dispatcher"] D1["⚙️ Tool Dispatcher
工具调度器"] end subgraph TOOL ["⚡ 工具层 --- Tool Use"] T1["📝 read / write file"] T2["🔍 search / grep"] T3["💻 execute command"] T4["🌐 web fetch"] end U1 == "自然语言指令" ==> I1 I1 -- "解析意图" --> L1 L1 -- "匹配 Skill" --> L2 L2 -- "查询注册表" --> R1 R1 -- "返回 Skill 元数据" --> L2 L2 -- "加载 SKILL.md" --> L3 L3 -- "按需加载" --> S1 S1 -- "引用" --> S2 S1 -- "调用" --> S3 S1 -- "使用" --> S4 L3 == "构建上下文 + Tool Call" ==> I1 I1 -- "注册能力" --> M2 M2 -- "stdio/HTTP" --> M1 M1 -- "能力列表" --> M3 M3 -. "发现可用工具" .-> D1 I1 -- "路由请求" --> D1 D1 == "Tool Call" ==> T1 D1 == "Tool Call" ==> T2 D1 -- "Shell" --> T3 D1 -. "HTTP 请求" .-> T4 style U1 fill:#eff6ff,stroke:#3b82f6,stroke-width:2px,color:#1e293b style I1 fill:#eff6ff,stroke:#3b82f6,stroke-width:3px,color:#1e293b style R1 fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#1e293b style D1 fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#1e293b style L1 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:3px,color:#1e293b style L2 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px,color:#1e293b style L3 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px,color:#1e293b style M1 fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,color:#1e293b style M2 fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,color:#1e293b style M3 fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,color:#1e293b style S1 fill:#f0fdf4,stroke:#10b981,stroke-width:3px,color:#1e293b style S2 fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b style S3 fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b style S4 fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b style T1 fill:#fdf2f8,stroke:#ec4899,stroke-width:2px,color:#1e293b style T2 fill:#fdf2f8,stroke:#ec4899,stroke-width:2px,color:#1e293b style T3 fill:#fdf2f8,stroke:#ec4899,stroke-width:2px,color:#1e293b style T4 fill:#fdf2f8,stroke:#ec4899,stroke-width:2px,color:#1e293b
图 1:大模型 × MCP × Skill × Tool Use 全景调用关系------从用户指令到工具执行的完整链路
图中关键路径解读:
- 用户→IDE→LLM→Skill(主调用链 + 知识加载链):用户的自然语言指令通过 IDE 传递给大模型,Skill Matcher 通过 Skill Registry 匹配对应的 Skill,Context Builder 按三级渐进机制加载 Skill 内容------先读元数据,再读 SKILL.md 正文,最后按需读取 references/scripts/assets
- LLM→IDE→MCP→Tool(工具执行链):LLM 生成 Tool Call 请求后交给 IDE,IDE 通过 MCP 协议进行能力发现和注册,Tool Dispatcher 将请求路由到具体的工具函数
- Skill Registry ↔ MCP 协议(能力桥梁):Skill Registry 管理 Skill 元数据供 LLM 匹配,MCP 协议管理工具能力供 Dispatcher 调度------两者分别服务于"知识选择"和"工具执行"
🔍 架构设计的精妙之处:Skill 和 Tool 是两个正交的概念------Skill 提供"知道该做什么"(领域知识),Tool 提供"能做什么"(执行能力)。同一个 Skill 可以在不同的 Tool 环境中运行,同一个 Tool 也可以被不同的 Skill 复用。Skill Registry 和 MCP Capability Discovery 分别负责"知识注册"和"工具注册",共同构成系统的完整能力目录。
2.2 MCP、HTTP 与 Skill 的调用时序
从一个具体请求的视角,看看各组件之间的交互时序:
图 2:一次 Skill 调用的完整时序------从"生成提交信息"到输出结果的全链路
💡 关键洞察:LLM 不是一次性读完所有 Skill 文件,而是先读 SKILL.md 获取工作流,再根据当前步骤按需加载 references 和 assets。这种渐进式加载有效控制了 Token 消耗。
3. Skill 的前世今生
🗺️ 要理解 Skill,先得知道它是怎么一步步演化来的。
3.1 前 Skill 时代:Prompt Engineering(2022-2023)
一切始于 Prompt Engineering------开发者发现,给大模型的提示词越详细,输出质量越高。于是出现了所谓的「超级 Prompt」,动辄 200 行的样式要求。问题:这些 Prompt 只存在于对话历史中,换个窗口就没了。
3.2 System Prompt 时代(2023)
随着 OpenAI API 引入 system 角色,IDE 插件开始支持自定义 System Prompt 文件(如 .cursorrules)。进步 :指令持久化了。问题:还是一坨大文本,没有结构化,也无法按需加载。
3.3 Skill 的诞生(2024-2025)
MCP(Model Context Protocol)协议和 Skill 体系几乎同时出现,标志着 AI 辅助开发进入结构化知识管理时代:
| 演进 | 创新点 | 解决的问题 |
|---|---|---|
| 文件夹结构 | 从单文件→目录结构 | 知识组织混乱 |
| YAML 元数据 | name + description 触发词,AI 自动匹配 | 手动选择 Prompt |
| 三级加载 | 元数据→正文→资源,渐进式读取 | Token 浪费 |
| 脚本集成 | scripts/ 可放可执行代码 | 纯文本无法执行 |
| 模板资产 | assets/ 存放模板、图片等 | 每次从零生成 |
3.4 MCP 与 Skill 的关系
MCP 和 Skill 不是竞争关系,而是互补关系:
工作流指令"] K2["📚 references/
参考规范"] end subgraph EXEC ["⚡ 执行层 --- With What"] E1["🌐 MCP Server
能力注册"] E2["⚙️ Tool Use
函数调用"] end subgraph BRAIN ["🧠 大脑 --- LLM"] B1["🧠 LLM 推理引擎"] end K1 == "告诉 LLM 该做什么" ==> B1 K2 -- "提供参考标准" --> B1 B1 == "调用工具去执行" ==> E2 E1 -- "注册可用能力" --> B1 E2 -. "通过 MCP 协议" .-> E1 style K1 fill:#f0fdf4,stroke:#10b981,stroke-width:3px,color:#1e293b style K2 fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b style E1 fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,color:#1e293b style E2 fill:#fdf2f8,stroke:#ec4899,stroke-width:2px,color:#1e293b style B1 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:3px,color:#1e293b
图 3:Skill(知识层)与 MCP/Tool Use(执行层)的互补关系
- Skill → 回答「做什么 」和「怎么做」------领域知识、工作流、质量标准
- MCP/Tool Use → 回答「用什么做」------读写文件、执行命令、网络请求
- LLM → 负责「理解 」和「决策」------理解意图,选择 Skill,调用 Tool
4. Skill 的专业定义
⚙️ 现在让我们打开引擎盖,看看一个标准 Skill 的内部结构。
4.1 标准目录结构
bash
skill-name/
├── SKILL.md # (必需)入口文件,YAML 元数据 + 工作流指令
├── scripts/ # (可选)可执行脚本
│ └── *.py / *.sh
├── references/ # (可选)参考文档,按需加载
│ └── *.md
└── assets/ # (可选)模板、图片等资源
└── template.html / ...
| 目录 | 必需性 | 职责 | 加载方式 |
|---|---|---|---|
| SKILL.md | ✅ 必需 | YAML 元数据 + 工作流正文 | 触发时自动加载 |
| scripts/ | 可选 | 确定性执行的代码脚本 | 直接执行 |
| references/ | 可选 | AI 参考的文档/规范 | 按需读入上下文 |
| assets/ | 可选 | 模板、图片、字体等 | 被复制/修改到输出中 |
💡 为什么只有四个东西? 任何领域知识都可以分解为:一个「总纲领」(SKILL.md),一些「参考手册」(references/),一些「工具」(scripts/),和一些「原材料」(assets/)。这是社区反复迭代后的极简设计。
4.2 SKILL.md 剖析
SKILL.md 由两部分组成:
Part 1: YAML Frontmatter(元数据)
yaml
---
name: skill-creator
description: "Create new skills, modify and improve existing skills,
and measure skill performance. Use when users want to create a skill
from scratch, update or optimize an existing skill, run evals to test
a skill, or optimize a skill's description for better triggering accuracy."
---
| 字段 | 作用 | 要求 |
|---|---|---|
name |
Skill 唯一标识 | 全小写,短横线分隔 |
description |
触发条件和功能描述 | 含中英文触发词,~100 词 |
description 是 Skill 匹配的核心------LLM 根据它判断是否激活该 Skill。
Part 2: Markdown 正文(工作流指令)
markdown
# Skill 标题
## Quick Reference ← 指向 references/ 和 assets/ 的索引
## Overview ← 能力概述
## When to Use ← 适用/不适用场景
## Workflow
### Step 1: 分析需求
### Step 2: 准备资源
### Step 3: 生成产出
### Step 4: 质量检查
## Dependencies ← 外部依赖说明
4.3 真实案例:三种典型 Skill 的对比
以社区中广泛使用的三类 Skill 为例,展示不同领域 Skill 的结构差异:
| 维度 | 🛠️ skill-creator | 📝 commit-message | 🧪 code-review |
|---|---|---|---|
| 核心能力 | 创建、测试和迭代优化 Skill | 根据 Git diff 生成规范的 commit message | 自动审查代码质量,输出改进建议 |
| references/ | 1 个 schemas.md(定义全部 JSON 数据结构) | 1 个 conventional-commits.md(提交规范) | 2 个文件(代码规范 + 常见反模式) |
| scripts/ | 8 个 Python 脚本(评估、基准测试、报告生成) | 无 | 1 个 lint 聚合脚本 |
| assets/ | 2 个 HTML(评估查看器 + 报告模板) | 无 | 1 个 review-template.md |
| agents/ | 3 个子 Agent(analyzer / comparator / grader) | 无 | 无 |
| Skill 类型 | 侧重「脚本执行 + 评估闭环」 | 侧重「纯知识规范」(无脚本无模板) | 侧重「规范参考 + 模板输出」 |
三个案例的设计启示:
- skill-creator 是"重型 Skill"的代表------大量脚本+子 Agent+评估流水线,适合需要迭代验证的复杂场景。注意它额外使用了
agents/目录存放子 Agent 定义,这是对标准四目录结构的扩展,适用于需要多 Agent 协作的高级场景 - commit-message 是"轻量 Skill"的典范------只需一个 SKILL.md + 一个参考规范,Skill 不一定要"大而全"
- code-review 是"中间路线"------参考文档+模板,平衡了灵活性和标准化
🔍 核心原则 :没有两个 Skill 长得一模一样。根据领域特点决定各目录的权重------简单任务别过度设计,复杂任务别偷工减料。
4.4 三级渐进加载机制
元数据 ~100 词"] == "始终在上下文" ==> B["📄 Level 2
SKILL.md 正文 <5K 词"] B == "按需读入上下文" ==> C["📚 Level 3
references/ scripts/ assets/"] style A fill:#eff6ff,stroke:#3b82f6,stroke-width:3px,color:#1e293b style B fill:#f5f3ff,stroke:#8b5cf6,stroke-width:3px,color:#1e293b style C fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b
图 4:三级渐进加载------从元数据到完整资源的按需读取
系统可以同时挂载数十个 Skill 的元数据(Level 1),但只有被触发的 Skill 才会占用上下文窗口。就像手机上装了 100 个 App,但只有正在使用的才占内存。
5. 手把手定制你的第一个 Skill
🛠️ 理论够了,撸起袖子实战。本节提供两种方式------手工创建 和借助 Skill Creator 自动创建。
5.1 方式一:手工创建(适合简单 Skill)
Step 1:明确定位
在动手之前,先回答三个问题:
| 问题 | 示例回答 |
|---|---|
| 解决什么问题? | 让 AI 根据 Git diff 自动生成 Conventional Commits 格式的提交信息 |
| 触发条件是什么? | "commit message、提交信息、git commit" |
| 需要什么资源? | Conventional Commits 规范文档 |
⚠️ 常见错误 :一个 Skill 应该只做一件事并做到极致。试图同时处理架构图+PPT+文档的 Skill,该拆。
Step 2:创建目录
bash
mkdir -p .codebuddy/skills/my-skill/{references,scripts,assets}
touch .codebuddy/skills/my-skill/SKILL.md
Step 3:编写 SKILL.md
以「Commit Message 生成器」为例:
yaml
---
name: commit-message
description: "Use this skill when users need to generate commit messages
following Conventional Commits specification. Trigger when: 'commit message',
'提交信息', 'git commit', '写提交', 'conventional commit'."
---
markdown
# Commit Message Generator
## Quick Reference
| Task | Guide |
|------|-------|
| 提交规范 | Read [references/conventional-commits.md] |
## Workflow
### Step 1: 读取 git diff 或用户描述的变更内容
### Step 2: 识别变更类型(feat/fix/refactor/docs/chore 等)
### Step 3: 确定影响范围(scope)
### Step 4: 生成符合 Conventional Commits 格式的提交信息
### Step 5: 如有 Breaking Changes,补充 BREAKING CHANGE footer
Step 4:编写参考文档和模板
在 references/ 中放 AI 工作时需要参考的规范,在 assets/ 中放输出模板。
Step 5:description 编写七条黄金法则
| 法则 | ✅ 正例 | ❌ 反例 |
|---|---|---|
| 含触发关键词 | "Trigger: '架构图', 'architecture'" |
"生成图" |
| 说明能力边界 | "commit messages following Conventional Commits" |
"各种文本" |
| 中英双语 | "'写Wiki', 'AI Wiki'" |
只写英文 |
| 控制 100 词 | 精炼 2-3 句 | 500 字论文 |
| 避免泛化 | "PPTX presentation file" |
"任何文件" |
| 含输出格式 | "produces HTML pages" |
不提格式 |
| 适度"主动" | "Make sure to use this skill whenever the user mentions dashboards" |
过于被动,导致该触发时不触发 |
💡 来自 skill-creator 的经验:description 宁可"主动"一点,因为 AI 当前有"欠触发"倾向------宁可多匹配,也不要在用户需要时沉默。
5.2 方式二:使用 Skill Creator(推荐,适合复杂 Skill)
手工创建适合轻量 Skill,但如果你的 Skill 涉及复杂工作流、需要评估迭代,那么推荐使用 skill-creator ------一个专门用来「创建 Skill 的 Skill」。
什么是 Skill Creator?
Skill Creator 是 Anthropic 官方提供的元技能(Meta-Skill),它的核心理念是:用 AI 来创建给 AI 用的技能包。它内置了完整的 Skill 创建→测试→评估→迭代优化闭环。
Skill Creator 的工作流程
| 阶段 | 做什么 | AI 的角色 |
|---|---|---|
| 1. 捕获意图 | 明确 Skill 功能、触发条件、输出格式 | AI 主动提问,引导你厘清需求 |
| 2. 访谈研究 | 讨论边界情况、输入输出、成功标准 | AI 查找文档、研究最佳实践 |
| 3. 编写草稿 | 自动生成 SKILL.md + 目录结构 | AI 根据访谈结果一键生成 |
| 4. 创建测试 | 设计 2-3 个真实用户场景的测试用例 | AI 提议测试用例,你确认 |
| 5. 并行评估 | 对比"有 Skill"和"无 Skill"的输出质量 | AI 同时启动两组测试,自动对比 |
| 6. 迭代改进 | 根据评估反馈优化 Skill | AI 分析差距,提出改进方案 |
| 7. 扩大测试 | 增加测试用例,确保泛化能力 | 重复 5-6 直到满意 |
实战:用 Skill Creator 创建一个 Code Review Skill
bash
# 第一轮对话:启动创建
"我想创建一个 code-review Skill,能自动审查 Python 代码的质量"
# AI 会主动访谈你:
# - 关注哪些维度?(性能/安全/可读性/命名规范?)
# - 输出什么格式?(Markdown 报告/内联注释/JSON?)
# - 有没有团队已有的代码规范?
# 第二轮对话:确认草稿
"大纲 OK,请生成 SKILL.md 草稿"
# AI 自动生成完整的目录结构:
# code-review/
# ├── SKILL.md
# ├── references/
# │ ├── python-style-guide.md
# │ └── common-antipatterns.md
# └── assets/
# └── review-template.md
# 第三轮对话:测试评估
"请创建测试用例并运行评估"
# AI 生成测试用例,并行运行"有/无 Skill"对比测试,
# 生成可视化评估报告,让你直观看到 Skill 的效果
# 第四轮对话:迭代优化
"安全维度的审查不够深入,参考 OWASP Top 10 加强"
# AI 更新 references/,优化工作流,重新评估
Skill Creator 的独门利器
| 特性 | 说明 |
|---|---|
| A/B 对比测试 | 同时运行"有 Skill"和"无 Skill"版本,量化 Skill 带来的提升 |
| 子 Agent 评估 | 内置 analyzer(分析输出)、comparator(对比差异)、grader(打分)三个评估 Agent |
| Description 优化器 | 自动生成触发词测试,优化 description 的匹配准确率 |
| 评估可视化 | 生成 HTML 评估报告,一目了然地查看每个测试用例的表现 |
| 基准测试 | 多轮迭代的性能基准对比,确保每次修改都是在进步 |
💡 选择建议:如果你的 Skill 只是简单的知识规范(如 commit-message),手工创建 5 分钟搞定;如果涉及复杂工作流、需要反复调优(如 code-review、架构图生成),用 Skill Creator 能节省大量试错时间。
6. 多 Skill 协同
🎼 单个 Skill 是独奏,多个 Skill 协同才是交响乐。
6.1 跨 Skill 调用实例
以一个典型的文档生成场景为例------tech-wiki Skill 在生成技术文档时,调用 diagram-generator Skill 自动绘制架构图:
图 5:tech-wiki 与 diagram-generator 的跨 Skill 协作流程
6.2 协作设计模式
| 模式 | 描述 | 示例 |
|---|---|---|
| 嵌套调用 | Skill A 的某个 Step 显式调用 Skill B | tech-wiki → diagram-generator |
| 共享资源 | 多个 Skill 引用相同的 references | 共用 coding-standards.md |
| 管道串联 | A 的输出作为 B 的输入 | 代码分析→API 文档→Wiki |
| 并行独立 | 各自处理不同部分 | 同时生成代码+测试+文档 |
6.3 管理最佳实践
- 命名空间 :
领域-功能格式(code-review、commit-message、api-doc) - 单一职责:宁可多建几个小 Skill 也不要一个大而全
- 松耦合:Skill 之间通过文件系统交互,不依赖内部 API
- 版本控制:Skill 文件跟项目代码一起 Git 管理
- 文档先行:先写 description,确保触发条件清晰
7. Skill 使用核心技巧
🎯 本节是全文重点中的重点------从"能用"到"用好"的进阶秘籍。每一条都来自实战经验的提炼。
7.1 触发技巧:让 Skill 精准命中
技巧 1:使用精确触发词
| 场景 | ❌ 模糊说法 | ✅ 精确触发 |
|---|---|---|
| 生成架构图 | "帮我画个图" | "生成一张架构图 ,用深色科技风" |
| 写提交信息 | "帮我提交代码" | "根据 git diff 生成 commit message" |
| 做代码审查 | "看看我的代码" | "对这个 PR 做一次 code review" |
技巧 2:@mention 直接引用 Skill 路径
bash
@.codebuddy/skills/commit-message 根据当前 git diff 生成提交信息
绕过关键词匹配,直接指定 Skill------100% 命中率,这是最可靠的触发方式。
技巧 3:描述期望的输出格式
css
帮我做一次 **code review**,重点关注安全漏洞和性能问题,输出 Markdown 报告
明确输出格式帮助 AI 选对 Skill。
7.2 上下文管理:让 Skill 读到该读的
技巧 4:引导 AI 按需加载 references
Skill 的 references/ 不会一次全部加载。显式引导:
bash
请参考 references/cloud-icons-guide.md,为架构图每个节点添加专业图标
技巧 5:分步骤交互,不要一次性倾倒
按 Skill 的 Workflow 步骤逐轮推进,而非一条消息交代所有需求:
bash
# 第一轮:明确需求
"根据 git diff 生成 **commit message**,遵循 Conventional Commits 规范"
# 第二轮:补充上下文
"这次改动涉及用户认证模块的重构,scope 是 auth"
# 第三轮:微调输出
"body 部分再补充一下 Breaking Change 的影响说明"
技巧 6:用 @attach 提供项目上下文
bash
@src/api/routes.ts 参考这些路由定义,生成 API 文档
7.3 质量控制:让输出达到专业级
技巧 7:利用内置质量检查清单
完成初稿后显式要求自检:
objectivec
请对照 SKILL.md 中的质量检查清单,检查一遍输出是否合格
技巧 8:提供反面示例(Few-shot Negative)
"不要什么"比"要什么"更有效:
注意:不要使用白色背景,不要超过 15 个节点,不要用默认 Mermaid 主题
技巧 9:迭代优化而非推倒重来
bash
# ❌ 低效
"架构图不好看,重新画"
# ✅ 高效
"架构图整体不错,Redis 节点边框改红色,数据流箭头加标签"
保留好的部分,只修改不满意的部分,效率提升 10 倍。
7.4 定制进阶:让 Skill 更懂你
技巧 10:在 references/ 中沉淀团队知识
规则:如果你发现同一句话对 AI 说了 3 次,就该写进 references/。
| 重复的口头指令 | 应该沉淀的文件 |
|---|---|
| "用我们公司的配色" | references/brand-colors.md |
| "按我们的代码规范" | references/code-style.md |
| "部署到 K8s 集群" | references/deploy-guide.md |
技巧 11:用 assets/ 模板固化最佳实践
团队的标准化输出格式放进 assets/,AI 每次基于模板生成,保证格式一致。
技巧 12:用 scripts/ 实现确定性操作
不该 AI 自由发挥的操作(如文件格式转换、截图)写成脚本:
python
# scripts/html2png.py --- 确定性地将 HTML 转为 PNG
# AI 不需要"想"怎么截图,直接执行就行
7.5 效率提升:少花 Token,多出活
技巧 13:善用三级加载,减少 Token 消耗
在 SKILL.md 的 Workflow 中,只在需要的 Step 里引用对应文件:
markdown
### Step 3: 生成架构图
Read [references/design-spec.md] ← 只在这一步加载
### Step 5: 编写正文
(不需要设计规范,不加载)
技巧 14:把大参考文档拆成小文件
bash
# ❌ 低效:一个大文件全部加载
references/complete-guide.md # 5000 行
# ✅ 高效:多个小文件按需加载
references/
├── color-palette.md # 200 行
├── layout-rules.md # 300 行
├── icon-guide.md # 500 行
└── typography.md # 150 行
技巧 15:复用已有 Skill
创建新 Skill 前先检查:
bash
ls .codebuddy/skills/
head -5 .codebuddy/skills/*/SKILL.md
7.6 调试技巧:Skill 不按预期工作时
技巧 16:检查 description 关键词覆盖
yaml
# 问题:用户说"画流程图"但 Skill 没触发
# 原因:description 里只写了"架构图"
# 修复:添加缺失的触发词
description: "... '架构图', '流程图', 'flow chart'..."
技巧 17:检查 SKILL.md 中的引用路径
markdown
# ❌ 错误:绝对路径
Read [/Users/xxx/skills/my-skill/references/guide.md]
# ✅ 正确:相对路径
Read [references/guide.md]
技巧 18:用"干跑"模式验证
bash
请按照 @.codebuddy/skills/my-skill 的 Workflow,
告诉我你打算读取哪些文件、执行哪些步骤、生成什么输出。
(先不实际执行,只输出计划)
7.7 技巧速查表
| # | 技巧 | 类别 | 一句话总结 |
|---|---|---|---|
| 1 | 精确触发词 | 触发 | 用 description 里的关键词发起请求 |
| 2 | @mention 路径 | 触发 | 直接引用 Skill 目录,100% 命中 |
| 3 | 描述输出格式 | 触发 | 明确期望格式帮 AI 选对 Skill |
| 4 | 引导按需加载 | 上下文 | 显式引用 references/ 中的文件 |
| 5 | 分步骤交互 | 上下文 | 按 Workflow 步骤逐轮推进 |
| 6 | @attach 文件 | 上下文 | 用 @ 引用项目中的已有文件 |
| 7 | 自检清单 | 质量 | 让 AI 对照清单自查 |
| 8 | 反面示例 | 质量 | "不要什么"比"要什么"更有效 |
| 9 | 迭代优化 | 质量 | 小改比推倒重来效率高 10 倍 |
| 10 | 沉淀 references | 定制 | 重复说 3 次的话写成文件 |
| 11 | 模板固化 | 定制 | 标准化输出放 assets/ |
| 12 | 脚本确定性 | 定制 | 不该自由发挥的操作写脚本 |
| 13 | 按需加载 | 效率 | 只在需要的 Step 里 Read |
| 14 | 分拆大文件 | 效率 | 小文件按需加载更省 Token |
| 15 | 复用 Skill | 效率 | 新建前先检查已有的 |
| 16 | 检查关键词 | 调试 | 没触发?看 description 触发词 |
| 17 | 检查路径 | 调试 | 加载失败?看相对路径 |
| 18 | 干跑验证 | 调试 | 先输出计划再实际执行 |
8. 哲学反思
🔭 工具塑造思维,思维反过来创造新工具。
8.1 从 Skill 看"知识的可执行化"
Skill 本质上做了一件很深刻的事:把隐性知识变成了可执行的显性知识。
传统知识管理(Confluence、内部文档)是"人读给自己看的"------依赖读者的理解和执行力。而 Skill 是"写给 AI 看的"------它必须足够精确、结构化、无歧义,因为执行者是一个"聪明但死板"的语言模型。
这种转变逼着我们重新审视自己的知识:你以为你知道怎么画架构图,但当你试图把它写成 Skill 时,你会发现有 80% 的决策是"感觉"------你从来没有明确定义过"什么时候用粗箭头,什么时候用虚线"。Skill 迫使这些"感觉"变成"规则"。
某种意义上,编写 Skill 的过程就是知识考古的过程------挖掘埋藏在直觉中的专业判断,把它变成可传承、可复用的文字。
8.2 未解之题
「好的技术回答旧问题,伟大的技术提出新问题。」
- Skill 的粒度悖论:太细碎则管理成本高,太粗放则不够专业。最佳粒度在哪里?目前没有公认答案
- Skill 间的冲突解决:当两个 Skill 的 description 都匹配当前任务时,谁优先?如何避免"多个 Skill 抢活"?
- Skill 的过期问题:技术迭代很快,写好的 Skill 多久会过时?谁负责更新?这本质上是知识管理的老问题
8.3 未来展望
Skill 目前还处于"手工作坊"阶段------每个 Skill 都是手写的。但可以预见的趋势是:
- Skill 生成 Skill:让 AI 根据用户的使用模式,自动提炼出新的 Skill(Meta-Skill)
- Skill 市场 :像 npm/pip 一样的 Skill 包管理器,
skill install code-review@v3 - 自适应 Skill:Skill 根据执行反馈自动优化自己的 Workflow,从"静态手册"进化为"动态专家"
💭 结语:当我们教会 AI 使用 Skill,我们其实在做一件更根本的事------梳理和结构化人类的专业知识。也许 Skill 最大的价值不在于让 AI 更强,而在于迫使我们搞清楚自己到底「知道什么」。这个过程本身,比任何工具都更有价值。
9. 参考资料
📚 站在巨人的肩膀上------不过先确认巨人没有站在流沙上。
协议与规范
- Anthropic, "Model Context Protocol (MCP) Specification", 2024. modelcontextprotocol.io/
- 📌 推荐理由:MCP 是理解 Skill 执行层的关键协议,读完就明白 Tool Use 的运作机制
- OpenAI, "Function Calling / Tool Use Documentation", 2024. platform.openai.com/docs/guides...
- 📌 推荐理由:Tool Use 的鼻祖级文档,理解 AI 如何调用外部工具
Skill 实践
- CodeBuddy Skills Documentation
- 📌 适合:想要从零创建 Skill 的开发者
- Cursor
.cursorrulesCommunity Collection, GitHub- 📌 亮点:大量社区贡献的 System Prompt 规则,可作为 Skill 的灵感来源
推荐阅读
- Simon Willison, "Prompt Engineering and LLM Customization", 2024
- 📌 亮点:从 Prompt Engineering 到结构化知识管理的演进思考
- Harrison Chase, "Building LLM Applications with LangChain", 2024
- 📌 亮点:Agent + Tool Use 的工程实践,与 Skill 理念相通