AI Agent Skills 指南
在越来越多的 AI Agent 工作流里,skills 用来把可复用的方法、操作步骤、脚本和参考资料打包成一个长期可维护的能力单元。
相比每次都重新写一段很长的 Prompt,skills 更适合那些会被反复执行、而且步骤相对稳定的任务。
什么是 Skill
一个 skill 通常包含:
- 一份核心说明文档,例如
SKILL.md - 必要时配套的
scripts/、references/、assets/或模板文件 - 清晰的触发条件、适用范围和输出要求
常见用途:
- 安装和初始化某一类开发环境
- 代码审查、排错、重构、发布检查
- 调用固定脚本生成报告、文档或配置
- 把团队经验沉淀成可复用流程
什么时候应该先写成 Skill
如果你在团队里反复遇到下面这些情况,通常就该考虑沉淀成 skill:
- 每次做同一类任务都要先解释一遍背景和约束
- 流程里已经有固定脚本、模板、检查清单或输出格式
- 任务本身不复杂,但很依赖执行顺序和细节
- 同一个问题由不同人来做时,结果质量波动很大
Skills 和 MCP 的关系
skills 和 MCP 经常一起出现,但它们职责不同:
| 维度 | Skills | MCP |
|---|---|---|
| 核心作用 | 复用步骤与知识 | 连接工具与数据 |
| 主要形式 | Markdown、脚本、模板 | Server、资源、工具接口 |
| 典型场景 | 发布 SOP、编码规范、排障流程 | GitHub、数据库、浏览器、Docker、搜索 |
一句话总结:
- Skill 负责“怎么做”
- MCP 负责“能做什么”
这也是为什么很多成熟的 Agent 工作流,都会同时维护一套 skills 和一组 MCP Servers。
典型目录结构
skills/
release-check/
SKILL.md
scripts/
run.ps1
references/
checklist.md
assets/
template.md
一个简单的 SKILL.md 通常会说明:
- 什么时候触发这个 skill
- 执行时先看哪些文件或配置
- 要优先使用哪些脚本或模板
- 成功输出应该长什么样
示例
# Release Check
适用于发布前检查。
流程:
1. 读取 changelog 与 package.json
2. 运行测试与构建
3. 按 references/checklist.md 输出检查结果
这个 skill 本身并不一定直接拥有“执行权限”,但它会告诉 Agent 在什么前提下该读哪些文件、调用哪些脚本、输出怎样的结果。
一个更实用的 SKILL.md 骨架
# Skill Name
## 什么时候使用
- 用户明确提到某个工具、平台或场景
- 仓库中出现特定文件、依赖或错误特征
## 先看什么
- `README.md`
- `package.json`
- `scripts/check.ps1`
## 执行顺序
1. 读取关键配置
2. 优先运行已有脚本
3. 必要时再补最小代码修改
4. 输出结果摘要与后续建议
## 输出要求
- 先给结论
- 再列出改动文件
- 最后给验证命令
## 不要做什么
- 不要绕过现有脚本另起炉灶
- 不要修改无关模块
这个骨架的核心思想是:让 Agent 少猜、少走弯路、少重复造轮子。
什么时候值得写成 Skill
满足下面 3 条中的 2 条,通常就值得沉淀成 skill:
- 同类任务已经重复做了很多次
- 每次都要解释一遍背景、步骤和格式
- 这个流程已经有稳定脚本、模板或参考资料可复用
写好 Skill 的几个关键点
- 触发条件要窄:避免“只要提到 Python 就触发”这种过宽规则
- 输入来源要清楚:告诉 Agent 应该先读哪个文件、哪类日志、哪个目录
- 优先级要明确:先用脚本、再用模板、最后才是现场手写
- 输出格式要稳定:让不同人、不同轮次得到的结果结构一致
- 失败路径要写出来:比如“缺少权限时停止并提示用户登录 / 授权”
编写建议
- 先写清 触发条件,避免误触发
- 说明 输入来源,例如某个目录、配置文件、PR 评论或 API 输出
- 说明 输出格式,例如 Markdown 清单、JSON、补丁、发布说明
- 如果已有脚本、模板、截图或样例,优先复用,不要让 Agent 现场重造
- 把不稳定或高风险的系统调用交给 MCP 或脚本,不要全靠自然语言描述
和 AGENTS.md、仓库规则怎么分工
AGENTS.md:更像仓库级协作协议,约束整个目录树的工作方式SKILL.md:更像可复用工作流,适合沉淀某一类任务的做法- 项目文档:补背景、示例、理念和人为可读说明
- 脚本 / MCP:负责真正执行工具调用、读取外部系统、生成结果
如果一个规则只在当前仓库生效,优先写进 AGENTS.md;如果你希望它能跨项目复用,更适合做成 skill。
常见问题
Skill 会不会和 Prompt 重复
会有重叠,但 skill 的价值在于 长期稳定复用。Prompt 更适合临时说明,skill 更适合团队标准化。
Skill 一定要配脚本吗
不一定。纯文档型 skill 也能工作,但如果流程里有高频命令、格式化输出或外部接口调用,最好配脚本或模板。
Skill 越长越好吗
不是。好的 skill 应该尽量短,但对关键分支、输入来源和输出要求足够明确。信息太散、太长,反而会降低触发质量和执行稳定性。
和 Codex / Claude Code / 其他 Agent 的搭配方式
实践里常见的拆分是:
- 项目级规则:放在仓库里的
AGENTS.md - 可复用工作流:放进
skills/目录中的SKILL.md - 外部系统能力:通过 MCP 模型上下文协议 接入
这样做的好处是:仓库规则、长期经验、工具能力三者职责清晰,不容易互相污染。
延伸阅读
- MCP 模型上下文协议 — 工具与资源连接层
- Docker Desktop 安装与使用 — 容器化运行 MCP 的常见底座
- OpenAI Skills — 可参考的 skills 仓库与示例
- OpenClaw - 个人 AI 助手网关 — 多代理与技能体系的实际落地案例