一篇文章彻底搞懂AI Skill 是什么、怎么用、怎么写 ?

0 阅读14分钟

先说一个让很多人头疼的场景。

你打开 Claude、OpenClaw 或者任何 AI 工具,开始一个新对话。你需要整理一份 Excel 表格,于是你花了三分钟解释:「我需要你按照这个格式……不要输出 HTML,只输出 xlsx 文件……列名要这样排列……日期格式统一用 YYYY-MM-DD……」

AI 理解了,帮你做完了,效果不错。

第二天,你又来了,换了个新任务,还是需要处理 Excel。然后你又花了三分钟,把昨天说的那些话一字一句重复了一遍。

第三天,依然如此。

这不是 AI 不够聪明,这是它的底层机制导致的:每次新对话,它都是一张白纸,什么都不记得。

Skill,就是解决这个问题的。


第一章:Skill 是什么

想象你新入职了一家公司,你的直属上司是个经验丰富的老员工。

第一周,他花了大量时间培训你:「遇到客户投诉,按这个流程走……写周报要用这个模板……发邮件时这几个格式注意一下……」

你把这些东西全记下来了,装进了一个叫「入职培训手册」的文件夹。以后每次遇到类似的事,你打开手册,按步骤来,效率极高,质量有保证。

Skill,就是给 AI 准备的这本「入职培训手册」。

更准确的技术说法是:Skill 是一个文件夹,里面有一份叫 SKILL.md 的说明文档,告诉 AI 在遇到特定类型的任务时,应该按照什么标准、什么步骤、输出什么格式来完成工作。

写好之后,你把这个文件夹放到指定位置,AI 以后每次启动都会读取它。遇到匹配的任务,自动按手册来,不需要你每次重新解释。

有了 Skill 的 AI,就像一个经过专业培训的员工;没有 Skill 的 AI,就像一个每天上班前都要重新入职的新人。


第二章:Skill 和你以前知道的东西有什么不同

学过用 AI 的人,通常会问:这不就是 Prompt(提示词)吗?或者,这跟 MCP 有什么区别?

这两个问题都很好,值得认真说。

Skill 和 Prompt 的区别

Prompt 是一次性的。你在对话框里告诉 AI「你是一个专业的 Excel 处理专家,处理时注意……」,这段话只在这一次对话里有效。关闭对话,重新开一个,你得重说一遍。

Skill 是持久化的。你把这段说明写成一个文件,放到 AI 能找到的地方,以后每次启动,它都知道这个技能存在,遇到相关任务自动调用,你什么都不用说。

简单说:Prompt 是打一通电话,Skill 是签一份长期合同。

Skill 和 MCP 的区别

这个稍微复杂一点。用一个厨房类比来说最清晰:

MCP 是专业厨房,里面有各种工具、食材、设备——它给了 AI 调用外部能力的接口,比如能连接数据库、能访问网页、能调用 API。

Skill 是菜谱,告诉 AI 怎么用这些工具做出一道菜——它提供的是流程、标准和操作说明。

有了厨房没有菜谱,AI 可以调各种工具,但不知道在处理你的任务时该按什么顺序来。有了菜谱没有厨房,AI 知道流程,但做不了需要外部工具的事。

两者是互补关系,Skill 建立在 MCP 之上,让调用能力有了流程规范。

另外还有一个概念叫 Rule(规则),也会经常出现。区别是这样的:

Rule 是贴在工位上的「公司行为守则」,一直生效,管 AI 说话的态度和格式;Skill 是「岗位培训大礼包」,只有遇到相关任务时才加载,告诉 AI 这类事情该怎么专业地做。


第三章:Skill 是怎么工作的

这里有一个很精妙的设计,理解了它,你才能写出真正好用的 Skill。

AI 不会把所有 Skill 的内容一次性全塞进大脑。

为什么?因为 AI 的「工作记忆」是有限的,专业说法叫「上下文窗口」。如果你装了 20 个 Skill,把它们全部加载进来,一半的空间就被占满了,还没开始干活呢,脑子已经快撑不住了。

所以 Skill 采用了一种叫「渐进式加载」的机制,分三个阶段:

第一阶段:发现

AI 启动时,只扫描每个 Skill 的「标签」——名字(name)和描述(description)。就像你翻阅一叠文件夹,只看每个文件夹的标签,不打开。

第二阶段:激活

当你的任务和某个 Skill 的描述匹配时,AI 才把这个 Skill 的完整内容读进来,开始按里面的步骤操作。文件夹被打开了。

第三阶段:执行

如果这个 Skill 里还有附带的脚本文件或参考文档,只在真正需要的时候才去读。不需要的东西,一直压在文件夹底层不动。

这个机制的含义,对你写 Skill 有一个直接影响:你的 description(描述)写得好不好,直接决定 AI 能不能在对的时候找到并使用这个 Skill。

描述写得太模糊——「处理各种文档相关任务」——AI 不知道遇到什么情况该用它,通常选择不用。

描述写得具体——「当用户需要处理 .xlsx、.csv 文件,进行数据清洗、格式统一、图表生成时使用」——AI 一眼就能判断,这个任务我该用这个 Skill。


第四章:一个 Skill 长什么样

别被技术词汇吓到。一个最基本的 Skill,只是一个文件夹里放一个文本文件,会写字就会做。

文件夹结构

excel-cleaner/          ← 文件夹名,随便起,有意义就好

└── SKILL.md            ← 必须有,这是核心

复杂一点的可以有:

excel-cleaner/

├── SKILL.md            ← 必须有

├── scripts/            ← 可选:辅助脚本(Python、Bash等)

├── references/         ← 可选:参考文档、示例文件

└── assets/             ← 可选:模板、资源

但只要有 SKILL.md,就是一个完整的 Skill。其他都可选。

SKILL.md 的结构

这个文件分两部分。

第一部分是「身份证」,用 YAML 格式写,夹在两行 --- 中间。只有两个字段是必须写的:


name: excel-cleaner

description: 当用户需要处理Excel或CSV文件,进行数据清洗、格式统一、列排序、去重、生成图表时使用。不适用于纯文字分析任务。


name 是这个 Skill 的代号,必须全小写,只能用字母、数字和横线,不能有空格。

description 是这个 Skill 的「触发条件」,告诉 AI 在什么情况下该启用它。这是整个 Skill 里最重要的一行话。

第二部分是「操作手册」,普通的 Markdown 格式,写清楚 AI 应该怎么做:

Excel 数据清洗技能

工作原则

  • 输出文件必须是 .xlsx 格式,不输出 HTML 报告

  • 日期列统一格式为 YYYY-MM-DD

  • 删除完全重复的行,保留第一条

  • 数字列不要有千分位逗号

步骤

  1. 读取文件,识别列类型

  2. 清洗:统一日期格式,去除多余空格,删除重复行

  3. 按用户要求排序

  4. 输出清洗后的 .xlsx 文件,文件名加 _cleaned 后缀

示例

用户说「把这个CSV清洗一下,按金额降序」时:

  • 统一格式处理

  • 按金额列降序排列

  • 输出 原文件名_cleaned.xlsx

这就够了。就这么简单。


第五章:怎么安装别人做好的 Skill

在自己写之前,先用用别人的成品,是最好的入门方式。

Claude Code 的安装方式

Claude Code 有自己的插件市场,直接在命令行里操作:

查看有哪些官方插件

claude plugin marketplace

安装一个插件(比如文档处理类)

claude plugin install 插件名称

安装好之后,Skill 会出现在 ~/.claude/skills/ 这个文件夹里。你也可以直接把别人的 Skill 文件夹复制进这个目录,效果一样。

安装完,用 /skills 命令可以列出当前所有可用的 Skill,确认安装成功。

OpenClaw 的安装方式

OpenClaw 有一个叫 ClawHub 的 Skill 市场(clawhub.ai),类似 App Store,汇聚了社区提交的各种 Skill。

搜索技能

clawhub search "自动发送邮件"

 

安装技能

clawhub install 技能名称

Skill 默认安装到 ~/.openclaw/workspace/skills/ 目录,重启 OpenClaw 后生效。

Hermes Agent 的安装方式

Hermes 有一个 Skills Hub,在社区里分享技能。安装后放到对应的目录,Hermes 启动时自动扫描加载。

三个平台的核心逻辑是一样的:找到文件夹,放进去,重启,生效。


第六章:手动写一个属于自己的 Skil

理论够了,来动手做一个。

场景:你每周要写工作周报,固定格式,固定风格,每次都要解释半天。

步骤一:在电脑上找到合适的位置创建一个文件夹。

如果你用 Claude Code,在终端里输入:

mkdir -p ~/.claude/skills/weekly-report

如果你用 OpenClaw,把 ~/.claude 换成 ~/.openclaw/workspace,其余一样。

步骤二:在这个文件夹里创建 SKILL.md 文件,用任何文本编辑器都行:


name: weekly-report

description: 当用户说写周报、生成周报、整理本周工作总结时使用。输出结构化的工作周报,包含本周完成事项、下周计划、遇到的问题三个部分。


 

工作周报生成技能

 

输出格式

周报必须包含三个部分,不能省略任何一部分:

 

一、本周完成

  • 用简洁的动宾结构列出

  • 每条控制在30字以内

  • 附上关键数据或成果(如有)

 

二、下周计划

  • 列出3-5个明确的下周重点任务

  • 每条写清楚具体要做什么,不写模糊表述

 

三、遇到的问题

  • 如有待解决问题,列出并说明影响

  • 如无问题,写「本周无重大障碍」

 

写作风格

  • 语言简洁,避免废话

  • 用第一人称或客观陈述,不用「我们」

  • 不加前言废话,直接输出正文

 

输出要求

  • Markdown 格式

  • 标题层级:用 ## 而不是 #

  • 不要在最后加「如有需要可进一步补充」之类的客套话

步骤三:保存,重启你的 AI 工具。

步骤四:下次只需要说「帮我写本周周报」,然后把本周工作列给它,它会按照你定义的格式自动输出。

你一个字的格式要求都不用说了。


第七章:写好 Skill 的几个关键点

做完了基础版,再说几个让 Skill 真正好用的细节。

第一,description 要写「触发条件」,而不是「功能描述」

很多人第一次写 description,会写成「这个技能可以帮助处理Excel相关的数据处理工作」。

这句话描述了功能,但没告诉 AI 什么时候该用它。

改成:「当用户提到处理Excel、CSV文件,或需要数据清洗、去重、格式统一时使用。不适用于简单的数据查询或纯文字分析。」

加上「什么时候用」和「什么时候不用」,AI 的判断准确率会高出很多。

第二,SKILL.md 尽量不超过 500 行

不是说写长了不行,而是太长会消耗更多的上下文空间,导致 AI 处理其他任务的能力下降。如果内容确实多,可以把参考文档放在 references/ 文件夹里,SKILL.md 里只写核心流程,用「参见 references/规范.md」的方式引用。

第三,可以搭配脚本使用

如果你的任务需要执行某些固定操作,可以在 scripts/ 文件夹里放 Python 或 Shell 脚本,SKILL.md 里告诉 AI「在第X步,执行 scripts/process.py」。

这样的好处是,脚本的执行结果是确定的——同样的输入永远得到同样的输出,不像 AI 生成的文字有时候会有偏差。

第四,高风险操作建议设置手动触发

有些 Skill 可能涉及修改文件、发送消息、部署代码这类不可逆操作。这类 Skill 建议在 frontmatter 里加一行:

disable-model-invocation: true

加了这行,这个 Skill 只能你主动输入 /技能名称 来调用,AI 不会自动触发,避免误操作。

第五,写完了测试一下触发是否准确

装好 Skill 之后,测两类场景:

「应该触发的」:用你描述里写的场景发出请求,看 AI 有没有用这个 Skill。

「不该触发的」:发一个完全不相关的请求,看 AI 有没有误用这个 Skill。

如果该触发时不触发,把 description 里加入更多用户可能说的关键词。如果误触发,在 description 里加「不适用于……」的说明。


第八章:Skill 放在哪里,从哪里找

已有的好资源,直接用就省事很多。

官方仓库

Anthropic 在 GitHub 上有一个官方 Skills 仓库(github.com/anthropics/skills),里面有 18 个官方制作的技能,包括 PDF 处理、Excel 操作、Word 文档、算法艺术、品牌规范应用、代码测试等,质量有保证,可以直接拿来用,也可以作为学习参考。

社区市场

ClawHub(clawhub.ai)是 OpenClaw 生态的 Skill 市场,目前汇聚了上万个社区提交的技能,覆盖自动化工作流、文档处理、信息收集等各类场景,可以搜索后直接安装。

Hermes Skills Hub

Hermes Agent 也有自己的技能分享社区,主要面向需要持续运行、跨会话记忆的工作流场景。

本地安装位置

大多数 AI 工具的 Skill 都放在用户目录下的隐藏文件夹里:

Claude Code:/.claude/skills/ OpenClaw:/.openclaw/workspace/skills/

把任何符合格式的 Skill 文件夹复制进去,重启工具,就能用。这是最简单粗暴的安装方式,不需要任何命令行操作。


第九章:一个 Skill 的完整生命周期

最后,用一个完整的例子把所有东西串起来,让你看到一个 Skill 从创建到使用的全过程。

场景:你是做内容创作的,每次写公众号文章都要生成一个「可读性高的中文标题 + 导语」,有固定的风格要求。

第一步,创建文件夹:

~/.claude/skills/weixin-title/

└── SKILL.md

第二步,写 SKILL.md:


name: weixin-title

description: 当用户需要为公众号文章生成标题或导语时使用。适用于科技类、生活类、观点类内容。输出符合微信公众号传播特点的标题组合和开篇导语。


 

微信公众号标题与导语生成

 

标题生成规则

  • 一次提供三个候选标题,风格各有差异

  • 主标题控制在18字以内

  • 使用疑问句、反转句、数字句等高传播格式

  • 不用夸张词汇如「震惊」「绝了」「必看」

  • 贴近读者真实关心的问题,不制造焦虑

 

导语生成规则

  • 开篇第一段,100-150字

  • 从一个具体场景或问题切入,不从定义开始

  • 结尾自然引出文章主体,不硬转折

 

输出格式

 

候选标题:

  1. [风格:疑问式] 标题内容

  2. [风格:结论式] 标题内容

  3. [风格:数字式] 标题内容

 

开篇导语:

[导语内容]

 

示例

输入:「文章讲AI工具更新太快,普通人怎么跟上」

输出标题参考:

  1. 「OpenClaw还没搞懂,Hermes已经来了:AI工具迭代太快,该怎么办?」

  2. 「你跟不上AI的速度,不是你的错」

  3. 「3个月,出现了7款新AI工具:普通人应该追哪个」

第三步,重启 Claude Code。

第四步,在新对话里说「帮我给这篇讲XXX的文章出几个标题和导语」,它自动调用这个 Skill,按你定义的格式输出,不需要你解释任何风格要求。

这就是 Skill 的完整用法。


最后说一句

Skill 这个概念之所以重要,不只是因为它省事。

它背后有一个更深的逻辑:你每次跟 AI 交互时投入的精力,可以被沉淀下来,变成可以重复使用的能力。

以前,你每次用 AI 都是从零开始,所有的背景、偏好、标准都在对话结束的时候消散。每次都重新投入相同的时间,永远在起点。

有了 Skill,你第一次认真整理了一套工作流,写进文件,放好位置,以后每次都站在那个起点上出发,不用回到原点。

用 AI 越久,你的 Skill 库就越丰富,你和 AI 之间的默契就越深。这不是在学一个工具的技巧,而是在建立一套可以不断积累的工作资产。

早一点开始,就早一点有回报。