卖坚果的怪叔叔 卖坚果的怪叔叔
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
首页 › 技术 › 什么是 Skill?

什么是 Skill?

坚果大叔
2026-08-12 21:32:42技术阅读 426

Skill 不是提示词的高级写法,而是把「你做事的方法」封装成一份可复用的操作说明书。

名词解释:Skill 到底是什么?

在 Claude Code、OpenClaw 这类 AI 工程工具里,Skill(技能) 指的是一个可被智能体按需加载的能力包。它的物理形态通常就是一个文件夹,里面至少有一个 SKILL.md 文件,外加可选的 scripts/、references/、assets/ 等子目录。

SKILL.md 的格式很像前端项目里的 README.md 加上 package.json 的混合体:

  • 顶部的 YAML Frontmatter 写 name 和 description,告诉系统「我是谁、什么时候该用我」。
  • 下面的 Markdown 正文写「该怎么做、输出什么格式、遇到异常怎么办」。

Anthropic 官方把它描述为 procedural memory for AI(AI 的程序化记忆)。翻译成人话:以前你每次都要口头教实习生怎么干活,现在你把流程写成一份手册,他入职第一天就能按手册出活。

和 Skill 经常一起出现的几个词有必要先区分清楚,不然后面容易混:

  • Prompt:一次性指令,聊完就丢。它解决的是「这次怎么说」。
  • Skill:可复用的标准化流程,存成文件,系统能自动识别并加载。它解决的是「这类事以后都按这个规矩做」。
  • Plugin/工具:一段确定性代码,点一下就执行固定逻辑。它解决的是「执行某个动作」。
  • MCP(Model Context Protocol):让 Agent 连上外部系统的通用接口标准,类似 USB-C。它解决的是「怎么连」。
  • Agent:带角色、记忆、规划和执行循环的智能体。它解决的是「以什么身份、怎么把事做完」。

一句话总结:MCP 负责连工具,Skill 负责把工具用好,Agent 负责决定什么时候用哪个 Skill。

我做前端这么多年,第一次看到 Skill 的文件夹结构时,第一反应是:这不就是我们项目里的 utils/formatDate.ts 加上同目录的 README.md 吗?

回想一下你写工具函数的经历:

  • 你先把「格式化日期」这个需求抽象出来;
  • 你定义好入参、出参、默认值、异常处理;
  • 你写几个测试用例,防止同事改错;
  • 最后你把它 export 出去,谁 import 谁用。

Skill 的逻辑几乎一模一样:

  • name/description = 函数签名 + JSDoc,告诉别人这是什么、什么时候用。
  • instructions = 函数体,告诉 AI 一步一步怎么做。
  • examples = 单元测试,给 AI 看正确输入应该得到什么输出。
  • scripts/ = 你不放心让 AI 写的确定性逻辑,比如正则匹配、数学计算、文件解析。

再打个比方:Agent 是一个刚入职的全栈实习生,能力很强但不知道你团队的规矩。Skill 就是你写给他的一份 SOP + 检查清单。以后每次要做代码 Review,他不需要你再说一遍「先看安全、再看性能、最后看可读性」,只要加载 code-review 这个 Skill,输出就是你们团队风格的 Review 报告。

Skill 还有个很关键的设计叫 Progressive Disclosure(渐进式加载):

什么是 Skill?-卖坚果的怪叔叔

也就是说,系统启动时只读每个 Skill 的 name 和 description(约 100 token),真正命中触发时才加载正文,额外资源只在需要时才拉取。这相当于前端里的 Code Splitting + Lazy Loading:没必要一次性把所有组件都打包进首页。

它能解决什么问题

Skill 之所以能火起来,是因为它真的解决了几类老痛点。

1. 输出不稳定

同一个需求,昨天让 AI 写周报它给了三段式,今天给了五段式。不是你 prompt 写错了,而是模型每次都在「自由发挥」。Skill 通过固定输出模板和校验点,把发挥空间框死。

2. 重复写 Prompt

你每周都要写「拉取 GitHub 本周提交 → 按模块分类 → 生成周报」,每次都重新描述一遍不现实。把这套流程写进 weekly-report Skill,以后一句话就能跑。

3. 团队经验无法沉淀

老前端知道怎么 Review 代码、怎么写发布 checklist、怎么处理线上故障。这些经验以前存在脑子里或某个 wiki 里,新人看不到。Skill 把这些经验结构化,变成 Agent 能直接调用的资产。

4. 和 MCP 配合形成闭环

MCP 给了 Agent 一堆接口(查 Jira、读数据库、发邮件),Skill 告诉 Agent 什么时候调用哪个接口、参数怎么填、失败怎么办。两者一结合,Agent 才能真正干活而不是乱调用。

一个 Skill 里面长什么样

最小可行的 Skill 只需要一个文件:

my-skill/
└── SKILL.md

稍微完整一点的结构:

my-skill/
├── SKILL.md          # 核心:触发条件 + 执行流程
├── scripts/          # 辅助脚本(只做执行,不进入上下文)
│   └── validate.py
├── references/       # 参考资料(按需加载)
│   └── api-docs.md
└── assets/           # 模板、图片等静态资源
    └── report-template.md

下面是一个贴近前端场景的示例:一个帮你按团队规范生成组件文档的 Skill。

---
name: component-doc
description: 为 React/Vue 组件生成标准化文档。当用户要求写组件说明、
  文档、Storybook 描述或组件使用示例时触发。
---

## 组件文档生成器

### 规则

1. 先读取组件源码,识别 props、emits/slots、类型定义。
2. 每个 prop 必须包含:名称、类型、是否必填、默认值、用途说明。
3. 给出至少一个完整使用示例,示例中的变量名要与源码一致。
4. 禁止编造源码中不存在的 API。
5. 输出结构固定为:概述 → Props → 事件/插槽 → 示例 → 注意事项。

### 输出格式

```markdown
### {{ComponentName}}

#### 概述
...

#### Props
| 名称 | 类型 | 必填 | 默认值 | 说明 |
...

#### 示例
...
```

### 异常处理

- 读不到源码时,提示用户提供文件路径。
- props 类型无法推断时,标记为 unknown 并说明原因。

真正决定你的 Skill 能不能在正确场景被触发的,是 description 这一小段。它直接决定你的 Skill 会不会在正确的场景被触发。描述里要包含具体动词和场景词,比如「组件文档」「Storybook」「props 说明」,而不是泛泛地说「帮助编程」。

怎么实现一个 Skill

我从写过十几个 Skill 的经验里提炼出 5 步,适合你从 0 开始。

步骤 1:选一个高频、重复、容易出错的任务

不要一上来就想做一个「万能 Skill」。第一个 Skill 最好是你们团队每周都在做、且流程相对固定的事,比如:

  • 代码 Review
  • 组件文档生成
  • 周报/月报
  • 线上故障 Runbook
  • 接口文档补全

步骤 2:新建目录并写出最小 Frontmatter

mkdir -p ~/.claude/skills/code-review
# 或项目内共享
mkdir -p .claude/skills/code-review

然后写 SKILL.md:

---
name: code-review
description: 按团队规范检查代码安全、性能和可维护性。
  当用户要求 review 代码、检查 bug 或审计安全时触发。
---

步骤 3:把流程拆成可执行的步骤

不要写愿景,写动作。每条规则都要回答:

  • 第一步做什么?
  • 第二步做什么?
  • 输出格式是什么?
  • 出错怎么办?

比如代码 Review Skill 可以写成:

  1. 检查 OWASP Top 10 安全风险;
  2. 识别性能瓶颈(循环、请求、重渲染);
  3. 评估可读性和命名;
  4. 输出「严重/建议/可选」三级结论。

步骤 4:补 2-3 个输入输出示例

示例是 Skill 的灵魂。AI 看示例比看规则学得更快。示例越多,输出越稳定。

步骤 5:安装、测试、迭代

Claude Code 把 Skill 放在 ~/.claude/skills/(个人)或 .claude/skills/(项目)即可自动识别。装好后,用一个真实任务跑一遍,看输出是否偏离预期。偏离了就去改 description、补约束、加示例。

写在最后

很多前端同学第一次听说 Skill 会以为它是「更复杂的 prompt」。其实不是。

Prompt 解决的是「一句话让 AI 回答」,Skill 解决的是「把一类事的流程固定下来,让 AI 每次都能按你的方式执行」。它更像是你在团队里沉淀的一套 工程规范 + 自动化脚本 + 检查清单。

如果你已经会用 MCP 给 Agent 接工具,别急着换更牛的模型——先把工具用好更划算。而 Skill,就是把工具用好的关键。

赞赏 赞(0)
失业在家,我给小朋友做了一个练字小程序!
上一篇
什么是Agent?
下一篇
在小程序中查看

这是个😊,挣点服务器费用😜

再想想
所有评论(1)
  • 扶苏

    有点高端~

    3 周前 回复
热门文章
正月十五,『炸麻团』咯~
在博客中加上memos记录展示。
又是周六的一天。
Mac更换node版本切换工具n模块的镜像源
十月末
专题标签
agent (1) CSS (15) dom (1) Es6入门系列 (14) Git (3) html (1) iview (1) JavaScript (9) js (4) Lif (1) Node (4) pyecharts (1) Python (10) ref (1) scriptable (1) Skill (1) vsCode (1) vue (4) wordpress (2) 三月 (1) 上海 (1) 假期 (1) 其他分享 (3) 前端两三问 (15) 古镇 (1) 外滩 (1) 对象 (1) 小程序 (5) 年度总结 (6) 年终总结 (1) 微信机器人 (4) 打字机 (1) 技术 (1) 日常问题 (8) 日常问题记录 (1) 春天 (2) 服务器 (2) 海族馆 (1) 生活 (8) 网上国网 (1) 记录 (3) 通勤 (1) 重学JavaScript (11) 面试题 (10) 🌸 (1)
什么是Agent?
2026-08-15 23:49:12
499 0 2
失业在家,我给小朋友做了一个练字小程序!
2026-08-07 16:21:52
854 10 1
上线8年,15万用户的小程序,一共赚了多少钱?
2026-05-30 18:01:24
4,825 4 0
WordPress评论留言通知推送插件!
2025-12-13 17:22:36
3,762 3
1
  • 0
  • 1
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2026 卖坚果的怪叔叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
345
文章
171
评论
432
喜欢