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 突然变得”聪明”了——其实不是它变聪明了,是你终于学会怎么跟它说话了。
如果觉得有用,点个「在看」转发给朋友吧~
夜雨聆风