先说一个让很多人头疼的场景。
你打开 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
-
删除完全重复的行,保留第一条
-
数字列不要有千分位逗号
步骤
-
读取文件,识别列类型
-
清洗:统一日期格式,去除多余空格,删除重复行
-
按用户要求排序
-
输出清洗后的 .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字
-
从一个具体场景或问题切入,不从定义开始
-
结尾自然引出文章主体,不硬转折
输出格式
候选标题:
-
[风格:疑问式] 标题内容
-
[风格:结论式] 标题内容
-
[风格:数字式] 标题内容
开篇导语:
[导语内容]
示例
输入:「文章讲AI工具更新太快,普通人怎么跟上」
输出标题参考:
-
「OpenClaw还没搞懂,Hermes已经来了:AI工具迭代太快,该怎么办?」
-
「你跟不上AI的速度,不是你的错」
-
「3个月,出现了7款新AI工具:普通人应该追哪个」
第三步,重启 Claude Code。
第四步,在新对话里说「帮我给这篇讲XXX的文章出几个标题和导语」,它自动调用这个 Skill,按你定义的格式输出,不需要你解释任何风格要求。
这就是 Skill 的完整用法。
最后说一句
Skill 这个概念之所以重要,不只是因为它省事。
它背后有一个更深的逻辑:你每次跟 AI 交互时投入的精力,可以被沉淀下来,变成可以重复使用的能力。
以前,你每次用 AI 都是从零开始,所有的背景、偏好、标准都在对话结束的时候消散。每次都重新投入相同的时间,永远在起点。
有了 Skill,你第一次认真整理了一套工作流,写进文件,放好位置,以后每次都站在那个起点上出发,不用回到原点。
用 AI 越久,你的 Skill 库就越丰富,你和 AI 之间的默契就越深。这不是在学一个工具的技巧,而是在建立一套可以不断积累的工作资产。
早一点开始,就早一点有回报。