12440 字
62 分钟
AI Skill 完全教程:从零到一,为你的 AI 打造专属技能(万字实操指南)

AI Skill 完全教程:从零到一,为你的 AI 打造专属技能(万字实操指南)#

引言:为什么 AI 需要 Skill#

过去两年,AI 行业最明显的一个变化,是大家不再满足于”和 AI 聊天”,而是开始要求 AI”替我干活”。

聊天只需要一个对话框:你问,它答。干活则完全不同——写一份周报要读取文件、整理数据、排版导出;发一条定时消息要创建任务、等待触发、执行发送;做一次线上巡检要访问网页、解析内容、对比结果。每一步都不是”生成一句话”那么简单,而是一连串带状态的行动。

为了让 AI 能干活,行业内出现过很多方案:插件(Plugin)、工具(Tool)、函数调用(Function Calling)、MCP(Model Context Protocol)、Agent 工作流……这些概念一度让人眼花缭乱。而其中有一个非常朴素、却非常实用的设计,正在被越来越多的 Agent 框架采用,它就是 Skill(技能)。

Skill 解决的是一个非常具体的问题:把你反复要 AI 做的那件事,打包成一套”说明书”,让 AI 一看到相关任务就知道该怎么专业地完成它。

这篇教程会从零开始,讲清楚 Skill 是什么、为什么值得写、怎么设计、怎么写、怎么用,并给出三个可以直接照抄的完整实战案例。全文超过一万字,建议收藏后跟着做一遍——读完你就能为自己的 AI 打造出真正好用的专属技能。

第一章:什么是 Skill#

1.1 一个直观的理解#

先忘掉所有技术术语,想象一个场景。

你是一家公司的老员工,带了一个新同事。这个新同事非常聪明、学得很快,但他刚入职,什么都不懂。你手头有一件做了几百次的例行工作,比如”处理客户投诉邮件”。你打算怎么教他?

选项 A:什么都不教,直接让他上手。结果他大概率会把投诉邮件回复得乱七八糟——因为”处理投诉”这件事里面有太多你不知道但默认知道的细节:要先看客户等级、要区分物流问题和质量问题、语气要诚恳但不能承诺赔偿、超过金额要走审批……

选项 B:你写一份《客户投诉处理手册》,里面写清楚:第一步干什么、什么情况走什么流程、哪些话术可以用、哪些红线不能碰、处理完要登记在哪。然后告诉新同事:“以后遇到客户投诉,先看这份手册。“从此他处理投诉的水平,就和你亲手做八九不离十。

Skill 就是那份手册。

Skill 是一份结构化的指令文档,描述”某类任务应该怎么被 AI 完成”。它通常包含:这个技能是干什么的、什么时候该用、怎么用、用的时候要注意什么、有哪些步骤、有哪些边界和禁忌。AI Agent 在运行时,会扫描自己可用的 Skill 列表,根据当前任务匹配最合适的 Skill,然后按照 Skill 里的说明去执行。

1.2 Skill 的三个核心组成#

一个完整可用的 Skill,通常由三部分组成:

  1. 说明书(SKILL.md):一份 Markdown 文档,用自然语言+少量结构描述”这个技能怎么用”。这是 Skill 的灵魂,AI 主要靠它理解任务。
  2. 辅助资源(可选):与技能相关的模板文件、参考文档、示例数据、配置文件等。比如一个”周报生成”技能,可以附带一份《周报模板.md》。
  3. 脚本或工具封装(可选):技能需要调用外部能力时,可以携带脚本(Python/Shell 等)或封装好的工具函数,AI 按说明书调用它们完成实际操作。

重要认知:Skill 的精华在”说明书”,不在代码。 哪怕没有任何脚本,只要说明书写得好,AI 也能用现有工具完成很多任务。脚本只是”锦上添花”,说明书才是”雪中送炭”。

1.3 Skill 的本质:给 AI 的”情境记忆”#

AI 模型本身不知道”你们公司处理投诉的流程”——这是私有知识,训练数据里没有。但 AI 有一个强大的能力:给它一段高质量的指令和上下文,它就能按图索骥地执行。

Skill 的本质,就是把”完成某类任务所需的私有知识、经验、流程、边界”,从你的脑子里、从文档堆里,翻译成 AI 能直接读取的指令。它不是模型参数的一部分,而是运行时注入的上下文——用的时候加载,不用的时候不占地方。

这也解释了为什么 Skill 如此灵活:你可以给 AI 装一个”博客发布技能”,它就学会了你的发布流程;装一个”数据清洗技能”,它就学会了你惯用的清洗规则;装一个”合规审查技能”,它就学会了你们公司的红线。每一个 Skill,都是一段被固化的经验。

第二章:Skill 与工具、插件、MCP 的关系#

很多人在学习时会混淆这几个概念。这一章用最直白的方式把边界划清楚。

2.1 Skill 与 Tool(工具)#

工具是”手”,Skill 是”用法说明”。

  • Tool(工具):AI 可以调用的一段程序,比如”读文件""发请求""执行命令""打开浏览器”。工具解决的是”能不能做”的问题——没有读文件工具,AI 就读不了文件。
  • Skill(技能):告诉 AI”什么时候该用哪个工具、按什么顺序用、用到什么程度算完成”。技能解决的是”会不会做、做得好不好”的问题。

举个例子:你有”读文件""写文件""执行命令”三个工具,也有 Python 环境。但如果你不告诉 AI 怎么发布博客,它面对”帮我把这篇稿子发到网站”依然手足无措——是先跑构建还是先提交?提交到哪个分支?要不要验证?这就是 Skill 发挥作用的地方。

所以两者不是替代关系,而是协作关系:Skill 调度工具,工具执行动作。一个 Skill 可以只用一个工具,也可以编排十几个工具完成复杂流程。

2.2 Skill 与 Plugin(插件)#

Plugin 是更早一代的产品形态(以 ChatGPT 插件为代表):一个插件 = 一段后端服务 + 一份 API 描述,AI 通过调用插件提供的接口获得外部能力。

区别在于:

  • Plugin 偏”服务”:通常部署在远端,AI 只能按你暴露的接口来调用,改功能要改服务端。
  • Skill 偏”指令”:本质是一份文本说明书,随 Agent 本地加载,你随时可以编辑、迭代、组合,改起来零成本。

Skill 更轻、更透明、更易迭代,这也是它被主流 Agent 框架青睐的原因。

2.3 Skill 与 MCP#

MCP(Model Context Protocol)是 Anthropic 提出的”AI 应用连接外部数据的开放协议”,可以理解成 AI 世界的 USB 接口标准:一个 MCP Server 提供若干工具,任何支持 MCP 的客户端都能直接使用。

  • MCP 解决”连接”:它让”给 AI 接一个外部系统”变得标准化。接了 MCP,AI 就能调用该服务器暴露的工具。
  • Skill 解决”使用”:它让”AI 知道怎么用好这些能力”变得可沉淀。

实践中两者经常叠加:一个 Skill 的说明书中,可能会指导 AI 去调用某个 MCP Server 提供的工具。你可以把 MCP 想象成”工具库”,把 Skill 想象成”使用手册”。

2.4 一张表看懂区别#

概念一句话解决什么问题形态
Tool能执行的动作能不能做程序/函数
Plugin远端封装的服务外部能力接入服务+接口
MCP工具连接的协议标准化连接协议+Server
Skill任务执行的说明书会不会做、做得好不好文档+资源+脚本

记住一句话:工具给 AI 手,Skill 给 AI 脑子里的流程。 有了 Skill,AI 才从”什么都能干一点”变成”你交代的活干得专业”。

第三章:为什么要写 Skill(价值)#

有人可能会问:我现在直接用 AI 也能干活,为什么要费劲写 Skill?这一章讲清楚写 Skill 的五层价值。

3.1 价值一:稳定——把”发挥”变成”标准”#

直接让 AI 干活,同一个任务今天做和明天做,结果可能天差地别。因为模型输出有随机性,而你给的上下文每次也不完全一样。

写了 Skill 之后,AI 每次都按同一份说明书执行:同样的步骤、同样的格式、同样的检查点。结果从”看运气”变成”可预期”。这对任何生产级任务都至关重要。

3.2 价值二:省 token——把”长篇大论”变成”一行引用”#

你可能已经发现:每次让 AI 干一个复杂任务,都要把背景、要求、格式、禁忌重新讲一遍,非常费 token(也费钱)。

Skill 的加载机制通常是按需引用:AI 看到任务,先加载对应的 SKILL.md,而不是把全部技能塞进每次对话。任务相关的指令集中存放、按需加载,长期看能省下大量重复输入的 token。

3.3 价值三:传承——把”个人经验”变成”团队资产”#

你的经验值钱,但它目前存在你脑子里。同事问你怎么处理某类需求,你得现场讲;你休假了,工作就停摆。

Skill 把经验显性化、文档化:写进 SKILL.md 的那一刻,它就从”你脑子里的东西”变成了”谁都能加载的资产”。新同事接手、AI 换型号、换框架,技能依然在。

3.4 价值四:进化——把”踩过的坑”变成”防坑手册”#

每个人都在坑里摔过跤:发布忘了清缓存、处理数据忘了处理空值、发邮件忘了抄送……这些教训如果不记录,下次还会摔。

Skill 是最好的”防坑手册”:把踩坑教训写进 SKILL.md 的”注意事项”里,AI 下次执行时就会主动避开。每踩一个坑,你的技能就强一分。

3.5 价值五:组合——把”技能”变成”积木”#

写好的 Skill 可以自由组合:一个”博客发布”技能 + 一个”图片压缩”技能 + 一个”SEO 检查”技能,组合起来就是一个完整的”内容发布流水线”。

Skill 是”积木式”的:单个技能解决单类问题,组合技能解决复杂业务。 这种能力是裸对话完全不具备的。

第四章:SKILL.md 解剖——一份技能文件的核心结构#

所有 Skill 的核心都是那份”说明书”。虽然不同框架的字段名略有差异,但骨架高度一致。本章以主流格式为例,逐块拆解。

4.1 一份典型的 SKILL.md#

---
name: weekly_report
description: 生成团队周报。当用户提到"周报""周工作总结""本周汇报"时使用。
---
# 周报生成技能
## 使用时机
当用户要求生成周报/周总结时使用本技能。
## 步骤
1. 询问或确认本周时间段(默认本周一到今天)。
2. 读取指定目录下的工作记录文件。
3. 按模板整理:本周完成 / 进行中 / 问题与风险 / 下周计划。
4. 输出 Markdown 周报,交给用户确认。
## 模板
### 本周完成
-
### 进行中
-
### 问题与风险
-
### 下周计划
-
## 注意事项
- 数据必须来自实际文件,不要编造。
- 周报总字数控制在 500 字以内。
- 用户确认前不要发送给任何人。

4.2 逐块拆解#

块一:Frontmatter(元信息)

文件开头的 --- 包裹区域是元信息,AI 和框架靠它做”技能检索”:

  • name:技能名。简短、小写、用下划线或短横线连接,如 weekly_report。
  • description:最重要的字段。它描述”这个技能是干什么的、什么时候该触发”。AI 会拿用户请求和所有技能的 description 做匹配,description 写得越准,技能被正确触发的概率越高。
  • 其他常见字段:version(版本号)、author(作者)、when_to_use(触发条件)、dependencies(依赖)等,按框架支持度添加。

块二:正文标题与”使用时机”

正文开头的 # 技能名 和”使用时机”小节,是为了让 AI 在加载技能后再次确认:现在这个任务到底适不适合用本技能。这是双保险——description 负责”被找到”,正文负责”被正确使用”。

块三:步骤(Step by Step)

这是技能的核心。把任务拆成清晰的、有顺序的步骤。好步骤的特征:

  • 可执行:每步都是 AI 能直接做的动作,而不是含糊的描述。
  • 有顺序:步骤之间用数字编号,必要时说明分支条件。
  • 有产出:每步说明”做完得到什么”,最后一步说明”交付什么”。

块四:模板 / 示例

给 AI 提供输出格式的参考。模板、示例、话术都可以放这里。给一个”对的样子”,胜过描述十句”要什么风格”。

块五:注意事项 / 边界

写清楚红线:哪些不能做、哪些必须做、遇到什么情况要停下来问用户。这是技能”专业感”的来源。

4.3 什么是好的 description(重点)#

description 是技能被正确调用的关键,写它有两个原则:

  1. 包含触发词:把用户可能用的说法都写上。比如”周报""周总结""本周工作汇报""weekly report”。
  2. 说明不做什么:如果技能有明确边界,写清楚。比如”本技能只负责生成周报,不负责发送邮件”。

反面例子:description: 周报技能——太短,AI 可能该用的时候想不到用。 正面例子:description: 生成团队周报。当用户提到"周报""周工作总结""本周汇报""weekly report"时使用。仅生成内容,不发送。

4.4 正文长度:宁精勿滥#

SKILL.md 不是越长越好。太长会让 AI 抓不住重点、浪费 token。经验值是:

  • 简单技能:200-500 字正文足够。
  • 中等技能:500-1500 字。
  • 复杂技能(含多步骤流程、分支判断):1500-3000 字,且要用清晰的结构组织。

核心原则:每个字都服务于”让 AI 把这件事做对”。与任务无关的废话一律删掉。

第五章:写 Skill 前的准备——设计思维#

动手写 SKILL.md 之前,先花五分钟做设计。设计得好,事半功倍;设计得糙,写了也白写。

5.1 第一步:明确”这件任务到底长什么样”#

把任务写下来,回答四个问题:

  1. 输入是什么? 用户会给什么信息?(一段文字、一个文件、一个 URL、一个需求描述)
  2. 过程是什么? 完成它需要哪些中间步骤?(读文件、查资料、计算、生成、校验)
  3. 输出是什么? 交付物的形态?(Markdown 文档、代码、表格、一段消息、一个文件)
  4. 边界是什么? 哪些情况不该处理?哪些红线不能碰?

这四个问题答案写清楚,Skill 就完成了一半。

5.2 第二步:判断”这件事值不值得做成 Skill”#

不是所有任务都值得做成技能。判断标准:

  • ✅ 值得:高频(每周至少用几次)、步骤固定、有私有经验加成、结果要稳定。
  • ❌ 不值得:一次性任务、纯闲聊、每次需求都完全不同的开放性任务。

记住:Skill 是给”重复发生的、有固定打法的事”准备的。 低频任务直接对话即可,做成技能反而是负担。

5.3 第三步:决定”技能的粒度”#

粒度问题是新手最容易犯的错:

  • 粒度太粗:一个”全能助理”技能,什么都能干,等于什么都没教,AI 还是无从下手。
  • 粒度太细:一个”把 1 加 1 算出 2”的技能,纯属浪费。

好的粒度参考:一个技能 = 一类业务动作。“生成周报”是合适的粒度,“生成周报并同时处理考勤和报销”就太粗了(应该拆成三个技能)。

5.4 第四步:想好”技能的触发方式”#

技能如何被触发,主流有三种:

  1. 自动匹配:AI 根据 description 和用户请求的相似度自动加载。最常用,但要求 description 写得好。
  2. 关键词触发:用户说特定词(如 /report)就触发。适合用户主动发起的场景。
  3. 强制/手动:在配置里指定某任务必须用某技能。适合流程固定的生产场景。

设计时想清楚主要靠哪种触发,然后围绕它优化 description 或关键词设置。

第六章:手把手——写你的第一个 Skill#

这一章我们完整走一遍”从零写一个 Skill”的流程,用最经典的”会议纪要整理”场景做示例。

6.1 需求描述#

用户经常需要:把一段杂乱的会议录音转写文本,整理成结构化的会议纪要。要求:提取决议、任务、负责人、截止时间;按模板输出;不确定的信息标注。

6.2 设计四问#

  • 输入:一段会议转写文本(或文件路径)。
  • 过程:识别发言人 → 提取主题 → 提取决议 → 提取任务清单 → 标注不确定项。
  • 输出:结构化会议纪要(Markdown)。
  • 边界:不补写会议中没提到的内容;不确定就标注”待确认”。

6.3 编写 SKILL.md#

---
name: meeting_minutes
description: 把会议录音转写文本整理成结构化会议纪要。当用户提供会议转写、要求"整理会议纪要""会议总结""meeting notes"时使用。
---
# 会议纪要整理技能
## 使用时机
用户提供会议录音转写文本,要求整理成结构化纪要时使用。
## 输入
用户可能直接粘贴文本,或提供文件路径(此时先读取文件)。
## 步骤
1. 通读全文,识别发言人和大致议题。
2. 提取会议主题、时间(如有)、参与人(如有)。
3. 逐段整理:按议题分组,保留关键讨论内容(压缩为要点)。
4. 提取"决议":明确通过的决定,逐条列出。
5. 提取"行动项":每条含 任务内容 / 负责人 / 截止时间;原文没写的标"待确认"。
6. 按下方模板输出纪要。
## 输出模板
# 会议纪要:{主题}
- 时间:{时间,未知则写"未记录"}
- 参与人:{列表,未知则写"未记录"}
## 议题与讨论
1. **{议题}**
- {要点}
## 决议
- {决议内容}
## 行动项
| 任务 | 负责人 | 截止时间 |
|---|---|---|
| {任务} | {负责人} | {时间} |
> 注:标"待确认"的项请用户补充。
## 注意事项
- 只整理原文出现的内容,不臆造细节。
- 口语化内容转为书面语,但不要改变原意。
- 行动项必须逐条列全,不要遗漏。

6.4 验证与试用#

写完不是结束,要试。给 AI 一段测试文本,看输出是否符合预期。重点检查:

  1. 技能有没有被正确触发(description 匹配是否成功)。
  2. 输出是否严格按模板。
  3. 边界是否生效(不确定项有没有标”待确认”)。

不达标就回到 SKILL.md 修改,再试。一个技能通常要迭代 3-5 轮才稳定,这很正常。

第七章:实战案例一——“文档转换”技能(纯说明书型)#

第一个案例展示:不写任何代码,只用说明书就能交付一个实用技能。 这类技能适合”AI 用现有工具就能完成”的任务。

7.1 场景#

你的工作流里经常要把 Markdown 转成 Word(.docx)发给客户。AI 本来就有能力处理,但直接让它做,每次都要解释一遍格式要求:标题层级怎么设、要不要目录、页边距、字体……把这些要求固化成一个技能。

7.2 SKILL.md#

---
name: md_to_docx
description: 将 Markdown 文档转换为排版规范的 Word 文档。当用户要求"转成 Word""生成 docx""导出文档"时使用。
---
# Markdown 转 Word 技能
## 使用时机
用户要求将 Markdown 内容或文件转换为 Word 文档时使用。
## 步骤
1. 确认源文件路径和输出目录;没有源文件则先创建 Markdown。
2. 阅读源文档,识别标题层级(# 到 ######)。
3. 使用文档转换工具生成 .docx,并按下方"排版规范"设置样式。
4. 生成后检查:目录、标题层级、表格、图片是否正常。
5. 把文件路径交给用户确认。
## 排版规范
- 一级标题:黑体 22pt,居中
- 二级标题:黑体 16pt,左对齐
- 三级标题:黑体 14pt,左对齐
- 正文:宋体 12pt,1.5 倍行距,首行缩进 2 字符
- 表格:自动套用"网格"样式,表头加粗
- 超过 3 个一级标题时,在文档开头插入自动目录
- 页面:A4,页边距上下 2.54cm、左右 3.17cm
## 注意事项
- 文档中的图片需嵌入而非外链。
- 转换前先确认源文档无乱码、无损坏。
- 输出文件名与源文件保持一致,仅替换扩展名。

7.3 这个案例说明了什么#

  • 零代码交付:整个技能就是一份说明书,AI 用自己的工具完成转换,你只需要把”排版标准”写清楚。
  • 把隐性知识显性化:字体、字号、行距这些”你心里有数但没说出口”的要求,全部写进了技能。
  • 可复制:换个人、换个环境,加载这个技能,产出标准一致。

实操提示:这类技能写完,建议把一份”标准输出样例”也放进技能目录(作为辅助资源),AI 转换时可以直接对照样例校准格式,效果更好。

第八章:实战案例二——“定时任务”技能(编排型)#

第二个案例展示:Skill 如何编排多个工具完成一个带状态的流程。 这类技能通常涉及”创建任务 → 等待触发 → 执行 → 汇报”的闭环。

8.1 场景#

你想让 AI 每天早上九点帮你把当天的待办事项整理好、推送到工作群。这需要:读取待办清单 → 按紧急度排序 → 生成推送文案 → 按计划触发发送。

8.2 SKILL.md#

---
name: daily_todo_push
description: 每天早上整理当日待办并推送到群聊。当用户要求"每日待办推送""每天早上提醒我待办""daily todo"时使用。
---
# 每日待办推送技能
## 使用时机
用户要求设置"每日待办推送"或询问该任务状态时使用。
## 能力依赖
- 定时任务系统(用于创建每日触发的计划)
- 群聊/渠道消息发送能力
- 待办清单存储(文件或数据库)
## 步骤
1. 确认推送时间(默认每天 09:00)、推送渠道、待办清单来源。
2. 创建定时任务:每天触发一次。
3. 任务触发时执行:
a. 读取待办清单(文件/数据源)。
b. 按优先级排序:紧急且重要 > 重要 > 紧急 > 一般。
c. 过滤掉已完成的项,标记今日到期项。
d. 生成推送文案(见模板)。
e. 发送到指定渠道。
4. 发送成功后记录日志;失败则重试一次并告警。
## 推送文案模板
【每日待办】{月}月{日}日
今日共 {n} 项待办:
1. {任务}(截止:{时间})
2. ...
🔔 今日到期:{到期项}
## 注意事项
- 待办清单为空时,发送"今日无待办"而非跳过。
- 文案不要包含敏感信息(如密码、密钥)。
- 定时任务创建后,向用户确认"已设置,每天 {时间} 推送"。

8.3 这个案例说明了什么#

  • 技能编排多工具:一个技能内部协调了定时系统、文件读取、消息发送三个能力。
  • 把”触发条件”写进技能:技能描述里写清楚”用户要求设置推送时使用”,AI 就能把”设置定时任务”这个动作和”每日推送”这个技能关联起来。
  • 异常处理也是技能的一部分:失败重试、空清单处理,这些边界写进”注意事项”,AI 执行时才不会卡壳。

第九章:实战案例三——“浏览器自动化”技能(工具型)#

第三个案例展示:Skill 如何配合浏览器自动化工具完成真实网页操作。 这类技能适合”需要登录、点击、抓取”的任务。

9.1 场景#

你需要定期去某个后台系统导出报表,然后存到本地。这个操作涉及登录、导航、点击导出、等待下载、文件重命名——步骤多且每次一样,非常适合做成技能。

9.2 SKILL.md#

---
name: export_report
description: 从业务后台导出报表并保存到本地。当用户要求"导出报表""下载后台数据""export report"时使用。
---
# 后台报表导出技能
## 使用时机
用户要求从业务后台导出报表时使用。
## 能力依赖
- 浏览器自动化能力
- 文件系统读写能力
## 步骤
1. 打开后台系统地址。
2. 登录(优先使用已保存的会话;若无,则提示用户手动登录,不要尝试自动破解验证码)。
3. 进入"报表中心"菜单,定位目标报表。
4. 设置时间范围(默认上月)和导出格式(默认 CSV)。
5. 点击导出,等待下载完成。
6. 将下载文件移动到指定目录,按"报表名_日期"重命名。
7. 向用户汇报文件路径和内容概要。
## 注意事项
- 遇到验证码、二次验证等人工步骤时,停下来交回用户处理,不要尝试自动化。
- 导出失败时检查:登录态是否过期、时间范围是否为空数据。
- 不要修改后台任何非导出相关的数据。
- 涉及敏感数据的报表,导出后提示用户注意保存安全。

9.3 这个案例说明了什么#

  • 技能要写明”人工边界”:验证码、2FA 这些必须由人完成的步骤,技能里要明确”停下来交回用户”,这是负责任的设计。
  • 把操作细节标准化:默认时间范围、默认格式、命名规则,这些细节写进技能,每次导出结果都统一。
  • 安全边界:提醒敏感数据注意安全、禁止修改无关数据——技能越专业,越要写清楚”什么不能做”。

第十章:Skill 的质量标准——好技能与坏技能#

写了几个技能之后,你需要一个判断标准。这一章给出”好技能”的五个维度和”坏技能”的典型特征。

10.1 好技能的五个维度#

维度一:触发准确

好技能在”该用时必用、不该用时不用”。测试方法:给 AI 十个相关请求和十个无关请求,看触发率。如果相关请求漏触发,说明 description 不够;如果无关请求误触发,说明 description 太宽。

维度二:步骤清晰

好技能的步骤像菜谱:每一步可执行、有顺序、有产出。测试方法:找个没参与过编写的人读一遍,问”你知道该怎么做吗”——如果对方需要反问,说明步骤不够清楚。

维度三:输出稳定

好技能同一输入多次执行,输出结构一致。测试方法:同一测试用例跑三遍,对比输出结构。不稳定就检查:模板是否明确、步骤是否含糊。

维度四:边界明确

好技能清楚知道”什么情况停下来”。测试方法:故意给出边界外的请求(如”顺便帮我把周报发出去”,而技能说明不发送),看 AI 是否正确地拒绝或询问。

维度五:可维护

好技能好改。结构化清晰、无冗余废话、字段完整。测试方法:过一个月再回来改它,如果你还看得懂、改得动,就是好技能。

10.2 坏技能的典型特征(避坑清单)#

  1. description 敷衍:一句话带过,导致技能永远不被触发。
  2. 步骤含糊:“整理一下""处理一下”这种无法执行的动词。
  3. 没有模板:输出格式全靠 AI 自由发挥,结果每次都不一样。
  4. 没有边界:不知道什么该停,乱承诺、乱执行。
  5. 内容臃肿:废话连篇,AI 抓不住重点,还浪费 token。
  6. 一次性任务硬做成技能:明明只用一次,却花一小时写技能。
  7. 不测试就上线:写完直接丢给 AI 用,出了问题才知道。

10.3 快速自检表(写完后过一遍)#

  • description 是否包含触发词和边界?
  • 步骤是否每条都可执行、有顺序?
  • 是否有输出模板或示例?
  • 是否写清了注意事项/红线?
  • 是否有冗余内容可以删?
  • 是否用测试用例验证过触发和输出?
  • 是否在真实场景试用过至少一次?

全部打勾,这个技能才算合格。

第十一章:Skill 的调试与迭代#

好技能是”改”出来的,不是”写”出来的。这一章讲调试方法论。

11.1 调试的三种场景#

场景一:技能没被触发

现象:用户提了相关需求,但 AI 没加载这个技能。

排查顺序:

  1. description 里有没有包含用户可能用的说法?(中文、英文、缩写都写上)
  2. description 是否太泛,导致被其他技能抢了匹配?
  3. 技能的目录/命名是否符合框架要求(框架会不会扫描到它)?

场景二:触发了但执行不对

现象:技能加载了,但 AI 没按说明做。

排查顺序:

  1. 步骤是否足够明确?(把”处理一下”改成”提取标题、汇总要点、按模板输出”)
  2. 是否给了输出模板?(AI 有模板照着填,比自由发挥靠谱得多)
  3. 正文是否太长导致 AI 忽略关键步骤?(试试精简,把关键步骤放前面)

场景三:输出了但质量不行

现象:结构对,但内容不符合预期。

排查顺序:

  1. 有没有给”好与坏”的对比示例?
  2. 边界是否写清?(比如”不要编造数据""不确定标待确认”)
  3. 是不是该把判断标准也写进技能?(“摘要控制在 100 字内""结论必须给出依据”)

11.2 迭代节奏:小步快跑#

不要试图一次写完美。推荐节奏:

  1. 第一版:写个 60 分的版本,能用就行。
  2. 试用:真实场景用三次,记录问题。
  3. 修一次:针对最痛的问题改一次(一次只改一个点,便于判断效果)。
  4. 再试用:验证修复是否生效。
  5. 循环:直到稳定。

经验法则:一个技能从初稿到稳定,通常要改 3-5 轮。 每一轮只改一个问题,改完立刻测,别攒着一起改。

11.3 用”回放”方式调试复杂技能#

复杂技能出错时,AI 已经执行完了一堆步骤,很难定位问题。技巧是:要求 AI 在每一步执行后输出简短日志(做了什么、结果如何),这样失败时你能看到卡在哪一步。

技能里可以加一句:“执行过程中,每完成一步输出一行进度日志,格式:[步骤名] 结果。“这会让调试容易十倍。

第十二章:Skill 的版本管理、分享与复用#

12.1 为什么需要版本管理#

技能会不断迭代。没有版本管理,你改着改着就分不清”上一版为什么能跑,这一版为什么不行”。给技能加版本号,是成本最低的保障。

做法很简单:在 Frontmatter 里加 version: 1.2.0,每次有实质修改就升版本号(小改升第三位、加功能升第二位、大重构升第一位)。还可以在技能目录里放一个 CHANGELOG.md,记录每次改了什么、为什么改。

12.2 用 Git 管理技能库#

如果你的技能比较多,强烈建议用 Git 管理整个技能目录:

  • 每次修改都有提交记录,可以回滚。
  • 可以开分支试验新写法,稳定了再合并。
  • 多设备之间可以同步。
  • 后续分享给别人也方便。

12.3 分享与复用#

技能是纯文本 + 资源文件的组合,天生适合分享。分享时的注意事项:

  1. 脱敏:检查技能里有没有写死的敏感信息(账号、路径、密钥),分享前替换成占位符。
  2. 写清依赖:技能依赖哪些工具、哪些环境,在 README 里写清楚。
  3. 带测试用例:附上 2-3 个输入输出示例,接收方可以立刻验证。
  4. 说明适用场景和边界:让对方判断这个技能适不适合自己。

12.4 技能库的整理#

技能多了之后,要像整理代码库一样整理技能库:

  • 命名规范统一:全部小写、下划线连接、一眼看出功能。
  • 目录结构清晰:按领域分目录(写作类、运维类、数据类……)。
  • 定期清理:废弃的技能及时归档或删除,避免”技能污染”(太多技能反而干扰匹配)。

提醒:技能不是越多越好。几十个高质量技能,好过几百个没人维护的僵尸技能。

第十三章:常见坑与避坑指南(实战总结)#

这一章是把前面散落的注意事项集中起来,再补充一些高频坑。建议收藏,写技能时对照检查。

坑一:description 写成”功能说明书”而不是”触发器”#

❌ 错误:description: 本技能用于生成周报,包含本周完成、下周计划等字段。 ✅ 正确:description: 生成团队周报。当用户提到"周报""周总结""本周汇报"时使用。

记住:description 的职责是让 AI 决定”该不该用”,不是介绍功能。

坑二:让 AI 做它没有能力做的事#

技能写得再详细,AI 没有对应工具也做不了。写技能前先确认:完成这个任务需要的工具,AI 环境里都有吗?没有就要么加工具,要么在技能里明确”此任务需要 XX 能力,不具备时告知用户”。

坑三:把”人工步骤”硬塞进技能#

验证码、扫码登录、付费确认、法律签署——这些必须真人完成的步骤,不要试图自动化。正确做法:技能里写明”遇到 XX 时停下来,把操作步骤交给用户”。

坑四:技能里写死”过时的事实”#

技能里的地址、路径、版本号会过时。建议:关键事实让 AI 执行时动态确认(比如”检查 XX 目录是否存在,不存在则询问用户”),而不是写死一个迟早失效的值。

坑五:不区分”私有知识”和”通用知识”#

通用知识(如何写 JSON、Markdown 语法)不用写进技能——AI 本来就会。技能里应该放私有知识:你的流程、你的标准、你的偏好、你的红线。写技能前问一句:“这件事的哪些细节,是 AI 不问我、不看文档就不知道的?“把答案写进去。

坑六:忽略了”输出确认”环节#

很多技能失败在最后一步:AI 直接交付,用户不满意又得重来。好技能应该在关键节点加确认:“生成初稿后,先展示给用户确认,再继续下一步。“多一次确认,少十次返工。

坑七:测试用例太”善良”#

测试只用理想输入,问题全被掩盖。测试要包括:边界输入(空内容、超长内容)、异常输入(格式错误、数据缺失)、越界请求(要求技能做不该做的事)。把这三类用例跑一遍,技能才扛得住真实世界。

第十四章:进阶——参数化、校验与安全#

14.1 参数化:让技能更灵活#

固定模板的技能用起来有局限。进阶做法是参数化:在 SKILL.md 里定义技能接受的参数,让 AI 根据用户需求填充。

示例(会议纪要技能加参数):

## 参数
- `format`: 输出格式(markdown / 表格 / 摘要),默认 markdown
- `level`: 详细程度(详细 / 精简),默认精简
- `include_tasks`: 是否提取行动项(true / false),默认 true

AI 加载技能时,先确认参数取值,再执行。这样同一个技能可以应对”要详细版""只要摘要""只要行动项”等不同需求。

14.2 输入校验:防止 AI 乱接活#

技能里可以加”输入检查”步骤:

## 输入检查
1. 用户是否提供了必要信息?(没有则先询问)
2. 输入格式是否符合预期?(不符合则先转换或说明)
3. 任务是否在本技能范围内?(不在则明确告知,不硬做)

这三问能挡住大部分”AI 拿到不完整需求硬干”的问题。

14.3 输出校验:交付前自检#

给技能加一个”交付前检查清单”,让 AI 在输出前过一遍:

## 交付前检查
- [ ] 内容是否全部来自真实数据,无编造?
- [ ] 是否按模板输出,格式完整?
- [ ] 敏感信息是否已脱敏或提醒?
- [ ] 是否已向用户确认最终结果?

把质检环节写进技能,等于给 AI 装了一道质量门。

14.4 安全设计:技能的安全红线#

技能涉及外部操作时,安全必须写进设计:

  1. 最小权限:技能只做任务需要的操作,不顺手做别的。
  2. 确认机制:破坏性操作(删除、覆盖、发送、支付)前必须向用户确认。
  3. 敏感信息保护:技能不读取、不输出密钥/密码/隐私数据;需要时提示用户自己操作。
  4. 外部交互谨慎:发邮件、发帖、公开发布前,技能应明确”先给用户确认内容”。
  5. 异常上报:技能执行中遇到异常(工具失败、数据缺失),如实报告,不编造结果。

一句话原则:技能能力越大,边界越要写清楚。 安全红线不是限制,是保护——保护用户,也保护你自己。

第十五章:Skill 与 Agent 协作模式#

15.1 单 Agent:技能就是”工具箱”#

最简单的模式:一个 Agent 挂载多个技能,根据任务自动选用。这是个人助理最常见的形态——写作、查资料、发消息、管文件,各配一个技能,一个 Agent 全搞定。

15.2 多 Agent:技能就是”岗位说明书”#

进阶模式:多个 Agent 各管一摊,每个 Agent 用技能定义自己的”岗位职责”。

  • 写作 Agent:加载”文章撰写""配图生成”技能。
  • 运维 Agent:加载”日志分析""服务器巡检”技能。
  • 客服 Agent:加载”工单处理""话术模板”技能。

当任务需要跨领域时,主 Agent 把任务分派给对应 Agent,各 Agent 用各自技能执行。技能在这里扮演了”岗位说明书 + 培训手册”的双重角色。

15.3 技能组合:流水线模式#

复杂业务往往是多个技能的组合。比如”内容发布流水线”:

  1. “选题分析”技能:确定主题。
  2. “文章撰写”技能:生成初稿。
  3. “排版校对”技能:格式化、检查错别字。
  4. “发布上线”技能:构建、部署、验证。
  5. “收录检查”技能:发布后检查搜索引擎收录。

每个技能独立可测、可替换,组合在一起就是完整业务。这就是”积木式”协作的魅力。

15.4 技能之间的引用#

技能之间也可以互相引用。一个技能可以在步骤里写”如需生成配图,参考 image_gen 技能”。AI 会按需加载被引用的技能。注意控制引用深度,避免 A 引用 B、B 又引用 A 的循环。

第十六章:常见问题 FAQ#

写技能这件事,看起来简单,真做起来总会冒出各种小问题。这一章把实践中最常被问到的问题集中回答一遍,覆盖概念辨析、写法技巧、调试方法和使用习惯几个方面。如果你照着前面的章节写技能时卡住了,先翻这一章——大部分困惑都能在这里找到答案。如果这里没有你要的问题,那说明你已经走到了比较深的地方,带着具体场景去调试,往往比找通用答案更有效。

问 1:Skill 和 Prompt(提示词)到底有什么区别?

提示词是针对一次对话的指令,你这次说、这次用,下次还得重新说。Skill 是针对一类任务的固化说明,写一次、反复用,而且可以带资源、带脚本、参与工具编排。简单说:提示词是”每次现写的话”,Skill 是”沉淀下来的手册”。Skill 本质上包含了提示词的精华,但做了结构化、版本化和复用化。

问 2:我不会写代码,能做 Skill 吗?

完全可以。本教程第七章的”文档转换”技能就是零代码示例——一份 Markdown 说明书就能成为一个合格技能。编程能力只在需要”脚本封装”时才用得上,而大部分流程类、文案类、数据整理类任务,纯说明书就能覆盖。先会用说明书,再学脚本,两条路都能走通。

问 3:一个技能写多长合适?

看复杂度。简单技能两三百字,中等技能一千字左右,复杂流程技能可以到两三千字。但记住:长度不是目的,可执行性才是。 如果你发现技能写得很长,先检查是不是有废话,再检查是不是该拆成多个技能。

问 4:技能太多会不会互相干扰?

会。技能多了之后,AI 匹配时可能选错。缓解办法:一是把 description 写得更精准(区分边界),二是按领域分目录管理,三是定期清理废弃技能。遇到”两个技能都能接这个任务”的情况,在 description 里把”什么情况归我、什么情况归他”写清楚。

问 5:写好的技能换了 AI 模型还能用吗?

大部分能。Skill 是文本说明,模型只要会读 Markdown 就能用。不同模型执行力的差别主要体现在对长指令的遵循度上,但结构清晰、步骤明确的技能,在任何主流模型上都能有不错的表现。跨框架迁移时,只需要微调字段名和工具调用方式。

问 6:AI 不按技能里的步骤执行怎么办?

先排查三点:步骤是否足够明确(动词要可执行)、是否给了模板(有模板照着填更稳)、技能正文是否太长(关键信息被淹没)。多数情况下,把”必须做什么”加粗或前置到正文开头,遵循度会明显提升。还不行的,可以把关键步骤写进 description 或系统提示里,作为双重约束。

问 7:技能执行出错,怎么定位是哪一步的问题?

让 AI 在执行时输出进度日志(每步一行),失败时就能看到卡在哪。另一个办法是逐步验证:让 AI 每完成一步就停下来汇报结果,你确认后再继续。复杂技能调试,一定要能”看到过程”,不要只看最终结果。

问 8:技能的输出能不能自动发送出去?

可以,但强烈建议保留确认环节。发送类操作(邮件、消息、公开发布)属于不可逆动作,即使技能里写了”自动发送”,也建议加一道”发送前给用户预览”的步骤。安全性比省一步操作重要得多。

问 9:要不要给技能做单元测试?

要,但别搞得太重。每个技能准备 2-3 个测试用例(一个正常、一个边界、一个异常),改动技能后跑一遍即可。这比事后在真实场景里翻车划算得多。复杂技能可以写成自动化的测试脚本,简单技能手动验证就够了。

问 10:技能是保存在哪里的?会占用对话上下文吗?

技能通常存放在工作区/配置目录里,按需加载:只有任务匹配到该技能时,AI 才会读取它的内容。因此日常对话不会因为技能多而变慢变贵。这也是技能比”把一堆说明塞进系统提示”更优雅的原因——需要时才进来,用完即走。

问 11:一个技能可以同时处理多个子任务吗?

可以,但要小心。如果子任务之间的流程和输出差异很大,建议拆成多个技能;如果只是同一流程里的几个分支(比如”周报分详细版和精简版”),一个技能加参数就能覆盖。判断标准很简单:看改一处会不会影响另一处。 会,就拆开;不会,就合并。

问 12:怎么判断一个技能”写好了”?

三个硬指标:第一,相关请求能稳定触发它;第二,同一输入多次执行输出结构一致;第三,边界外的请求它能正确拒绝或询问。三个都满足,技能就处于”可用”状态。之后再根据真实使用反馈持续打磨,让它从”可用”变成”好用”。

第十七章:生态与未来#

16.1 当前生态#

Skill 的理念正在被越来越多的框架和平台采纳。你可以看到:

  • 各大 Agent 框架内置技能机制,支持用户自定义技能。
  • 开源社区出现大量共享技能库,覆盖写作、编程、运维、营销等场景。
  • 平台开始提供”技能商店”,让创作者分享技能、获取收益。
  • 技能与 MCP、插件等生态相互打通,连接能力越来越强。

16.2 未来的趋势#

从趋势看,Skill 会沿着三个方向演进:

方向一:更智能的调度。 未来框架会更好地理解技能之间的依赖与优先级,自动编排复杂任务,减少人工配置。

方向二:更标准化的交换。 技能描述格式有望进一步统一,让同一份技能在不同框架间无缝迁移,“一次编写、处处运行”。

方向三:更丰富的内容形态。 技能不再只是文本说明,会包含多模态示例、交互式教学、自动评测等,让技能”可教学、可验证、可进化”。

16.3 给你的建议#

无论生态怎么变,有一件事不会变:把经验沉淀成可复用资产的能力,永远值钱。

  • 从今天开始,把你最常让 AI 做的那件事,写成第一个技能。
  • 每次踩坑,都回去更新技能。
  • 定期整理你的技能库,淘汰无用的、打磨有用的。

结语:动手吧#

这篇教程从概念讲到实战,从入门讲到进阶,核心观点可以浓缩成三句话:

  1. Skill 是把”你会但 AI 不知道”的经验,变成”AI 一看就懂”的说明书。
  2. 好技能靠设计:触发准确、步骤清晰、输出有模板、边界写明白。
  3. 技能是资产:越用越值钱,越沉淀越强大。

现在,挑一件你每周都要做的重复任务,照着第六章的流程,写一个属于你的第一个技能。半小时后,你会拥有一个”训练过”的 AI——它不再只是聪明,而是懂你。


本文是「AI 效率工具」系列文章之一,前作《AI 提示词教程》见博客第 112 篇。系列持续更新,欢迎收藏。

AI Skill 完全教程:从零到一,为你的 AI 打造专属技能(万字实操指南)
https://021028.xyz/posts/default/113/
作者
021028
发布于
2026-09-12
许可协议
CC BY-NC-SA 4.0