当人类知识学会自己奔跑--skill

21 阅读23分钟

知行合一:当人类知识学会自己奔跑--skill

一句话摘要:Skill 是大模型的「外挂技能包」,通过标准化的 YAML + Markdown 文件结构赋予 AI 助手领域专家级能力——如果说大模型是一个聪明但没有实战经验的毕业生,Skill 就是那本让他秒变老司机的「新员工手册」。

想象一下:你教 ChatGPT 画架构图,每次都要重复说一遍"用深色背景、加图标、记得画箭头"……有了 Skill,说一次就够了,而且它比你记得还清楚。

属性信息
领域AI 工程 / LLM 应用 / 开发者工具
关键词Skill, MCP, Tool Use, Prompt Engineering, Agent
难度入门 → 中级
阅读体验约 15 分钟(含边看边试的时间)
最后更新2026-03-02

目录


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 / CursorAI 辅助开发的宿主环境

2.1 大模型与 Skill 全景调用关系

下图展示了从用户指令到 Skill 执行的完整调度链路。

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#f0f5ff', 'primaryTextColor': '#1e293b', 'primaryBorderColor': '#3b82f6', 'lineColor': '#64748b', 'secondaryColor': '#f8fafc', 'tertiaryColor': '#ffffff', 'background': '#ffffff', 'mainBkg': '#f0f5ff', 'nodeBorder': '#3b82f6', 'clusterBkg': '#f8fafc', 'clusterBorder': '#cbd5e1', 'titleColor': '#1e40af', 'edgeLabelBackground': '#ffffff', 'nodeTextColor': '#1e293b'}}}%%
graph TB
    subgraph USER ["👤 用户层 — User Layer"]
        U1["👤 开发者"]
    end

    subgraph IDE ["🖥️ IDE 层 — Host Environment"]
        I1["🖥️ CodeBuddy / Cursor"]
    end

    subgraph LLM ["🧠 大模型层 — LLM Engine"]
        L1["🧠 Claude / GPT<br/>推理引擎"]
        L2["🔍 Skill Matcher<br/>技能匹配器"]
        L3["📄 Context Builder<br/>上下文组装器"]
    end

    subgraph SKILL_REG ["📦 技能注册 — Skill Registry"]
        R1["📦 Skill Registry<br/>技能注册中心"]
    end

    subgraph MCP_LAYER ["🌐 MCP 协议层 — Model Context Protocol"]
        M1["🌐 MCP Server"]
        M2["🔗 MCP Client"]
        M3["📋 Capability Discovery<br/>能力发现"]
    end

    subgraph SKILL ["📦 Skill 层 — Skill Packs"]
        S1["📄 SKILL.md<br/>入口定义"]
        S2["📚 references/<br/>参考文档"]
        S3["⚙️ scripts/<br/>可执行脚本"]
        S4["🎨 assets/<br/>模板资源"]
    end

    subgraph TOOL_DISP ["⚙️ 工具调度 — Tool Dispatcher"]
        D1["⚙️ Tool Dispatcher<br/>工具调度器"]
    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 全景调用关系——从用户指令到工具执行的完整链路

图中关键路径解读:

  1. 用户→IDE→LLM→Skill(主调用链 + 知识加载链):用户的自然语言指令通过 IDE 传递给大模型,Skill Matcher 通过 Skill Registry 匹配对应的 Skill,Context Builder 按三级渐进机制加载 Skill 内容——先读元数据,再读 SKILL.md 正文,最后按需读取 references/scripts/assets
  2. LLM→IDE→MCP→Tool(工具执行链):LLM 生成 Tool Call 请求后交给 IDE,IDE 通过 MCP 协议进行能力发现和注册,Tool Dispatcher 将请求路由到具体的工具函数
  3. 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 的调用时序

从一个具体请求的视角,看看各组件之间的交互时序:

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#f0f5ff', 'primaryTextColor': '#1e293b', 'primaryBorderColor': '#3b82f6', 'lineColor': '#64748b', 'secondaryColor': '#f8fafc', 'tertiaryColor': '#ffffff', 'background': '#ffffff', 'mainBkg': '#f0f5ff', 'nodeBorder': '#3b82f6', 'actorBkg': '#f0f5ff', 'actorBorder': '#3b82f6', 'actorTextColor': '#1e293b', 'actorLineColor': '#64748b', 'signalColor': '#475569', 'signalTextColor': '#1e293b', 'labelBoxBkgColor': '#f0f5ff', 'labelBoxBorderColor': '#3b82f6', 'labelTextColor': '#1e40af', 'loopTextColor': '#b45309', 'noteBkgColor': '#f5f3ff', 'noteTextColor': '#1e293b', 'noteBorderColor': '#8b5cf6', 'activationBkgColor': '#e0f2fe', 'activationBorderColor': '#3b82f6', 'sequenceNumberColor': '#ffffff'}}}%%
sequenceDiagram
    participant U as 👤 Developer
    participant IDE as 🖥️ IDE
    participant LLM as 🧠 LLM Engine
    participant SK as 📦 Skill Pack
    participant MCP as 🌐 MCP Server
    participant FS as 📂 File System

    U->>+IDE: 📨 "根据 git diff 生成提交信息"
    IDE->>+LLM: 🔗 转发请求 + 系统提示词
    Note over LLM: 🔍 扫描可用 Skill 列表
    LLM->>LLM: 匹配 commit-message Skill
    LLM->>+SK: 📄 读取 SKILL.md
    SK-->>-LLM: 返回工作流指令
    Note over LLM: 📋 解析 Workflow Steps
    LLM->>+SK: 📚 读取 references/
    SK-->>-LLM: 返回提交规范
    LLM->>+SK: 🎨 读取 assets/(如有)
    SK-->>-LLM: 返回模板

    Note over LLM: 🧠 组装上下文,开始生成

    LLM->>+MCP: ⚡ Tool Call: execute_command
    MCP->>+FS: 💻 git diff --cached
    FS-->>-MCP: ✅ 返回 diff 内容
    MCP-->>-LLM: 返回结果

    LLM->>+MCP: ⚡ Tool Call: write_to_file
    MCP->>+FS: 📝 写入 commit-message.txt
    FS-->>-MCP: ✅ 写入成功
    MCP-->>-LLM: 返回结果

    LLM-->>-IDE: 🚀 完成
    IDE-->>-U: 📊 展示生成的提交信息

图 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 不是竞争关系,而是互补关系

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#f0f5ff', 'primaryTextColor': '#1e293b', 'primaryBorderColor': '#3b82f6', 'lineColor': '#64748b', 'secondaryColor': '#f8fafc', 'tertiaryColor': '#ffffff', 'background': '#ffffff', 'mainBkg': '#f0f5ff', 'nodeBorder': '#3b82f6', 'clusterBkg': '#f8fafc', 'clusterBorder': '#cbd5e1', 'titleColor': '#1e40af', 'edgeLabelBackground': '#ffffff', 'nodeTextColor': '#1e293b'}}}%%
graph LR
    subgraph KNOW ["📚 知识层 — What & How"]
        K1["📄 SKILL.md<br/>工作流指令"]
        K2["📚 references/<br/>参考规范"]
    end

    subgraph EXEC ["⚡ 执行层 — With What"]
        E1["🌐 MCP Server<br/>能力注册"]
        E2["⚙️ Tool Use<br/>函数调用"]
    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 标准目录结构

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(元数据)
---
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."
---
字段作用要求
nameSkill 唯一标识全小写,短横线分隔
description触发条件和功能描述含中英文触发词,~100 词

description 是 Skill 匹配的核心——LLM 根据它判断是否激活该 Skill。

Part 2: 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 三级渐进加载机制

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#f0f5ff', 'primaryTextColor': '#1e293b', 'primaryBorderColor': '#3b82f6', 'lineColor': '#64748b', 'secondaryColor': '#f8fafc', 'tertiaryColor': '#ffffff', 'background': '#ffffff', 'mainBkg': '#f0f5ff', 'nodeBorder': '#3b82f6', 'clusterBkg': '#f8fafc', 'clusterBorder': '#cbd5e1', 'titleColor': '#1e40af', 'edgeLabelBackground': '#ffffff', 'nodeTextColor': '#1e293b'}}}%%
graph LR
    A["📋 Level 1<br/>元数据 ~100 词"] == "始终在上下文" ==> B["📄 Level 2<br/>SKILL.md 正文 &lt;5K 词"]
    B == "按需读入上下文" ==> C["📚 Level 3<br/>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:创建目录
mkdir -p .codebuddy/skills/my-skill/{references,scripts,assets}
touch .codebuddy/skills/my-skill/SKILL.md
Step 3:编写 SKILL.md

以「Commit Message 生成器」为例:

---
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'."
---
# 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. 迭代改进根据评估反馈优化 SkillAI 分析差距,提出改进方案
7. 扩大测试增加测试用例,确保泛化能力重复 5-6 直到满意
实战:用 Skill Creator 创建一个 Code Review Skill
# 第一轮对话:启动创建
"我想创建一个 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 自动绘制架构图:

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#f0f5ff', 'primaryTextColor': '#1e293b', 'primaryBorderColor': '#3b82f6', 'lineColor': '#64748b', 'secondaryColor': '#f8fafc', 'tertiaryColor': '#ffffff', 'background': '#ffffff', 'mainBkg': '#f0f5ff', 'nodeBorder': '#3b82f6', 'clusterBkg': '#f8fafc', 'clusterBorder': '#cbd5e1', 'titleColor': '#1e40af', 'edgeLabelBackground': '#ffffff', 'nodeTextColor': '#1e293b'}}}%%
graph LR
    subgraph WIKI ["📝 tech-wiki Skill"]
        W1["📋 分析主题"] --> W2["📐 构建大纲"]
        W2 --> W3["🏗️ 生成架构图"]
        W3 --> W4["📊 Mermaid 图表"]
        W4 --> W5["✍️ 编写正文"]
        W5 --> W6["📦 组装输出"]
    end

    subgraph DIAG ["🎨 diagram-generator Skill"]
        A1["📄 读取模板"] --> A2["🎨 生成图表"]
        A2 --> A3["📸 导出 PNG"]
    end

    W3 == "调用" ==> A1
    A3 == "返回 PNG" ==> W4

    style W1 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px,color:#1e293b
    style W2 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px,color:#1e293b
    style W3 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:3px,color:#1e293b
    style W4 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px,color:#1e293b
    style W5 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px,color:#1e293b
    style W6 fill:#f5f3ff,stroke:#8b5cf6,stroke-width:2px,color:#1e293b
    style A1 fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b
    style A2 fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b
    style A3 fill:#f0fdf4,stroke:#10b981,stroke-width:2px,color:#1e293b

图 5:tech-wiki 与 diagram-generator 的跨 Skill 协作流程

6.2 协作设计模式

模式描述示例
嵌套调用Skill A 的某个 Step 显式调用 Skill Btech-wiki → diagram-generator
共享资源多个 Skill 引用相同的 references共用 coding-standards.md
管道串联A 的输出作为 B 的输入代码分析→API 文档→Wiki
并行独立各自处理不同部分同时生成代码+测试+文档

6.3 管理最佳实践

  1. 命名空间领域-功能 格式(code-reviewcommit-messageapi-doc
  2. 单一职责:宁可多建几个小 Skill 也不要一个大而全
  3. 松耦合:Skill 之间通过文件系统交互,不依赖内部 API
  4. 版本控制:Skill 文件跟项目代码一起 Git 管理
  5. 文档先行:先写 description,确保触发条件清晰

7. Skill 使用核心技巧

🎯 本节是全文重点中的重点——从"能用"到"用好"的进阶秘籍。每一条都来自实战经验的提炼。

7.1 触发技巧:让 Skill 精准命中

技巧 1:使用精确触发词
场景❌ 模糊说法✅ 精确触发
生成架构图"帮我画个图""生成一张架构图,用深色科技风"
写提交信息"帮我提交代码""根据 git diff 生成 commit message"
做代码审查"看看我的代码""对这个 PR 做一次 code review"
技巧 2:@mention 直接引用 Skill 路径
@.codebuddy/skills/commit-message 根据当前 git diff 生成提交信息

绕过关键词匹配,直接指定 Skill——100% 命中率,这是最可靠的触发方式。

技巧 3:描述期望的输出格式
帮我做一次 **code review**,重点关注安全漏洞和性能问题,输出 Markdown 报告

明确输出格式帮助 AI 选对 Skill。

7.2 上下文管理:让 Skill 读到该读的

技巧 4:引导 AI 按需加载 references

Skill 的 references/ 不会一次全部加载。显式引导:

请参考 references/cloud-icons-guide.md,为架构图每个节点添加专业图标
技巧 5:分步骤交互,不要一次性倾倒

按 Skill 的 Workflow 步骤逐轮推进,而非一条消息交代所有需求:

# 第一轮:明确需求
"根据 git diff 生成 **commit message**,遵循 Conventional Commits 规范"

# 第二轮:补充上下文
"这次改动涉及用户认证模块的重构,scope 是 auth"

# 第三轮:微调输出
"body 部分再补充一下 Breaking Change 的影响说明"
技巧 6:用 @attach 提供项目上下文
@src/api/routes.ts 参考这些路由定义,生成 API 文档

7.3 质量控制:让输出达到专业级

技巧 7:利用内置质量检查清单

完成初稿后显式要求自检:

请对照 SKILL.md 中的质量检查清单,检查一遍输出是否合格
技巧 8:提供反面示例(Few-shot Negative)

"不要什么"比"要什么"更有效:

注意:不要使用白色背景,不要超过 15 个节点,不要用默认 Mermaid 主题
技巧 9:迭代优化而非推倒重来
# ❌ 低效
"架构图不好看,重新画"

# ✅ 高效
"架构图整体不错,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 自由发挥的操作(如文件格式转换、截图)写成脚本:

# scripts/html2png.py — 确定性地将 HTML 转为 PNG
# AI 不需要"想"怎么截图,直接执行就行

7.5 效率提升:少花 Token,多出活

技巧 13:善用三级加载,减少 Token 消耗

在 SKILL.md 的 Workflow 中,只在需要的 Step 里引用对应文件:

### Step 3: 生成架构图
Read [references/design-spec.md]   ← 只在这一步加载

### Step 5: 编写正文
(不需要设计规范,不加载)
技巧 14:把大参考文档拆成小文件
# ❌ 低效:一个大文件全部加载
references/complete-guide.md    # 5000 行

# ✅ 高效:多个小文件按需加载
references/
├── color-palette.md     # 200 行
├── layout-rules.md      # 300 行
├── icon-guide.md        # 500 行
└── typography.md         # 150 行
技巧 15:复用已有 Skill

创建新 Skill 前先检查:

ls .codebuddy/skills/
head -5 .codebuddy/skills/*/SKILL.md

7.6 调试技巧:Skill 不按预期工作时

技巧 16:检查 description 关键词覆盖
# 问题:用户说"画流程图"但 Skill 没触发
# 原因:description 里只写了"架构图"

# 修复:添加缺失的触发词
description: "... '架构图', '流程图', 'flow chart'..."
技巧 17:检查 SKILL.md 中的引用路径
# ❌ 错误:绝对路径
Read [/Users/xxx/skills/my-skill/references/guide.md]

# ✅ 正确:相对路径
Read [references/guide.md]
技巧 18:用"干跑"模式验证
请按照 @.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 都是手写的。但可以预见的趋势是:

  1. Skill 生成 Skill:让 AI 根据用户的使用模式,自动提炼出新的 Skill(Meta-Skill)
  2. Skill 市场:像 npm/pip 一样的 Skill 包管理器,skill install code-review@v3
  3. 自适应 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 .cursorrules Community 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 理念相通