什么是 Skills
本文不做 Skills 的详细描述,具体的内容请看官方文档,支持中文. 阐述的 Skills 全部基于个人理解
Claude code 官方文档 Agent Skills - Claude Code Docs
Skills 出现之前的痛点
-
Token 膨胀。对话越长,成本越高,性能越差
-
失忆。大模型上下文有硬性长度,超出时,会丢失
| 传统方式 | rules 方式 | |
|---|---|---|
| 项目规范传递 | 每次对话都要重复说明(如“用 TypeScript”“命名用 camelCase”) | 一次性在 system prompt 或规则文件中定义,后续自动生效 |
| Token 消耗重点 | 大量 token 用于重复解释上下文和约束 | token 主要用于任务描述和结构化输出,规则本身不重复传输 |
| 上下文记忆能力 | 完全依赖对话历史,上下文满即丢失早期信息 | 规则常驻 system 层,但交互历史仍可能被截断 → “规则记得,对话忘了” |
| 一致性保障 | 低(AI 容易忽略或遗忘约束) | 中高(只要规则在上下文中,行为较稳定) |
再看看 rules 跟 Skills 的区别
| rules 方式 | Skills 方式 | |
|---|---|---|
| 规则/知识加载方式 | 一次性加载全部规则到上下文(如 100 条规范全塞进 prompt) | 按需加载:只在需要时从外部(如数据库、文件、API)调用相关技能或知识 |
| 上下文压力 | 高:规则越多,占用 token 越多,留给任务的空间越少 | 极低:技能逻辑外置,LLM 只接收必要参数和指令 |
| 是否“失忆” | 是:虽然规则在 system 中,但若总上下文超限,仍可能被裁剪或失效 | 否:知识持久化存储,通过检索或工具调用随时获取,不受上下文窗口限制 |
| 扩展性 | 差:新增规则需修改 prompt 模板,可能超出 token 限制 | 强:新增技能只需注册新工具,不影响现有流程 |
| 执行能力 | 被动:只能生成文本,无法操作外部系统 | 主动:可调用代码解释器、数据库、CLI 等,真正“做事” |
补充:skills 是增量注入,同一个 skill 持续使用超过上下文窗口限制的时候,还是会失忆。 但这里失忆的不是 skills 而是 task execution trace(任务执行轨迹)
Skills目的:高效、稳定、低成本
简单理解
Skills 核心还是提示词,固化prompt,这点上跟rules类似。
在这基础上,Skills 能模块化、做到按需加载
每个skill 可具备的能力
-
固化prompt
-
缓存策略 prompt caching (走缓存,同样tokens数量价格便宜。月付费就等于 tokens 消耗少)
-
声明模型可调用的外部能力(如读写文件、执行shell 等)
-
输入输出的约束/管理(Schema)
-
上下文管理逻辑(对话框长度超过时,模型忘记早期重要信息)
-
权限与安全边界,可控制该 skill 能访问哪些资源
小结
- 传统 → rules:从“每次教”到“一次教完”
- rules → skills:从“把所有书塞进脑子”到“知道去图书馆哪找哪本书,并会自己翻”
- Skills = 可组合的智能行为单元
Skill可调用的外部能力
Skills 使用技巧
让 Skill 连续工作
有A B 两个 skill
场景1: 用 A 处理了2件事, 再用B处理2件事
场景2: 用A处理了1件事,B处理1件事,A处理了1件事,B处理1件事
场景1比场景2消耗的token少
场景1(A→A→B→B)通常比场景2(A→B→A→B)消耗更少的 token(尤其是缓存读取更多、总成本更低)
原因就是 skills 是增量注入到上下文中,切换skill的时候会重新注入
验证
/cost 观察前后对比即可, 类似于这种