乐于分享
好东西不私藏

AI Agent 的 Skill 编写实战指南:从踩坑到精通

AI Agent 的 Skill 编写实战指南:从踩坑到精通

👆 点击上方蓝字关注我,获取更多 AI 实战干货

你给 AI 写过”工作手册”吗?写对了,它就是你的分身;写错了,它就是你的噩梦。

最近半年,我一直在用 AI Agent 做各种事——写代码、做文档、管理公众号、分析数据。慢慢地我发现一个规律:

同一个 AI,给它不同的”说明书”,出来的结果天差地别。

不给说明书,它就像一个刚入职的实习生,什么都问你,什么都做不对。给了好的说明书,它就像一个干了三年的老员工,你一个眼神它就知道该干什么。

这个”说明书”,在 AI Agent 的世界里叫 Skill

今天这篇文章,我把自己写 Skill 的实战经验全部掏出来,从最基础的概念到高级技巧,再到我踩过的坑,一次性讲清楚。


一、Skill 到底是什么?

用一句话概括:Skill 就是把你的工作经验翻译成 AI 能执行的结构化文档。

你可以把它想象成一份”新员工培训手册”。你招了一个能力很强但对你的业务一无所知的新员工,你需要告诉他:

  • 什么时候该做这件事(触发条件)
  • 做这件事的完整流程是什么(工作步骤)
  • 做成什么样才算合格(质量标准)
  • 遇到意外情况怎么处理(边界处理)

Skill 做的就是同样的事情。

为什么普通对话不行?

你跟 AI 说”帮我写个方案”,它会给你一个通用的、谁都能写的方案。因为它不知道你们公司的风格、不知道这个项目的背景、不知道领导的偏好。

你把这些信息告诉它,它就能写出好方案。但问题是:你不可能每次都从头说一遍。

Skill 就是把这些重复的信息固化下来,让 AI 每次都能读到。


二、Skill 文件的结构

一个 Skill 最基本的形式就是一个 Markdown 文件,叫 SKILL.md

如果你的 Skill 比较复杂,可以加上脚本和参考资料,形成一个目录:

my-skill/
├── SKILL.md           # 核心指令文件(必须)
├── scripts/           # 可执行脚本(可选)
├── references/        # 详细参考文档(可选)
└── templates/         # 模板文件(可选)

对于 90% 的场景,一个 SKILL.md 就够了。 不要一开始就搞复杂结构,先跑起来再说。

SKILL.md 的两个部分

第一部分:元数据头(Frontmatter)

文件最前面用 --- 包裹的 YAML 格式元数据:

---
name: weekly-report
description: 生成周报。当用户说"写周报"、"整理本周工作"、"汇报进展"时触发。
---

name 是 Skill 的名字,description 是最关键的部分——AI 靠它决定要不要加载这个 Skill

第二部分:正文指令

用 Markdown 写的具体操作指南。这部分是 Skill 的核心,告诉 AI 该怎么做。


三、description 是 Skill 的灵魂

很多人写 Skill 的时候,正文写了一大堆,description 随便糊弄一句。这是本末倒置。

description 写得好不好,直接决定 AI 会不会用你的 Skill。

AI 在处理你的请求时,会扫描所有已安装 Skill 的 description,判断哪个跟当前任务相关。如果 description 没写好,你的 Skill 就是个摆设。

好 description 的三个要素

要素一:列出触发场景

把用户可能说的话都列进去:

# ❌ 差
description: 写周报用的

# ✅ 好
description: |
  生成工作周报。触发场景包括:
  - 用户说"写周报"、"整理本周工作"、"汇报本周进展"
  - 用户提到"工作总结"、"weekly report"
  - 每周五下午的工作汇报场景

要素二:说明输入输出

AI 需要知道这个 Skill 需要什么信息、产出什么结果:

# ✅ 好的描述会说清楚
description: |
  分析 Excel 销售数据并生成可视化报告。
  输入:Excel 文件路径或数据内容
  输出:分析结论 + 图表 + 建议
  触发词:"分析数据"、"做报表"、"数据可视化"

要素三:包含关键词

相关的产品名、工具名、场景词都写上,提高匹配率:

description: |
  管理微信公众号文章发布。
  支持:Markdown 转微信排版、封面图生成、草稿创建、定时发布。
  触发词:"发公众号"、"微信文章"、"推文"、"发布文章"
  涉及工具:微信公众号 API、Pillow 图片处理

四、正文怎么写才有效

正文是告诉 AI “怎么做”的部分。写好正文有几个关键原则:

原则一:用步骤拆解流程

把任务拆成明确的步骤,每步有清晰的输入和输出:

## 工作流程

### 第一步:收集信息
- 确认本周完成的主要工作(最多 5 项)
- 确认遇到的问题和解决方案
- 确认下周工作计划

### 第二步:整理结构
- 按"完成事项 → 问题与解决 → 下周计划"组织
- 每项工作用一句话概括,再用 2-3 句展开

### 第三步:生成报告
- 控制在 500 字以内
- 重点数据加粗
- 问题部分给出具体解决方案,不要只说"待解决"

原则二:用示例代替描述

一个好例子胜过十段解释。 AI 从示例中学习的效果远好于从抽象描述中学习:

## 输出示例

### ✅ 好的周报
> 本周完成用户登录模块开发(含手机号+微信两种方式),上线后注册转化率提升 12%。
> 遇到的问题:微信 OAuth 回调在 iOS 上偶尔失败,排查后发现是 URL 编码问题,已修复。

### ❌ 差的周报
> 本周做了很多工作,完成了一些功能,遇到了一些问题。

原则三:定义质量标准

告诉 AI 什么算”好”,什么算”不合格”:

## 质量标准

- [ ] 标题在 10-20 字之间
- [ ] 正文不超过 500 字
- [ ] 每项工作都有具体数据或结果
- [ ] 问题部分有解决方案,不能只说"待处理"
- [ ] 语言简洁,不使用"进行"、"开展"等空洞词汇

原则四:处理边界情况

现实总是比预期复杂。提前想好意外情况怎么处理:

## 边界情况

- 如果用户没有提供足够信息:先询问,不要自行编造
- 如果本周没有完成任何工作:如实说明,不要硬凑
- 如果涉及敏感数据:脱敏处理后再说
- 如果用户要求的格式与模板不同:优先按用户要求来

五、防 AI 偷懒的实战技巧

写 Skill 最头疼的问题就是 AI “偷懒”——它倾向于走最省事的路径。经过大量实践,我总结了几个有效的方法:

1. 用强硬语气下达指令

AI 对祈使句的遵从率明显高于建议句:

# ❌ 建议语气(AI 可能忽略)
建议在写代码前先写测试。

# ✅ 命令语气(AI 大概率遵守)
必须先写测试再写代码。没有测试的代码不允许提交。

2. 设置检查清单

让 AI 在完成任务前逐项自查:

## 完成前检查

在提交最终结果前,逐项确认:
□ 标题是否符合字数要求?
□ 是否有具体的数字或数据支撑?
□ 是否去掉了所有"进行"、"开展"等空话?
□ 格式是否符合模板要求?

3. 给出明确的量化标准

“写得好”是模糊的,”字数在 300-500 之间”是明确的:

# ❌ 模糊
分析要深入

# ✅ 明确
每个分析维度至少包含:1 个数据对比、1 个原因分析、1 个改进建议

4. 用反面示例划红线

告诉 AI 什么不能做,比告诉它该做什么更有效:

## 禁止事项

- 不要使用"据悉"、"据了解"等新闻八股开头
- 不要在正文中插入广告或推广内容
- 不要编造数据或案例
- 不要使用超过 3 种颜色的强调方式

六、三个实战 Skill 模板

模板一:日报/周报生成器

---
name: work-report
description: |
  生成工作日报或周报。触发词:"写日报"、"写周报"、"整理工作"、"本周汇报"。
  支持日报和周报两种格式,自动根据时间判断。
---
# 工作报告生成

## 流程

1. 询问用户本周/今天的主要工作内容
2. 按"完成事项 → 遇到问题 → 解决方案 → 明日/下周计划"整理
3. 每项工作用【结果+数据】的方式描述

## 格式要求

- 日报 200 字以内,周报 500 字以内
- 用短句,不要用长段落
- 数据加粗,问题用 ⚠️ 标记
- 结尾附一句简短的自我总结

## 示例输出

### 本周工作
1. **完成用户系统重构**,接口响应时间从 800ms 降至 120ms
2. **修复 3 个线上 bug**,其中 1 个是支付回调超时问题
3. ⚠️ 数据库慢查询优化未完成,原因是需要 DBA 配合

### 下周计划
- 完成慢查询优化
- 启动消息队列改造方案设计

模板二:代码审查助手

---
name: code-review
description: |
  进行代码审查。触发词:"review 代码"、"代码审查"、"帮我看看代码"、"CR"。
  检查代码质量、安全性、性能、可维护性。
---
# 代码审查 Skill

## 审查维度

### 1. 功能正确性
- 逻辑是否正确,是否有边界条件遗漏
- 异常处理是否完善
- 返回值/错误码是否一致

### 2. 安全性
- SQL 注入、XSS、CSRF 防护
- 敏感信息是否硬编码
- 权限校验是否完整

### 3. 性能
- 是否有 N+1 查询
- 是否有不必要的循环或重复计算
- 大数据量场景是否考虑分页

### 4. 可维护性
- 命名是否清晰
- 是否有适当的注释
- 函数是否过长(超过 50 行需要拆分)

## 输出格式

按严重程度分类:
- 🔴 严重问题(必须修复)
- 🟡 建议优化(推荐修复)
- 🟢 代码亮点(值得学习)

每个问题给出:位置、问题描述、修复建议、示例代码。

模板三:会议纪要整理

---
name: meeting-notes
description: |
  整理会议纪要。触发词:"整理会议"、"会议纪要"、"会议记录"、"记一下会议"。
  输入:会议录音转写文本或会议笔记
  输出:结构化会议纪要
---
# 会议纪要 Skill

## 流程

1. 提取基本信息:时间、参会人、会议主题
2. 按议题分组整理讨论内容
3. 提取所有决策和行动项
4. 生成 3-5 句话的摘要

## 输出模板

### 会议信息
- 主题:
- 时间:
- 参会人:

### 核心摘要
[3-5 句话概括会议最重要的内容]

### 讨论要点

#### 议题 1:[名称]
- 讨论内容
- 结论/决策

#### 议题 2:[名称]
- 讨论内容
- 结论/决策

### 行动项

| 事项 | 负责人 | 截止时间 |
|------|--------|----------|
|      |        |          |

## 注意事项

- 分歧意见要如实记录,不要只记结论
- 行动项必须有明确的负责人和时间
- 如果信息不完整,标注"待确认"而不是编造

七、我踩过的坑

坑一:Skill 写得太长

一开始我把所有想到的内容都塞进一个 Skill,写了 3000 多字。结果 AI 经常”忘记”后面的内容,执行质量反而下降。

教训: 一个 Skill 控制在 500-1500 字。内容太多就拆分成多个 Skill,或者把详细参考资料放到 references/ 目录下,让 AI 按需读取。

坑二:只写目标不写步骤

# ❌ 这样写没用
帮用户写一篇高质量的产品介绍。

# ✅ 要写具体步骤
1. 先问用户产品的核心卖点是什么
2. 确认目标用户群体
3. 按"痛点 → 解决方案 → 优势 → 案例"结构撰写
4. 每个部分控制在 100 字以内

坑三:忽略上下文限制

AI 的上下文窗口是有限的。如果你的 Skill 太大,会挤占留给任务本身的空间。

做法: 把核心流程放 SKILL.md(2000-5000 tokens),详细参考资料放 references/ 目录。AI 先读核心流程,需要细节时再按需加载参考文档。

坑四:不测试就上线

写完 Skill 直接用,结果发现各种问题。

做法: 写完后先用几个不同的输入测试,看看 AI 的输出是否符合预期。发现问题就改,迭代 2-3 轮才能稳定。

坑五:一成不变

Skill 写完就再也不改了。但你的工作在变、AI 的能力在变,Skill 也应该跟着变。

做法: 每隔一段时间回顾一下自己的 Skill,看看有没有过时的内容,有没有新的经验可以补充。


八、从零开始写你的第一个 Skill

如果你是第一次写 Skill,按这个流程来:

第一步:选一个重复性高的任务

想想你每天或每周都在重复做的事情:写周报、整理会议纪要、回复客户邮件、做数据分析……

第二步:写下你的工作流程

就像教一个新人一样,把每一步都写清楚。不用管格式,先用大白话写下来。

第三步:加上示例

找一个你之前做过的最好的案例,作为示例写进去。

第四步:测试和迭代

让 AI 用这个 Skill 做几次任务,看看哪里不满意,改掉。重复这个过程。

第五步:固化和分享

效果稳定后,保存到你的 Skill 目录,以后直接调用。如果同事也有同样的需求,分享给他们。


九、Skill 的进阶用法

1. Skill 组合使用

一个复杂任务可以拆成多个 Skill 串联:

需求分析 Skill → 方案撰写 Skill → 排版美化 Skill → 发布 Skill

每个 Skill 负责一个环节,整体效果比一个大而全的 Skill 更好。

2. 环境感知

好的 Skill 会考虑执行环境:

## 环境适配

- 如果是 Linux 系统:使用 apt/yum 安装依赖
- 如果是 macOS:使用 brew 安装依赖
- 如果没有网络:使用本地缓存的包

3. 版本管理

Skill 应该像代码一样做版本管理。每次修改都记录改了什么、为什么改:

## 更新记录

- v1.2 (2026-04-28):增加了边界情况处理
- v1.1 (2026-04-20):优化了输出格式
- v1.0 (2026-04-15):初始版本

写在最后

Skill 不是什么高深的技术,它的本质就是把你的经验结构化

你越清楚自己是怎么做一件事的,你的 Skill 就写得越好。反过来,写 Skill 的过程也会逼你梳理自己的工作流程,这本身就是一种提升。

别想着一口气写个完美的 Skill。先写一个能用的,然后在实践中不断打磨。

好的 Skill 是迭代出来的,不是设计出来的。

从今天开始,挑一个你最常做的任务,写一个 Skill 试试。你会发现,AI 突然变得”聪明”了——其实不是它变聪明了,是你终于学会怎么跟它说话了。


如果觉得有用,点个「在看」转发给朋友吧~