Skill 定义

​ Skill 是一种给 AI agent 用的“小插件”或“工作说明书”。它会教大模型 如何稳定地完成某类特定任务,尤其适合重复、固定流程、需要遵循格式或团队规范的工作。简单概括:专业知识 + 操作流程 + 工具调用

和 MCP 及 Prompt 的区别

System Prompt 是一次性指令,MCP 是给 AI 装新手臂,Skill 是给 AI 装行为准则。

维度System PromptMCPSkill
本质一次性角色设定工具/能力扩展协议可复用行为约束
解决什么问题临时调整 AI 风格AI 连不到外部系统AI 不按规范工作
需要写代码是(Server/Client)非必须(纯 Markdown就可以,scripts为可选)
持久性仅当前对话持久(服务常驻)持久(文件存储)
面向人群所有人开发者所有人
典型例子“你是一个翻译助手”连接数据库、调用 API强制 TDD、规范 Git 提交

Skill 构成

1
2
3
4
5
6
my-skill/
├── SKILL.md          # Required: metadata + instructions
├── scripts/          # Optional: executable code
├── references/       # Optional: documentation
├── assets/           # Optional: templates, resources
└── ...               # Any additional files or directories

​ 一个技能就是一个包含 SKILL.md 文件的文件夹。该文件包含元数据(至少包括 namedescription )以及指导代理如何执行特定任务的指令。技能还可以捆绑脚本、参考资料、模板和其他资源。

SKILL.md = 触发说明 + 任务目标 + 输入要求 + 执行流程 + 输出格式 + 质量标准 + 限制规则 + 示例 + 外部资源说明

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
---
name: skill-unique-name  (必须)
description (必须): |
  触发场景描述。说明这个 Skill 做什么、什么时候应该使用。
  AI 会优先根据这里判断是否启用该 Skill。
license(可选): Apache-2.0 
metadata(可选) : 
  author: Luenci
  version: "1.0"
---  

# Skill 名称

`SKILL.md` 是 Skill 的入口文件,用来告诉 AI:这个 Skill 的用途、触发条件、输入要求、执行步骤、输出格式和限制规则。

## 1. Skill 做什么
说明 Skill 的核心能力和目标,例如:用于整理会议纪要、分析客户反馈、生成周报、处理文件等。

## 2. 什么时候使用
说明 Skill 的触发场景。用户提出哪些任务、提供哪些材料或使用哪些关键词时,AI 应该调用该 Skill。

## 3. 需要什么输入
说明用户需要提供的内容,例如文本、文件、表格、链接、模板、字段信息或其他上下文。

## 4. 具体执行步骤
说明 AI 应该按照什么流程完成任务,通常用 1、2、3 的步骤列出。

## 5. 输出格式
规定最终结果的结构,例如 Markdown、表格、JSON、邮件、报告模板或固定标题层级。

## 6. 质量标准
说明结果应满足的要求,例如准确、完整、简洁、结构化、可执行、不遗漏关键信息。

## 7. 特殊规则或限制
说明必须遵守的边界,例如不要编造、不要跳过校验、不要改变格式、缺失信息要标注“待确认”。

## 8. 示例
提供一个简短的用户输入和期望输出,帮助 AI 理解正确的处理方式和输出风格。

## 9. 需要调用的脚本、模板、参考资料
说明是否需要使用 `scripts/``references/``assets/` 中的脚本、模板、规范或示例文件。

三类可选资源详解

scripts/ 确定性脚本

用途: 把反复编写的代码固化成可直接执行的脚本。Skill 执行过程中可调用的脚本

适合场景:

  • 旋转 PDF:scripts/rotate_pdf.py
  • 解密音频:scripts/decrypt_ncm.py
  • 分析日志:scripts/parse_log.py

优势: 不需要读入上下文就能执行,节省 token。

references/ 参考文档

用途: 存储 AI 需要参考但不必一直占用上下文的知识。给 AI 提供背景知识和参考规范

适合场景:

  • 数据库表结构:references/schema.md
  • API 文档:references/api_docs.md
  • 公司政策:references/policies.md

设计原则: 按领域拆分成独立文件,用户问销售数据时只加载 sales.md,不加载 finance.md

assets/ 静态资源

用途: 存储输出中会用到的文件,不需要读入上下文。模板、静态文件

适合场景:

  • 前端模板:assets/frontend-template/
  • PPT 模板:assets/slides.pptx
  • 品牌 Logo:assets/logo.png
  • checklist 模板:checklist.md

使用参考

1
2
3
4
5
6
## 参考规范 请在审查前阅读 reference/style-guide.md 中的编码规范。 

## 执行流程 
	1. 运行 scripts/validate.sh 做静态检查 
	2. 按照 assets/checklist.md 逐项审查 
	3. 使用 assets/templates/report.md 格式输出结果

Skill 工作流程

  1. Discovery(发现): agent 启动时,智能体仅加载每个可用技能的名称和描述,加载技能介绍。后续按需调用技能
  2. Activation(加载):当任务与技能的描述匹配时,agent 会将完整的 SKILL.md 指令读入上下文。
  3. Execution(执行):agent 遵循指令,根据需要可选地执行捆绑的代码或加载引用的文件。

三级加载机制

Skill 采用"按需加载"的设计,避免浪费上下文窗口:

级别内容何时加载大小
第一级name + description始终在上下文中~100 词
第二级SKILL.md 正文Skill 被触发后< 5000 词
第三级scripts/ references/ assets/AI 判断需要时无限制

实际效果: AI 随时知道有哪些 Skill,但只有真正需要时才"打开"它。

Skill 编写实践

核心设计原则

原则 1:精简优先

上下文窗口是公共资源。每加一段文字都问自己:

“这是 AI 不知道的信息吗?删掉会有什么后果?”

不要写: “在开始之前,你需要理解这个任务的重要性…” 要写: 直接给出操作步骤。

原则 2:自由度要匹配任务

任务特性自由度写法
步骤固定、易出错具体脚本 + 严格参数
有首选方案、允许变化伪代码 + 可配置参数
多种方案均可、依赖上下文文字指导 + 启发式原则

原则 3:渐进式披露

SKILL.md 只放核心工作流,细节通过引用指向 references/ 文件:

1
2
3
4
5
6
7
8
## 高级功能

- **表单填写**:详见 [FORMS.md](references/FORMS.md)
- **API 参考**:详见 [API.md](references/API.md)

## 日志格式

详见 [references/log-format.md](references/log-format.md)

常见误区

误区正确做法
在 SKILL.md 正文写"何时使用"应写在 description 字段(正文触发后才加载,写了也没用)
创建 README.md、CHANGELOG.md只保留任务必需的文件
把所有细节塞进 SKILL.md细节放 references/SKILL.md 只放核心流程
跳过脚本测试脚本必须实际运行验证
深层嵌套引用所有 references 文件直接从 SKILL.md 一层引用

SKill 示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
name: meeting-notes-summarizer
description: |
  Use when the user provides Chinese meeting notes, call transcripts, chat logs, or project discussions and asks to generate a structured meeting summary, action items, owners, deadlines, risks, and open questions.
---

# 会议纪要整理助手

## 核心原则
- 只基于用户提供的内容总结,不编造信息。
- 区分“已确认结论”“讨论中事项”和“待确认问题”。
- 输出必须结构化、简洁、可执行。
- 缺失信息明确标注“未提及”或“待确认”。

## 适用输入
用户可能提供以下内容:
- 原始会议转写文本
- 零散会议笔记
- 项目讨论记录
- Slack、飞书、微信等聊天记录
- 多人评审或复盘材料

## 执行流程
1. 阅读用户提供的全部内容。
2. 识别会议主题、背景和核心讨论点。
3. 提取明确达成一致的关键结论。
4. 提取行动项,包括任务、负责人、截止时间和状态。
5. 标记风险、阻塞点和待确认问题。
6. 按指定输出格式生成会议纪要。
7. 输出前检查是否存在编造、遗漏或格式错误。

## 输出格式

请按以下格式输出:

# 会议纪要

## 一、会议主题
...

## 二、会议背景
...

## 三、关键结论
1. ...
2. ...

## 四、行动项
| 任务 | 负责人 | 截止时间 | 状态 |
|---|---|---|---|
| ... | ... | ... | ... |

## 五、风险与阻塞
- ...

## 六、待确认问题
- ...

## 七、简短总结
...

## 禁止行为
- 不要编造参会人、负责人、截止时间或结论。
- 不要把未确认的讨论写成已决定事项。
- 不要逐字复述原文。
- 不要省略风险、阻塞和待确认问题。
- 不要改变输出结构,除非用户明确要求。

## 质量检查
输出前确认:
- 关键结论是否都能从原文找到依据。
- 行动项是否包含任务、负责人、截止时间和状态。
- 缺失信息是否已标注“未提及”或“待确认”。
- 是否区分了结论、风险和待确认问题。

参考链接

  • 岛雨AI:https://juejin.cn/post/7620262637797408808
  • agentskills:https://agentskills.io/specification