秒懂SKILLS: 模块化的RULES + 轻量化脚本

众所周知,在AI编程的语境下,RULES几乎是必不可少的,人们需要在RULES中提前给AI制定规则:

它是一个什么样的角色

本工程采用了什么技术栈,它应该按什么编码规范来编码,如何组织工程代码。

当遇上一些非常见情况时,它应该如何处理,遵循什么原则

如何处理某些异常

但是,问题来了:

如果 RULES 太短,那它能覆盖的范围就非常有限。

如果 RULES 太长,每次会话AI都需要完全加载一遍它,浪费token倒是其次,重要的是token会降低AI的准确性提升幻觉。

于是,模块化【懒加载】的诉求,便血淋淋摆在人们面前了。

SKILLS要解决的也正是这个痛点。

它允许不同的规则被注册在不同的 SKILL.md 中,只在需要的时候进行加载。

SKILLS 的结构

要实现懒加载,有一个重要的问题需要解决:

大模型需要知道合适加载哪个 Skill。

因此,SKILLS的结构笼统性来说,分为两个部分:

元数据: 告诉大模型我是谁,我有什么能力,什么时候应该调用我。

内容:指导大模型如何进行编程。

这是一个典型 SKILL.md 文件的结构:

markdown

---name: API公约description: 适用于当前代码库的 API 设计模式---在编写 API 接口(端点)时:-遵循 RESTful 命名规范-返回统一的错误格式-包含请求参数校验

在头部被---包裹起来的部分就是markdown元数据,在这里它们被用来描述技能本身的特性。

name:技能的名称

description:技能的描述,有什么用,什么时候应该被加载

而下面具体指导编程规范的部分,则是该技能的【内容】。

一开始的时候,【内容】并不会被加载到上下文中,只加载精简过的【元数据】,这会极大地节约token消耗,也能降低模型幻觉。

SKILLS 放在哪?

结合 Claude Code、Trae、OpenCode 以及 Cursor 的最新文档,

Claude Code

位置:项目根目录 /.claude/skills/

结构:

lua

ProjectRoot/└── .claude/    └── skills/├── skill-a/  <-- 技能名称文件夹│  ├── SKILL.md  <-- 核心定义 (SOP & Prompts)│  └── scripts/  <-- (可选) 对应的 Python/Node 脚本        └── skill-b/            └── SKILL.md

生效方式:Claude Code 启动时自动扫描该目录,根据 User Prompt 和 SKILL.md 中的 description 自动挂载。

OpenCode

位置:通常为 /.opencode/skills/

ruby

Projectconfig:.opencode/skills//SKILL.mdGlobal config: ~/.config/opencode/skills//SKILL.mdProject Claude-compatible: .claude/skills/<name>/SKILL.mdGlobalClaude-compatible:~/.claude/skills/<name>/SKILL.md

Cursor

位置:通常为 /.cursor/skills/

arduino

.cursor/└── skills/    └── deploy-app/        ├── SKILL.md        ├── scripts/        │  ├── deploy.sh        │  └── validate.py        ├── references/        │  └── REFERENCE.md        └── assets/└── config-template.json

Trae

位置:通常为 /.trae/skills/

cartier-gzs.watchwb.cn

cartier-bjs.watch-hdl.com

cartier-css.hdl-watch.com

cartier-gzs.watchhdli.cn

cartier-bjs.watchrhf.cn

cartier-nbs.jshdsh.com

cartier-gzs.watchda.cn

cartier-bjs.csjshd.com

cartier-wzs.jshdkm.com

cartier-cds.xajshdzb.com

cartier-bjs.watch51.com

cartier-tjs.jshdcq.com

cartier-cds.watchjt.com

cartier-bjs.jshdsx.com

cartier-jns.guoshew.com

cartier-ccs.jsddshwx.com

cartier-cds.hljjshd.com

cartier-sjzs.watchsc.com

cartier-hfs.hbwatch.cn

cartier-cds.watchwx5.com

cartier-qzs.watchwd.com

cartier-kms.hbwatch.cn

cartier-cds.watchlj.cn

cartier-nns.watchk1.top

cartier-xas.watchjwi.cn

cartier-cds.watchjwd.cn

cartier-tss.watchjwb.cn

cartier-gys.watchae.com

cartier-sys.szwatchpg.com

cartier-yts.swatchstar.top

cartier-dgs.shrolexwatch.com

cartier-sys.rogerweixiu.com

cartier-xms.vay.net.cn

cartier-njs.jshdwatch.com

cartier-shs.xajshd.com

cartier-fzs.kmjshd.com

cartier-njs.hebjshd.com

cartier-shs.watchrft.cn

cartierw.watchwb.cn

cartierw.watchda.cn

cartierw.hebjshd.com

cartierw.watchjt.com

cartierw.gzomegawatch.com

cartierw.watchjwi.cn

cartierw.shrolexwatch.com

cartierw.hntwx.cn

cartier-hzs.hidcwatch.com

cartier-sys.ywbzn.com

cartier-shanghai.watch4s.com

cartier-shanghai.wbiaohome.com

bash

.trae/skills/├──skill-name/    ├── SKILL.md      ├── scripts    └── references

总的来说,各家有各家的习惯和地盘,希望后续能统一成标准吧。

有了SKILLS,可以不要MCP了吗?

绝对不可以!

它们并不是互斥的两套技术。

恰恰相反,它们是 “黄金搭档”,是底层能力 (Capabilities) 与 上层应用 (Applications) 的关系。

如果把构建 Agent 比作雇佣一个员工,那么:

MCP (Model Context Protocol) 是这个员工的 “手”和“感官”。

它定义了员工能做什么(比如:能拿杯子、能查数据库、能运行 Python 代码)。

它解决了“怎么连接”的问题(标准化的接口协议)。

Skills (技能/规则) 是这个员工的 “职业培训手册” (SOP)。

它定义了员工该怎么做(比如:看到客人来了要倒水、查库前要先鉴权、代码报错了要重试)。

它解决了“怎么思考”和“怎么决策”的问题(业务逻辑与流程控制)。

总的来说,只要把SKILLS当作模块化的RULES来理解会比较容易。

但,SKILLS 除了是模块化的 RULES 外,它还有一个重要的能力:

它具备脚本执行能力。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容