怎么开发 Cursor Agent Skill
·
Skill 是一份给 Agent 看的操作手册:用 Markdown 把「什么时候用、按什么步骤做、产出长什么样」写清楚,让 Agent 在特定场景下自动按你的团队习惯干活,而不是每次临时猜。
一、Skill 是什么
简单说:Skill = 可复用的任务说明书。
适合做成 Skill 的事情通常是:
- 有固定流程(发版、查库、写接口文档)
- 有团队规范(Code Review、Commit 格式)
- Agent 本身不懂的领域知识(内部 API、编码约定、校验脚本)
不适合做成 Skill 的:一次性问答、通用编程常识、随时会变的临时决策。
二、放在哪里
| 类型 | 路径 | 适用场景 |
|---|---|---|
| 个人 Skill | ~/.cursor/skills/技能名/ |
你自己跨项目通用 |
| 项目 Skill | .cursor/skills/技能名/ |
跟仓库一起共享给同事 |
目录结构一般是:
my-skill/
├── SKILL.md # 必填:主说明
├── reference.md # 可选:详细参考
├── examples.md # 可选:示例
└── scripts/ # 可选:辅助脚本
└── validate.py
注意:不要往 ~/.cursor/skills-cursor/ 里写东西,那是 Cursor 内置 Skill 的目录。
三、SKILL.md 怎么写
每个 Skill 必须有一个 SKILL.md,开头是 YAML frontmatter,后面是正文:
---
name: my-skill-name
description: 做什么,以及什么时候该用。Use when ...
---
# 技能标题
## Instructions
给 Agent 的逐步说明。
## Examples
具体输入/输出例子。
必填字段
| 字段 | 要求 | 作用 |
|---|---|---|
name |
最多 64 字符,小写字母/数字/连字符 | 唯一标识 |
description |
最多 1024 字符,不能为空 | 决定 Agent 会不会自动选用这个 Skill |
可选:disable-model-invocation: true —— 默认建议加上,表示「只有用户点名时才加载」;只有希望 Agent 根据上下文自动触发时,才去掉它。
四、最关键的一行:description
Agent 主要靠 description 判断「要不要读这个 Skill」。写不好,Skill 等于不存在。
写法原则:
- 用第三人称(会注入系统提示,不要写「我可以帮你…」)
- 同时写清 WHAT(做什么) 和 WHEN(何时触发)
- 带上用户可能说的关键词
好例子:
description: 按团队规范做 Code Review,检查正确性、安全与可维护性。Use when reviewing PRs, code changes, or when the user asks for a code review.
坏例子:
description: 帮助处理文档
五、正文怎么写才有效
1. 假设 Agent 已经很聪明
只写它不知道的东西:内部约定、固定模板、必须跑的命令、禁止事项。不要科普「什么是 PDF」。
2. 主文件控制在约 500 行以内
细节放到 reference.md / examples.md,在 SKILL.md 里用链接引用。引用只深一层,别套娃。
3. 自由度要匹配任务脆弱度
| 自由度 | 适用 | 例子 |
|---|---|---|
| 高(文字原则) | 多种做法都行 | Code Review 原则 |
| 中(模板/伪代码) | 有偏好但仍可微调 | 报告结构 |
| 低(固定脚本) | 必须一致、容易错 | 数据库迁移、校验 |
4. 常用写法模式
- 模板型:规定输出结构
- 示例型:给 Input → Output
- 工作流型:分步 checklist
- 分支型:先判断场景再走不同流程
- 校验环:改完 → 跑脚本 → 失败就修 → 通过再继续
5. 脚本什么时候加
能写成稳定脚本的,就放进 scripts/:比让 Agent 每次现写代码更可靠,也更省 token。写清楚是「执行」还是「只当参考读」。
六、推荐开发流程
Phase 1:想清楚
- 这个 Skill 解决什么具体问题?
- 个人用还是项目用?
- 用户说什么话时应该触发?
- Agent 缺什么领域知识?
- 有没有必须遵守的输出格式 / 现成范例?
Phase 2:设计
- 起名:
processing-pdfs这种,别叫helper/utils - 写好 description(含触发词)
- 列大纲:步骤、模板、是否需要脚本
Phase 3:实现
- 建目录
- 写
SKILL.md - 按需补 reference / examples / scripts
Phase 4:自检
- description 有 WHAT + WHEN,第三人称
-
SKILL.md不太长,术语统一 - 链接只深一层,没有过期时间表述
- 真正对话里试一次:能不能被发现、步骤能不能跟下来
七、一个完整小例子
code-review/
├── SKILL.md
├── STANDARDS.md
└── examples.md
---
name: code-review
description: Review code for quality, security, and maintainability following team standards. Use when reviewing pull requests, examining code changes, or when the user asks for a code review.
---
# Code Review
## Quick Start
1. 检查正确性与边界情况
2. 检查安全问题
3. 评估可读性与可维护性
4. 确认测试是否够用
## Feedback 格式
- Critical:合并前必须改
- Suggestion:建议改进
- Nice to have:可选
## Additional Resources
- 详细规范见 [STANDARDS.md](STANDARDS.md)
- 示例见 [examples.md](examples.md)
八、常见踩坑
- description 太虚 → Agent 发现不了
- 写太长 → 抢上下文,反而干扰
- 一次给太多可选方案 → 写一个默认路径 + 一个例外即可
- 路径写成 Windows 反斜杠 → 统一用
scripts/foo.py - 把时间写死在正文里 → 容易过期;旧方案放到「旧模式」小节里
九、一句话总结
写 Skill 的本质不是写文档给人读,而是写一份短、准、可执行的 Agent 指令:description 负责「被发现」,正文负责「做对」,细节和脚本负责「做稳」。
更多推荐



所有评论(0)