写了三个自定义 Skill 之后,我总结出这几条让 AI 稳定触发的规则

用 TraeCode 做了一阵子项目,有个问题一直困扰我:同样的代码审查需求,每次对话都得重新描述一遍审查标准——关注哪些维度、按什么格式输出、哪些情况要标红。后来翻文档发现 Skill 这个功能,试着自己写了几个,踩了不少坑。今天把过程中总结的经验分享出来,希望能帮到同样在摸索的同学。

Skill 到底是什么,和 Rule、MCP 有什么不同

先理清概念,不然容易用错地方。

  • Rule(规则):全量加载,一开对话就注入上下文,适合全局性的、每次都要遵守的约束(比如代码风格、命名规范)。缺点是持续占用上下文窗口。
  • Skill(技能):按需加载,智能体先扫描所有 Skill 的简要描述,判断当前任务是否相关,相关才加载完整内容。适合特定场景的专业能力,省 Token。
  • MCP Server:提供可调用的工具(比如 Playwright 操作浏览器、Figma 读取设计稿),Skill 则负责告诉智能体"什么时候用这些工具、按什么流程用"。

一句话:Rule 管"始终遵守",Skill 管"特定场景下怎么做",MCP 管"能调用什么工具"。

创建 Skill 的三种方式

TraeCode 提供三种创建路径,我三种都试过,各有适用场景:

1. 对话创建:直接跟 AI 说"帮我在 .trae/skills 目录下创建一个技能,名字叫 xxx,功能是 xxx",AI 会自动生成 SKILL.md。适合快速试水,但生成的描述和触发条件通常需要后续手动调整。

2. 手动创建:前往 设置 > 技能与命令,点 创建,选全局或项目类型,然后填写技能名称、描述和指令。适合需要精确控制每个字段的场景。

3. 导入外部技能:上传一个 SKILL.md 文件或包含它的 .zip 包,TraeCode 会自动解析填充字段。适合从社区或同事那里拿到现成技能的情况。

SKILL.md 的结构

核心就是 YAML frontmatter 加 Markdown 正文:

---
name: api-response-review
description: 当用户需要审查 API 接口的响应结构和数据格式时,从字段命名规范、数据类型一致性、错误处理完整性三个维度进行结构化评估。适用于接口设计评审、联调前的自查、以及响应体重构场景。
---
# API 响应结构审查

## 使用场景
- 用户请求审查 API 响应结构
- 接口联调前的自查
- 响应体格式重构

## 指令
1. 提取响应体的所有字段,检查命名是否统一(snake_case 或 camelCase)
2. 验证数据类型在列表和详情接口间是否一致
3. 检查错误响应是否包含 code、message、timestamp 三个标准字段
4. 输出审查报告,分"通过项"和"待修正项"两部分

## 不要使用的场景
- 用户只是查看接口文档
- 用户在讨论接口的认证方式

三条实战经验

第一,description 决定命中率。 Skill 的按需加载机制意味着 AI 先看 description 判断要不要加载。我第一个 Skill 的 description 写的是"帮用户审查代码",结果命中率很低——太模糊了。后来改成"当用户请求审查 API 接口响应结构时,从字段命名、数据类型一致性、错误处理完整性三个维度评估",触发就稳定多了。关键是要包含触发时机关键词,用第三人称从模型视角描述。

第二,职责绝对单一。 一开始我想把"API 审查 + 生成测试用例 + 输出接口文档"塞进一个 Skill,结果 AI 经常只执行其中一部分,或者触发时机判断混乱。拆成三个独立的 Skill 后,各自命中率明显提升。官方最佳实践文档说得很清楚:每个 Skill 只对应一个核心动作动词。

第三,写明"不要使用的场景"。 这是很多人忽略的。只写正向触发条件不够,还得写负向条件——什么情况下不该触发。比如我的 API 审查 Skill 里加了"不要在用户只是查看接口文档时触发",避免了文档阅读场景下的误加载。

进阶:渐进式披露

如果 Skill 内容比较多,不要把所有细节都塞进 SKILL.md。把 SKILL.md 当作入口和导航,详细参考资料拆成独立文件。比如:

api-response-review/
├── SKILL.md              # 核心指令(简洁)
├── naming-convention.md  # 命名规范细节
└── error-code-table.md   # 错误码对照表

SKILL.md 里用相对路径引用这些文件即可。这样 AI 初次加载只读核心指令,需要细节时再按需读取。官方建议 SKILL.md 主体不超过 500 行,引用文件保持一层深度,避免链式引用。

小结

Skill 的核心思路是"把你的专业经验变成 AI 可复用的能力模块"。写好一个 Skill 不是一次成型的事,而是先写最小版本,跑起来看哪里不稳定,再迭代修正。TraeCode 也内置了四个现成 Skill 可以参考:TRAE-security-review(安全扫描)、TRAE-code-review(代码审查)、TRAE-debugger(运行时调试)、TRAE-generate-mini-app(Taro 小程序生成),建议拆开它们的 SKILL.md 看看官方是怎么写的。


2 个赞