博客 · 2026年10月9日 · 约 3 分钟
Agent Skills 入门:是什么、怎么写、装在哪
Skill 是一个带 SKILL.md 的目录,把重复的指令和流程交给智能体按需加载。本文讲清结构、加载方式、在 Claude Code、Codex、Cursor 里的位置,以及写好一个 Skill 的要点。
相关智能体:Claude CodeOpenAI CodexCursor
用智能体写代码久了,总有一些话要反复说:提交信息怎么写、发版要跑哪几步、这个项目的接口约定是什么。每次都粘贴一遍,既浪费上下文,也容易漏。Skill 就是把这些内容打包成文件,让智能体在需要时自己去读。
Skill 是什么
一个 Skill 就是一个目录,里面至少有一个 SKILL.md:
summarize-changes/
├── SKILL.md 必需:前置信息 + 指令
├── reference.md 可选:详细参考资料,需要时再读
└── scripts/
└── helper.py 可选:可执行的脚本SKILL.md 分两部分:开头 --- 之间的 YAML 前置信息,告诉智能体这个 Skill 是做什么的、什么时候用;后面的 Markdown 正文是具体指令。
---
name: commit-message
description: 按团队约定写提交信息。用户要提交代码、写 commit message 时使用。
---
1. 运行 `git diff --staged` 查看暂存的改动
2. 第一行不超过 50 个字,用动词开头,说明改了什么
3. 空一行后用列表写原因和影响范围这种格式来自 Agent Skills 开放标准,Claude Code、Codex、Cursor 等都支持,写一次可以在多个智能体里用。
为什么不直接写进 CLAUDE.md / AGENTS.md
关键在于按需加载(Codex 文档称为「渐进式披露」):
- 会话开始时,智能体只看到每个 Skill 的名字和描述
- 任务和描述对得上,或者你手动调用时,才加载
SKILL.md全文 - 辅助文件和脚本,只有指令里用到时才读取或执行
所以 Skill 可以放很长的参考资料,平时几乎不占上下文。而 CLAUDE.md、AGENTS.md 每次会话都完整加载,适合放「每次都该知道的事实」,比如构建命令和目录结构。
一个简单的判断方法:是事实,放项目说明;是流程,放 Skill。 Claude Code 官方文档的说法是,当 CLAUDE.md 里某一节从「事实」长成了「流程」时,就该把它拆成 Skill。
怎么调用
两种方式:
| 方式 | 说明 |
|---|---|
| 自动调用 | 智能体根据 description 判断任务是否匹配,匹配就自己加载 |
| 手动调用 | Claude Code 和 Cursor 输入 /skill-name,Codex 输入 $skill-name |
有副作用的流程(部署、发消息、提交)不适合让智能体自己决定什么时候跑。在 Claude Code 里,前置信息加 disable-model-invocation: true,就只能手动调用。
放在哪里
把整个目录放到智能体读取 Skill 的位置。个人目录对所有项目生效,项目目录提交进仓库后团队都能用:
| 智能体 | 个人目录 | 项目目录 |
|---|---|---|
| Claude Code | ~/.claude/skills/<name>/ | .claude/skills/<name>/ |
| Codex | ~/.agents/skills/<name>/ | .agents/skills/<name>/ |
| Cursor | ~/.cursor/skills/<name>/ | .cursor/skills/<name>/ |
两个常见错误:
- 只放了一个
name.md文件,而不是name/SKILL.md目录,智能体不会识别 - 只复制了
SKILL.md,漏了scripts/和参考文件,指令里引用的内容就找不到了
各家的完整规则(同名时用哪个、子目录里的 Skill 什么时候加载)见 Claude Code:Skill 和 Codex:Skills。
写好一个 Skill 的要点
1. 描述决定会不会被触发。 自动调用完全依赖 description。把用途和触发场景写在最前面,用用户自然会说的词,比如「写提交信息」「review 这次改动」。描述在 Skill 很多时会被截短,所以关键词要靠前。
2. 正文要短。 Skill 一旦加载,内容会留在对话里,每一行都持续占用上下文。写要做什么,不写为什么这么做。长篇资料放进单独的文件,在 SKILL.md 里说明「需要 X 时读 reference.md」。
3. 一个 Skill 只做一件事。 「部署」和「写发版说明」拆成两个,描述更好写,触发也更准。
4. 装别人的 Skill 前先读一遍。 Skill 会让智能体照着执行,可能运行自带的脚本。Claude Code 的 allowed-tools 字段还能让列出的工具在调用时免确认。来源不明的 Skill,先看正文、allowed-tools 和 scripts/。
从哪里找现成的 Skill
本站的 Skills 目录 自动收录 GitHub 上的 Skill 仓库,精选 页按场景挑了一批,官方 页列出各厂商自己维护的 Skill。每个详情页都给出了安装方式。
也可以让智能体自己找和安装:
npx funcoding-cli skills find "代码评审"
npx funcoding-cli skills add <owner/repo/skill>默认装到 Claude Code 的个人目录,加 --agent=codex 或 --agent=cursor 装给其他智能体,加 --project 装到当前项目。命令说明见 CLI。