主题
02-04 · Skills 详解(Anthropic Agent Skills)
Skill 是给 Agent 装的"专业能力包"。 当 Agent 接到一个任务,它会自己判断"要不要加载某个 Skill"。如果加载,Skill 里的步骤、模板、参考资料就成为它的临时记忆。
类比:MCP 像"USB-C"(提供能力),Skill 像"App Store 里的 App"(提供经验)。
一、什么是 Skill
Anthropic 在 2025 年正式推出 Agent Skills 规范。一个 Skill 就是一个文件夹:
my-skill/
├── SKILL.md ← 必须,描述"是谁、什么时候用、怎么用"
├── reference.md ← 可选,详细背景资料
├── examples/ ← 可选,示例
└── scripts/ ← 可选,工具脚本SKILL.md 头部是 YAML frontmatter,告诉 Agent 何时启用:
yaml
---
name: client-research
description: 当用户要求做"客户调研"或"竞品分析"时启用,输出标准格式的调研报告
---
# Client Research Skill
## 触发条件
- 用户提出:"帮我做 X 公司的调研"、"分析一下 X 行业"
## 执行步骤
1. 用 web_search 工具搜索目标公司官网与近期新闻
2. 用 firecrawl MCP 抓取关键页面
3. 按下面的模板输出报告
...二、Skills 解决了什么
| 痛点 | Skills 怎么解 |
|---|---|
| Prompt 太长,重要指令被冲掉 | 按需加载 → 不污染主上下文 |
| 同事之间复用难(每人 prompt 都不一样) | 一个文件夹打包,所有人共用 |
| Skill 之间缺乏隔离 | 文件夹边界天然隔离 |
| 想给 Agent 装"经验"而非"工具" | Skills 专门干这件事 |
我们公司的 SOP(标准作业流程)一律以 Skill 形式落地,而不是塞进每个项目的 prompt。
三、Skills 在哪里能用
| 平台 | 支持情况 |
|---|---|
| Claude.ai(网页 / 桌面) | ✅ |
| Claude Code | ✅(在 ~/.claude/skills/ 或项目 .claude/skills/) |
| Anthropic API(with skills) | ✅ |
| Windsurf | 部分支持(通过 CLAUDE.md 兼容方式) |
| 第三方 LLM | 设计上跨平台,但实际兼容性各家不同 |
关键判断:Skill 是文件夹 + Markdown,所以理论上你可以把它当"通用 SOP 文档"挂到任何 Agent 上。先按 Anthropic 规范写,再考虑跨平台。
四、最小实战:写一个属于公司的 Skill
我们以"代码 commit 规范化"为例。
4.1 创建文件夹
bash
mkdir -p ~/.claude/skills/qdy-commit
cd ~/.claude/skills/qdy-commit4.2 写 SKILL.md
markdown
---
name: qdy-commit
description: 当用户要求"提交代码"、"git commit"、"写 commit message"时启用,按公司规范生成 conventional commit
---
# 上海奇点砚 · Commit 规范
## 何时使用
- 用户说:"commit 一下" / "提交代码" / "帮我写 commit message"
## 执行步骤
1. 先跑 `git status` 和 `git diff --staged` 查看变更
2. 按下面的格式生成 commit message
3. 询问用户确认后才真正 git commit
## 格式(必须严格遵守)
```
<type>(<scope>): <subject>
<body>
<footer>
```
- type: feat / fix / docs / refactor / test / chore
- scope: 模块名(小写)
- subject: 中英文均可,<= 50 字
- body: 解释"为什么"而不是"是什么"
- footer: 关联 issue 例如 `Refs: #42`
## 示例
✅ 好:`feat(lead): 新增公司池自动发现的优先级排序逻辑`
✅ 好:`fix(api): 修复 /api/v1/leads 在大批量 import 时的 OOM`
❌ 差:`update`、`fix bug`、`修改`
## 注意
- 永远不要直接 `git push`,等用户决定
- 永远不要 `git commit -a`,必须 `git add` 后再 commit4.3 测试
进入 Claude Code,在任意一个 git 项目里:
> 帮我提交代码它应当自动加载 qdy-commit Skill,按公司规范工作。
五、官方 skill-creator —— 用 Agent 写 Skill
Anthropic 官方提供了 skill-creator 插件,能用 Agent 帮你设计、评估、改进 Skill。
- 仓库:https://github.com/anthropics/skills
- 官方说明:skills/skill-creator/SKILL.md
- 插件页面:https://claude.com/plugins/skill-creator
它有四种模式:
| 模式 | 干什么 |
|---|---|
| Create | 引导你从零写一个 Skill |
| Eval | 跑测试用例,评估 Skill 质量 |
| Improve | 基于实际使用反馈迭代 |
| Benchmark | 对比不同版本 Skill 的表现 |
公司流程:写 Skill 不要凭直觉写一遍就交付。用 skill-creator 跑一轮 Eval + Improve,再合并到团队仓库。
六、公司 Skills 仓库结构(建议)
我们建议把全公司的 Skills 放进同一个仓库,每人本地链到 ~/.claude/skills/:
qdy-skills/ ← 仓库
├── README.md
├── catalog.md ← 所有 Skills 的清单
└── skills/
├── qdy-commit/
│ └── SKILL.md
├── qdy-pr-review/
│ └── SKILL.md
├── qdy-client-research/
│ ├── SKILL.md
│ └── templates/
└── qdy-design-system/
├── SKILL.md
└── DESIGN.md本地用法:
bash
# 把仓库 clone 到一个固定位置
git clone git@internal.qdy:dev/qdy-skills.git ~/qdy-skills
# 软链到 Claude Code skills 目录
ln -s ~/qdy-skills/skills/* ~/.claude/skills/七、Skill 设计原则(公司心法)
- 一个 Skill 只干一件事。粒度太大不利于 Agent 判断启用时机。
- 触发条件写人话。Agent 是看 description 决定要不要加载,不要写得太抽象。
- Skill 里要有"反例"。告诉 Agent 什么情况 不要 用这个 Skill,避免误用。
- Skill 可以调用 MCP。在步骤里直接写"调用 firecrawl MCP 抓取 X 页面"。
- Skill 是活文档。每次发现 Agent 跑歪了,就回来改 Skill,不要靠 prompt 临时打补丁。
- Skill 评估必须做。用 skill-creator 的 Eval 模式,至少跑 5 个测试用例。
八、参考资料
- 📚 Anthropic Agent Skills 官方仓库
- 📚 skill-creator SKILL.md 原文
- 📚 Anthropic 官方 32 页 Skills 指南
- 📚 万字整理:Skills 构建指南(中文)
✅ 至此你应该能:
- 用一句话讲清 Agent / MCP / Skill 的区别
- 在 Claude Code 里挂 MCP、写 Skill
- 知道公司为什么把 SOP 用 Skill 来落地
继续 → 03 · 开发栈