什么是 AI 模型 Skill?以及如何做一个自己的 Skill

什么是 AI 模型 Skill?以及如何做一个自己的 Skill

智谱

AI 正在加载摘要

最近 AI 圈里“Skill”这个词频繁出现,Claude、OpenAI、微软都在推。但对很多开发者来说,它听起来既像插件,又像提示词,还有点像工作流。这篇文章说清楚三件事:Skill 到底是什么、它和提示词/MCP 有什么区别、以及怎样从零做一个自己的 Skill。

QQ20261012-011511_compressed

一、Skill 到底是什么

一句话:Skill 是打包好的“工作手册”,让 AI Agent 在遇到特定任务时,按你预设的流程去做。

它的物理形态非常朴素——一个文件夹,核心是里面的 SKILL.md 文件:

skill-name/
├── SKILL.md          # 必填:元数据 + 指令
├── references/       # 可选:详细参考文档
├── scripts/          # 可选:可执行脚本
└── assets/           # 可选:模板、素材

SKILL.md 的开头是 YAML 格式的元数据,只有两个必填字段:

---
name: git-commit-helper
description: 根据 git diff 生成规范的提交信息。当用户提到提交、commit message、写提交说明时使用。
---

关键点:description 决定了这个 Skill 什么时候会被激活。Anthropic 官方工程博客指出,好的 description 必须同时说清楚 做什么(WHAT) 和 什么时候用(WHEN),并明确列出不应触发的场景。

正文部分就是给 AI 看的“操作说明”,用 Markdown 写,步骤、注意事项、输出格式都放在这里。

二、Skill 和提示词、MCP 有什么区别

这是最容易混淆的地方。

Skill 不是提示词的“升级版”。本质上,Skill 就是结构化的提示词,区别在于工程维度:

 
 
  手写提示词 Skill
使用方式 每次手动粘贴 AI 自动发现、按需加载
可携带资源 只有文字 可带脚本、模板、参考文档
触发方式 用户主动提供 description 自动匹配任务

Skill 也不是 MCP 的替代品。MCP 解决的是“AI 怎么调用外部工具”的问题,比如连数据库、调 API;Skill 解决的是“AI 按什么流程做事”的问题。

打个比方:MCP 是给 AI 装上“手”,让它能拧螺丝;Skill 是给 AI 一本“装配说明书”,告诉它先拧哪个、拧多紧、顺序是什么。用软件架构来理解,应用层是 Agent Skills(领域知识、工作流),传输层是 MCP(标准化接口、工具调用),基础设施层是数据库、API。

ee191cb5-0d36-4100-ae60-162e327c67b3_compressed

三、Skill 的核心机制:渐进式加载

Skill 最巧妙的设计是三层渐进式加载,这也是它能“装很多但不觉重”的原因:

第一层:元数据。AI 启动时只预加载每个 Skill 的 name 和 description,每个约占 几十到一百个 token。AI 知道“我有哪些 Skill 可用”,但不知道具体内容。

第二层:SKILL.md 正文。当 AI 判断当前任务和某个 Skill 的 description 匹配时,才把 SKILL.md 的完整内容读进上下文。官方建议正文控制在 5000 token 以内。

第三层:捆绑资源。如果正文里写了“需要时参考 references/xxx.md”,AI 只在真正需要时才去读那个文件。脚本执行时,代码本身永远不会进上下文,只有运行输出回来——这比让模型现场生成等效代码省 token,而且结果确定。

这就是为什么你装几十个 Skill 也不会撑爆上下文——不相关的 Skill 根本不会被加载。

四、真实的生产力数据

Skill 不是概念演示,已有企业级落地数据。

日本电商巨头 Rakuten 在财务工作流中使用 Skill 后,官方报道的原话是:“以前需要一天的工作,现在大约一小时就能完成。” 这是 8 倍的生产力提升,且是在特定、可衡量的工作流中。Box、Canva 等公司也报告了类似的企业级集成场景。

五、如何做一个自己的 Skill

第一步:想清楚“只做一件事”

Anthropic 官方工程博客有个精准类比:给 Agent 做 Skill,就像给新员工写入职指南。新员工不需要百科全书,需要的是“这个任务具体怎么做”的操作手册。

别做“帮我处理文档”,要做“从 PDF 提取表格数据并输出 CSV”。

第二步:创建文件夹结构

一个 Skill 的本质就是一个文件夹。最小结构只需要一个 SKILL.md:

weekly-report/
└── SKILL.md

如果需要更多资源,按官方规范扩展:

weekly-report/
├── SKILL.md          # 必填
├── references/       # 可选:参考文档
├── scripts/          # 可选:可执行脚本
└── assets/           # 可选:模板、素材

关键规则:文件夹名必须和 name 一致,使用 kebab-case(小写+连字符),不能有空格或下划线。

第三步:写 SKILL.md 的元数据

---
name: weekly-report
description: 根据 git commit 记录生成周报。当用户提到周报、工作汇报、本周总结时使用。
---

description 是最关键的一步。OpenAI 官方文档原话是:“A vague description is the most common cause of a skill that never gets selected”。好的 description 必须同时包含做什么和什么时候用,官方推荐格式是 [能力描述] + Use when [触发条件]。

第四步:写正文指令

正文用 Markdown 写,是给 AI 看的操作说明。Hugging Face 的 Skill 格式指南建议,SKILL.md 正文控制在 400-800 行,详细参考材料移到 references/ 目录,代码示例移到 scripts/。

以“周报生成”为例:

# 周报生成

## 步骤
1. 运行 `git log --since="1 week ago" --pretty=format:"%s"` 获取本周提交
2. 按类型归类(feat / fix / docs / chore)
3. 用下面的格式输出

## 输出格式
## 本周工作

### 新功能
- ...

### 修复
- ...

## 注意事项
- 如果提交信息不清晰,不要编造,直接列出原文
- 保持每条一行,精炼简洁

第五步:添加脚本(可选)

如果某些操作用代码执行比用 token 生成更可靠、更便宜,就把它写成脚本放进 scripts/ 目录。Claude 的 PDF Skill 就是典型案例:它包含一个预写的 Python 脚本,用来读取 PDF 并提取表单字段。Claude 运行脚本时,脚本代码不需要加载到上下文窗口,而且因为代码是确定性的,工作流每次都一致可重复。

脚本在 SKILL.md 中的引用方式是用 ${CLAUDE_SKILL_DIR} 占位符:

运行以下命令提取表单字段:
python3 ${CLAUDE_SKILL_DIR}/scripts/extract_fields.py

第六步:打包和上传

不同平台的打包要求:

Claude 网页版:上传 ZIP 时,ZIP 里必须包含一个和 Skill 同名的顶层文件夹,SKILL.md 不能直接放在 ZIP 根目录。正确结构是 my-skill.zip → my-skill/ → SKILL.md。

OpenAI API:支持目录或多部分上传,要求恰好一个 SKILL.md 文件,ZIP 最大 50 MB,每个版本最多 500 个文件。

Claude Code:把 Skill 文件夹放到 ~/.claude/skills/(个人)或项目的 .claude/skills/(项目)目录下即可。

第七步:测试和迭代

如果 Skill 该触发却没触发,第一个要改的就是 description——这是最常见的原因。

六、一个完整的周报 Skill 示例

weekly-report/
└── SKILL.md

SKILL.md 内容:

---
name: weekly-report
description: 根据本周 git commit 记录生成周报。当用户提到周报、工作汇报、本周总结时使用。
---

# 周报生成

## 步骤
1. 运行 `git log --since="1 week ago" --pretty=format:"%s"` 拿到本周提交
2. 按类型归类(feat / fix / docs / chore)
3. 按下面格式输出

## 输出格式
## 本周工作

### 新功能
- ...

### 修复
- ...

### 其他
- ...

## 注意事项
- 提交信息看不懂就别编,直接列原文
- 每条一行,别啰嗦

把它扔进 Claude Code 的 skills 目录,下次你说“帮我写周报”,AI 自己就去读 git 记录了。

七、两个要注意的坑

安全:Skill 意味着 AI 能执行任意代码。OpenAI 官方文档明确警告:“Skills introduce security risks such as prompt injection-driven data exfiltration”。实用原则是:脚本设计成不联网、无副作用、只读输入输出。

局限:学术分析指出,Skill 处理复杂文档结构和持续学习方面仍有局限。别指望它解决所有问题。

最后说句实话

Skill 的核心就一句话:把你脑子里那些“每次都要重新讲一遍”的经验,变成一个文件夹,写一次,到处用。

它不改变模型本身的能力,但改变了你跟 AI 协作的方式——从“每次重新教”变成“写一次,自动跑”。更关键的是,写一个 Skill 的门槛,远比写一个 MCP Server 低得多。


参考来源:Anthropic 官方工程博客与帮助中心、OpenAI API 文档、Rakuten 企业案例报道、Hugging Face Agent Skills 仓库、Agent Skills 开放标准规范。

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
看完了?看完了愣着啊点赞干什么
点赞68 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容