欢迎光临
我们一直在努力

【技能篇】OpenClaw Skill 详解:给 AI 装上“专业外挂“

如果说 OpenClaw 是一个 AI 员工,那 Skill 就是它的岗位培训手册。没有 Skill,它只是个聪明但啥也不会干的"嘴强王者";装上 Skill,它就变成了能写文档、做报表、处理邮件、操控浏览器的全能打工人。这篇文章从零讲透 Skill 是什么、怎么运作、怎么选、怎么写。


一、先说人话:Skill 到底是什么?

你买了个新手机,开箱之后能干嘛?打电话、发短信、上网。就这么多了。

但你装了微信,它就能聊天;装了美团,它就能点外卖;装了抖音,它就能刷视频。

手机 = OpenClaw,APP = Skill。

就是这么简单。Skill 就是 OpenClaw 的"App",每一个 Skill 给 AI 加一个新能力。

没有 Skill有 Skill
“帮我处理这个 PDF” → 对不起,我不会 “帮我处理这个 PDF” → 拆分、合并、加水印,秒完成
“查一下今天天气” → 我没有天气数据源 “查一下今天天气” → 实时天气 + 穿衣建议
“把这个 Excel 整理一下” → 我没法操作文件 “把这个 Excel 整理一下” → 读数据、建图表、生成新表
“帮我发封邮件” → 我没有邮箱 “帮我发封邮件” → 收发邮件 + 附件 + 抄送

二、Skill 的三个核心能力

能力一:告诉 AI “什么时候该用我”

每个 Skill 都有一个 description(描述),就像 APP 的功能介绍。当你对 OpenClaw 说话时,它会扫描所有 Skill 的描述,找到最匹配的那个。

你:帮我合并这两个 PDF
OpenClaw:扫描 Skill 列表……找到了!pdf 技能匹配,加载中……

这个过程完全自动,你不需要手动选择。

类比:你跟手机说"我要打车",手机自动打开滴滴,而不是让你在 200 个 APP 里翻。


能力二:给 AI 一份"操作手册"

Skill 加载后,会给 AI 提供详细的操作指南——用哪个库、走什么流程、注意什么坑。就像新员工入职时的 SOP 文档。

比如 pdf 技能会告诉 AI:

1. 读取 PDF 用 pypdf
2. 合并 PDF 用 PdfMerger
3. 加水印用 page.merge_page()
4. 中文 PDF 可能乱码,需要用 pdfplumber 替代

AI 本身"知道"这些库的存在,但不一定知道最佳实践和避坑方法。Skill 就是把"踩过的坑"固化下来,让每次操作都走最优路径。


能力三:提供可复用的脚本和模板

有些操作太复杂,光靠"告诉 AI 怎么做"不够,还需要提供现成的代码。

比如 docx 技能自带了这些脚本:

docx/
├── SKILL.md ← 操作手册
├── scripts/
│ ├── accept_changes.py ← 接受 Word 修订
│ ├── comment.py ← 添加批注
│ └── office/ ← 底层工具库
│ ├── pack.py ← 打包 docx 文件
│ ├── unpack.py ← 解包 docx 文件
│ └── validate.py ← 校验 XML 结构

AI 不需要每次从零写代码,直接调用脚本,速度快、稳定性高。


三、Skill 的内部结构:一个 Skill 长什么样?

每个 Skill 就是一个文件夹,最核心的文件是 SKILL.md,再配上可选的脚本、参考资料和模板:

skill-name/
├── SKILL.md ← 【必须】技能的"灵魂"
│ ├── YAML 头部 ← name + description(触发条件)
│ └── Markdown 正文 ← 操作指南和流程说明
├── scripts/ ← 【可选】可执行脚本
│ └── xxx.py / xxx.sh
├── references/ ← 【可选】参考资料(按需加载)
│ └── api_docs.md
└── assets/ ← 【可选】输出资源(模板、图片等)
└── template.docx

三层加载机制(关键!)

Skill 不是一次性全塞进 AI 脑子的,而是分三层按需加载:

┌─────────────────────────────────────────┐
│ 第 1 层:元数据(永远在记忆中) │
│ 只有 name + description,约 100 字 │
│ 作用:判断"该不该触发这个 Skill" │
├─────────────────────────────────────────┤
│ 第 2 层:SKILL.md 正文(触发后加载) │
│ 操作手册、流程指南,< 5000 字 │
│ 作用:告诉 AI "具体怎么做" │
├─────────────────────────────────────────┤
│ 第 3 层:脚本和参考(按需读取) │
│ scripts/、references/、assets/ │
│ 作用:提供代码、文档、模板等具体资源 │
└─────────────────────────────────────────┘

为什么分三层? 因为 AI 的"工作记忆"(上下文窗口)是有限的。如果把所有 Skill 的所有内容全塞进去,AI 就没有空间思考了。分层加载,只在需要的时候加载需要的内容,既高效又省 Token。

类比:你不需要把整本《新华字典》背下来,只需要知道"遇到不认识的字去查字典"就够了。第一层就是"字典目录",第二层是"查到的那个字的解释",第三层是"例句和用法"。


四、SKILL.md 详解:一个 Skill 的灵魂

每个 Skill 都有且只有一个 SKILL.md,它决定了这个 Skill 的一切行为。让我们拆解一个真实的例子:

YAML 头部:告诉 AI “我是什么,什么时候找我”


name: pdf
description: Use this skill whenever the user wants to do anything with PDF files.
This includes reading or extracting text/tables from PDFs, combining or merging
multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks,
creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images,
and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file
or asks to produce one, use this skill.

这段话是给 AI 看的"招聘启事",AI 每次收到你的消息,都会扫一遍所有 Skill 的 description,看谁最匹配。

写好 description 的要点:

  • 说清楚"做什么"(处理 PDF)
  • 列举触发场景(合并、拆分、加水印……)
  • 明确边界(用户提到 .pdf 文件时触发)

Markdown 正文:手把手教 AI 怎么做

# PDF Processing Guide

## Quick Start

​```python
from pypdf import PdfReader, PdfWriter

# 读取 PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")
​```

## 合并 PDF

使用 PdfMerger:
​```python
from pypdf import PdfMerger
merger = PdfMerger()
merger.append("file1.pdf")
merger.append("file2.pdf")
merger.write("merged.pdf")
​```

## 常见问题

– 中文 PDF 乱码 → 改用 pdfplumber
– 加密 PDF → 先用 decrypt() 解密

正文里写的是 AI 需要"按图索骥"的操作步骤。核心原则:只写 AI 不知道的东西。 AI 本身就会写 Python,不需要你教语法;但 AI 不知道"中文 PDF 用 pypdf 会乱码,得用 pdfplumber"——这种实战经验才是 Skill 的价值。


五、scripts/、references/、assets/ 的区别

很多人搞不清这三个目录的用途,一张图说清楚:

┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ scripts/ │ │ references/ │ │ assets/ │
│ 可执行代码 │ │ 参考文档 │ │ 输出模板 │
├──────────────┤ ├──────────────┤ ├──────────────┤
│ AI 直接执行 │ │ AI 阅读理解 │ │ AI 复制使用 │
│ │ │ │ │ │
│ rotate_pdf.py│ │ api_docs.md │ │ template.docx│
│ merge.sh │ │ schema.md │ │ logo.png │
│ convert.py │ │ policy.md │ │ slides.pptx │
├──────────────┤ ├──────────────┤ ├──────────────┤
│ 像厨师的菜刀 │ │ 像厨师的食谱 │ │ 像厨师的模具 │
│ 拿来就用 │ │ 看了就会 │ │ 照着做就行 │
└──────────────┘ └──────────────┘ └──────────────┘

scripts/ —— 可执行脚本

什么时候用:某个操作每次都要写重复代码,或者步骤很脆弱容易出错。

例子:pdf 技能的 rotate_pdf.py,每次旋转 PDF 都走同一套逻辑,不需要 AI 每次重新写。

# scripts/rotate_pdf.py
from pypdf import PdfReader, PdfWriter
import sys

input_pdf = sys.argv[1]
output_pdf = sys.argv[2]
angle = int(sys.argv[3])

reader = PdfReader(input_pdf)
writer = PdfWriter()
for page in reader.pages:
page.rotate(angle)
writer.add_page(page)
writer.write(output_pdf)

AI 直接调用:python scripts/rotate_pdf.py input.pdf output.pdf 90

references/ —— 参考文档

什么时候用:有些信息 AI 需要知道,但不常用,不需要每次都加载。

例子:docx 技能有 FORMS.md(表单填充指南),只有用户要求填 PDF 表单时才需要看。

# references/FORMS.md

## PDF 表单字段类型
– 文本框 (Text) → fill()
– 复选框 (Checkbox) → check()
– 下拉框 (Dropdown) → select()
– 签名 (Signature) → 不支持自动填充

好处:SKILL.md 保持精简,只在需要时才加载详细文档,节省上下文空间。

assets/ —— 输出模板

什么时候用:Skill 需要基于模板生成文件。

例子:docx 技能有 letterhead.docx(公司信纸模板),AI 不需要从零创建,直接复制模板再修改内容就行。


六、实战案例:5 个热门 Skill 详解

案例 1:pdf —— PDF 全能选手

pdf/
├── SKILL.md ← 支持:读取、合并、拆分、旋转、水印、OCR、加密
├── scripts/
│ └── rotate_pdf.py ← 旋转脚本
└── references/
├── FORMS.md ← 表单填充详细指南
└── REFERENCE.md ← 完整 API 参考

使用场景:

  • “把这 3 个 PDF 合并成一个”
  • “给这个 PDF 加个’机密’水印”
  • “这个扫描件太糊了,帮我 OCR 一下”
  • “把这个 PDF 的第 5-10 页单独提取出来”

案例 2:xlsx —— Excel 处理专家

xlsx/
├── SKILL.md ← 支持:读写、公式、图表、格式化
├── scripts/
│ ├── recalc.py ← 公式重算
│ └── office/ ← 底层 XML 操作库
└── references/
└── CHARTS.md ← 图表类型参考

使用场景:

  • “把这个 CSV 转成漂亮的 Excel”
  • “帮我在这个表里加一列算同比增长”
  • “把这个数据画成折线图”

案例 3:docx —— Word 文档大师

docx/
├── SKILL.md ← 支持:创建、编辑、修订、批注、格式
├── scripts/
│ ├── accept_changes.py ← 接受所有修订
│ ├── comment.py ← 添加批注
│ └── office/ ← 打包/解包/校验工具
└── references/
├── DOCX-JS.md ← docx-js 库指南
├── REDLINING.md ← 修订标记详解
└── OOXML.md ← OOXML 格式参考

使用场景:

  • “帮我写一份项目周报,用公司模板”
  • “接受这个文档里的所有修订”
  • “在这个段落旁边加个批注”

案例 4:xbrowser —— 浏览器自动化

xbrowser/
├── SKILL.md ← 支持:打开网页、点击、填表、截图、爬取
└── scripts/
└── (CDP 协议控制)

使用场景:

  • “帮我在 CSDN 上发篇文章”
  • “截个图,看看这个网页长什么样”
  • “自动填一下这个表单”

⚠️ 浏览器类 Skill 需要本地有 Chrome/Edge,且比较吃资源(约 1.8GB),轻量用户可以先不装。


案例 5:weather —— 天气查询

weather/
├── SKILL.md ← 支持:当前天气、7 天预报
└── (无额外文件,纯 API 调用)

使用场景:

  • “今天深圳什么天气?”
  • “明天出门要带伞吗?”
  • “下周北京冷不冷?”

这是一个典型的"轻量 Skill"——没有脚本、没有参考文档,SKILL.md 里只有 API 调用方法,够用就行。


七、Skill 的三层加载:为什么这么设计?

你可能好奇,为什么不把所有内容全塞进 SKILL.md,而要搞 scripts/、references/、assets/ 三个目录?

原因只有一个:上下文窗口是有限的。

AI 的"工作记忆"就像一张桌子,桌面空间有限。如果桌上堆满了文件,AI 就没地方"思考"了。

上下文窗口 = 桌面空间

┌─────────────────────────────────────────────┐
│ │
│ [系统提示] [对话历史] [Skill 内容] │
│ ───────── ────────── ─────────── │
│ 必须占 必须占 占得越少越好! │
│ │
│ ← 留给 AI "思考"的空间 → │
│ │
└─────────────────────────────────────────────┘

所以 Skill 的设计哲学是:

层级加载时机占用空间类比
元数据 (name + description) 始终在 ~100 字 名片
SKILL.md 正文 触发时加载 < 5000 字 SOP 手册
scripts/references/assets 按需读取 无上限 工具箱

AI 不需要知道所有细节,它只需要知道"去哪里找"。


八、怎么安装 Skill?

方法一:SkillHub 一键安装(推荐)

你:帮我安装 weather 技能
OpenClaw:正在从 SkillHub 安装 weather……完成!

一行话搞定,SkillHub 会自动处理依赖和环境配置。

方法二:手动安装

如果你有别人分享的 .skill 文件(本质是 zip 包),直接放到 ~/.qclaw/skills/ 目录下解压即可。

方法三:自己写

后面会详细讲。

安装后去哪了?

~/.qclaw/skills/ ← 用户自己安装的 Skill(更新不丢失)
~/.openclaw/skills/ ← 同上(另一个可能的路径)

内置 Skill(应用自带,更新会覆盖):
D:\\application\\QClaw\\resources\\openclaw\\config\\skills\\

重要:自己创建的 Skill 一定要放在 ~/.qclaw/skills/,别放到内置目录,否则应用更新时会被覆盖丢失。


九、怎么写一个自己的 Skill?

写 Skill 不需要会编程!核心就是一个 Markdown 文件。让我们从零写一个"每日新闻摘要"技能。

第 1 步:确定 Skill 做什么

目标:每天早上自动抓取科技新闻,生成摘要推送给用户。

第 2 步:创建目录结构

daily-tech-news/
├── SKILL.md ← 必须有
└── references/ ← 可选
└── sources.md ← 新闻源列表

第 3 步:写 SKILL.md


name: dailytechnews
description: 每日科技新闻摘要。当用户要求查看今日科技新闻、
获取新闻摘要、或设置每日新闻推送时触发此技能。

# 每日科技新闻摘要

## 工作流程

1. 从配置的新闻源获取最新文章
2. 提取标题、摘要、链接
3. 按重要度排序
4. 生成 Markdown 格式摘要

## 新闻源

参见 [sources.md](references/sources.md)

## 输出格式

​```markdown
# 📰 今日科技新闻摘要 (YYYY-MM-DD)

## 🔥 头条
**标题**:摘要
[阅读全文](url)

## 📌 关注
**标题**:摘要
[阅读全文](url)

## 💡 趣闻
**标题**:摘要
[阅读全文](url)
​```

## 注意事项

每条新闻不超过 50 字摘要
总条数不超过 15 条
优先选择过去 24 小时内的新闻

第 4 步:写参考文档

# references/sources.md

## 新闻源列表

### 科技媒体
– 36氪:https://36kr.com
– 少数派:https://sspai.com
– InfoQ:https://www.infoq.cn

### 国际科技
– Hacker News:https://news.ycombinator.com
– TechCrunch:https://techcrunch.com
– The Verge:https://www.theverge.com

第 5 步:测试

你:帮我看看今天的科技新闻
OpenClaw:扫描到 daily-tech-news 技能……加载 SKILL.md……
正在从 36氪、少数派等源抓取新闻……
生成摘要完成!

就这样!一个 Skill 就写完了。不需要写一行代码,核心就是"告诉 AI 做什么、怎么做、去哪找资料"。


十、写好 Skill 的 5 个原则

原则一:只写 AI 不知道的东西

❌ "Python 是一种编程语言,用 def 定义函数……"
→ AI 知道这些,不需要你教

✅ "中文 PDF 用 pypdf 会乱码,改用 pdfplumber"
→ 这是实战经验,AI 不知道

原则二:description 要写清楚触发条件

❌ "处理文件" → 太模糊,AI 不知道什么时候该触发

✅ "当用户要求合并、拆分、旋转 PDF 文件,或提到 .pdf 文件时触发"
→ 精确、无歧义

原则三:正文保持精简(< 500 行)

SKILL.md 不是百科全书,是操作手册。详细内容放 references/,需要时再加载。

❌ SKILL.md 写了 2000 行,包含所有 API 细节
→ 每次触发都占大量上下文,AI 思考空间被压缩

✅ SKILL.md 200 行核心流程,详细 API 放 references/API.md
→ 触发时轻量加载,需要细节时按需读取

原则四:用脚本封装脆弱操作

❌ 每次让 AI 从零写 PDF 旋转代码
→ 容易出错,不同 AI 模型写法不同

✅ 提供 scripts/rotate_pdf.py
→ 确定性执行,稳定可靠

原则五:避免 Skill 之间描述重叠

❌ Skill A: "处理所有办公文档"
Skill B: "处理 Word 文档"
→ 重叠了,AI 不知道该用哪个

✅ Skill A: "处理 PDF 文件 (.pdf)"
Skill B: "处理 Word 文档 (.docx)"
→ 边界清晰,各司其职


十一、Skill vs 插件 vs MCP:别搞混了

对比项Skill插件 (Plugin)MCP
本质 Markdown 知识包 代码级功能扩展 外部工具协议
安装方式 放到目录 / SkillHub 安装 npm 包 配置 MCP Server
需要 不需要编程 需要 Node.js 需要 MCP Server
灵活性 高(纯文本,随意改) 中(受接口约束) 低(依赖外部服务)
适合 定义工作流、给 AI 加"知识" 加特定功能(如浏览器控制) 连接外部 API

简单记忆:

  • Skill = 培训手册(教 AI 怎么做)
  • Plugin = 工具箱(给 AI 新工具)
  • MCP = 外包服务(让 AI 调用外部系统)

十二、常见问题 FAQ

Q1:Skill 会占很多磁盘空间吗?

大多数 Skill 很小(几 KB 到几十 KB),主要就是 Markdown 文件。少数带脚本的会大一些(如 docx 技能约几 MB),但总体不大。浏览器类 Skill(如 xbrowser)因为包含 Chrome 缓存,可能到 1.8GB。

Q2:Skill 会影响 AI 的响应速度吗?

第一层(元数据)始终在上下文中,但每个只占约 100 字,几十个 Skill 加起来也就几千字,对速度影响可以忽略。只有触发的那个 Skill 会加载正文,所以响应速度基本不受影响。

Q3:可以同时触发多个 Skill 吗?

可以。比如你说"把这个 Excel 的数据整理一下,然后生成 PDF 报告",OpenClaw 会依次触发 xlsx 和 pdf 两个 Skill。

Q4:Skill 更新后会丢失我的自定义吗?

取决于你把 Skill 放在哪:

  • ~/.qclaw/skills/ → 应用更新不影响,你的自定义安全
  • 内置目录 → 应用更新会覆盖,自定义会丢失

Q5:Skill 可以分享给别人吗?

可以!用打包命令生成 .skill 文件(本质是 zip),别人解压到自己的 skills 目录就能用。

Q6:我完全不会编程,能写 Skill 吗?

能!Skill 的核心就是 Markdown 文本。你只需要:

  • 描述清楚"什么时候触发"
  • 写清楚"操作步骤"
  • (可选)提供参考资料
  • 不需要写一行代码。只有当你需要重复执行某个复杂操作时,才考虑加 scripts/。


    十三、Skill 的未来

    OpenClaw 的 Skill 生态正在快速生长。目前已有 50+ 内置 Skill 和社区贡献的技能包,覆盖:

    • 📄 文档处理(PDF、Word、Excel、PPT)
    • 🌐 网络操作(浏览器、搜索、爬虫)
    • 📧 通信(邮件、微信、Telegram)
    • 🛠️ 开发(GitHub、代码审查、CI/CD)
    • 🎨 创意(PPT 设计、前端生成)
    • 📊 数据(财务查询、新闻摘要)

    随着社区壮大,Skill 会越来越多、越来越专业。OpenClaw 的上限,取决于 Skill 生态的上限。


    写在最后

    Skill 是 OpenClaw 最核心的设计理念之一:让 AI 不只是"知道",而是"会做"。

    • 一个没有 Skill 的 OpenClaw,就像一台没装 APP 的手机——硬件很强大,但啥也干不了
    • 一个装满 Skill 的 OpenClaw,就像一台精心配置的手机——每个需求都有对应的工具

    而最棒的是,你不需要等别人开发,自己写一个 Skill 就像写一篇 Markdown 笔记一样简单。

    下一篇预告:《【记忆篇】OpenClaw 记忆系统详解:让 AI 真正"记住"你》

    👨‍💻 H先生出品 | 专注 AI 工具与效率提升

    赞(0)
    未经允许不得转载:171主机测评 » 【技能篇】OpenClaw Skill 详解:给 AI 装上“专业外挂“
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址