前言
之前搞懂了OpenClaw怎么工作、怎么加载Skill。
在 OpenClaw 中,Skill 就是 AI 智能体(Agent)的 App,它们可以赋予智能体特定能力的扩展。通过安装不同的 Skill,OpenClaw 可以突破大语言模型单纯「聊天和生成文本」的限制,获得执行具体任务的权限和路径。总的来说,Skill让OpenClaw从"能听懂"升级为"能做事"。
然后,"写Skill"似乎是件很高级的事。
什么是skill
Skill在OpenClaw中被定义为「可复用、可调用的最小自动化功能模块」,本质是一段封装好的代码或结构化指令集,遵循OpenClaw规范,实现单一、明确的具体任务。它类似于AI代理的"工具"、"能力插件"或"工作的标准流程",让OpenClaw从单纯对话升级为能实际"干活"的系统。
作用
扩展能力边界:通过安装不同Skill,OpenClaw可以突破大语言模型仅生成文本的限制,获得执行具体任务(如操作Excel、发送邮件、调用API)的权限。
构建应用生态:OpenClaw就像操作系统,Skill就像应用,用户可根据工作流的需要灵活组合。
促进生态发展 :Skill的开放与共享(如clawHub)推动了OpenClaw生态的发展。
实际上,Skill就是一个Markdown文件------SKILL.md,里面写清楚"什么情况下用"和"具体怎么做"。OpenClaw读到它,就能照着执行。
结构
一个 Skill 其实就是一个文件夹,核心只需要一个文件SKILL.md:
my-skill
├── SKILL.md # 必须有:核心指令文件,也是唯一必须有的
├── scripts/ # 可选:放脚本代码,比如数据校验、格式转换
│ └── analyze.py
├── references/ # 可选:放参考文档,比如品牌手册、行业规范
│ └── style-guide.md
└── assets / # 可选:放模板和素材,比如报告模板、logo
最简单的Skill只需要一个SKILL.md就能跑,其他几个文件夹按需添加。
SKILL.md
SKILL.md 才是真正的「代码」。OpenClaw 读这个文件来理解 Skill 该干什么,说白了就是一份结构化的 prompt。
放在~/.openclaw/skills/你的Skill名/目录下。
结构很简单,由3部分组成:
前置元数据
这个Skill的基本信息,开始和结束各有一个---。
---
name: my-skill
description: 描述 - 写清做什么
version: 1.0.0
author: 你的名字
tags: [web, review]
triggers:
- "触发词"
- "代码审查"
- "帮我看看这段代码"
tools:
- bash
- read
- write
---
-
name:Skill唯一标识,建议小写+连字符 -
description:一句话描述,这会被加载到Skill索引里(第1层) -
triggers:触发词
-
version:版本号,方便更新 -
author/tags:可选,方便分享
使用说明
用自然语言写清楚:什么场景下调用、怎么用。
比如:
## 适用场景
当用户提供微信公众号文章链接,并要求总结、提取关键信息或全文时,使用此Skill。
## 使用方法
1. 首先通过 `openclaw browser list` 检查是否有已连接的浏览器实例
2. 如果没有,提示用户启动Chrome并打开调试端口:`/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222`
3. 使用 `openclaw browser navigate` 打开文章链接,等待页面完全加载(约3秒)
4. 执行 `openclaw browser snapshot` 获取页面HTML结构
5. 从HTML中提取 `.rich_media_content` 内的正文内容,以及 `#activity-name` 中的标题
6. 将正文和标题返回给用户
关键是步骤要清晰、命令要准确。AI会逐条执行,所以每一步都要是可执行的。
注意事项
## 注意事项
- 需要用户预先在浏览器中登录微信网页版,否则可能无法访问文章
- 如果浏览器未开启调试端口,Skill会自动给出启动命令
- 文章正文可能包含大量HTML标签,返回前建议做简单清洗
这部分不是必须,但能帮AI避免常见坑。
实战
创建目录和文件
mkdir -p ~/.openclaw/skills/my-skill-test
cd ~/.openclaw/skills/my-skill-test
touch SKILL.md
编写SKILL.md
---
name: wechat-article-viewer
description: 读取微信公众号文章正文,通过浏览器渲染绕过反爬,支持提取标题、作者和正文内容version: 1.0.0
author: 你的名字
tags: [wechat, scraping, browser]
---
## 适用场景
- 用户提供 mp.weixin.qq.com 链接
- 要求总结、提取信息、翻译或分析文章内容
## 前置条件
需要一个已打开调试端口的 Chrome 浏览器,并登录了微信网页版。
如果尚未准备,按以下方式启动:
- Mac: `/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222`
- Windows: `"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222`
- Linux: `google-chrome --remote-debugging-port=9222`
## 执行步骤
1. **检查浏览器连接**
- 运行 `openclaw browser list`
- 如果返回空,提示用户启动带调试端口的浏览器,并重试
2. **打开文章链接**
- 使用 `openclaw browser navigate --url {用户提供的链接}`
- 等待 3 秒让页面完全渲染
3. **获取页面内容**
- 执行 `openclaw browser snapshot`
- 返回的是页面的 DOM 结构
4. **提取关键信息**
- 标题:选择器 `#activity-name` 的文本
- 作者:选择器 `#js_name` 的文本(可选)
- 正文:选择器 `.rich_media_content` 的 HTML 内容
- 将正文中的 `<p>`、`<section>` 等标签转换为纯文本,保留段落结构
5. **返回结果**
- 格式: 标题:{title} 作者:{author} 正文:{content}
## 错误处理
- 如果浏览器未连接 → 给出启动命令并终止
- 如果页面加载超时 → 提示用户网络问题,建议重试
- 如果选择器找不到内容 → 返回原始 snapshot 的前500字符,供用户判断
## 示例
用户输入:`帮我总结这篇文章:https://mp.weixin.qq.com/s/xxxx`Skill执行后返回文章标题和正文摘要。
## 决策逻辑
当用户提供URL时:- 如果URL包含 `mp.weixin.qq.com` → 调用此Skill- 否则 → 使用内置的 `web_fetch` 工具
测试
保存文件后,不需要重启OpenClaw。由于OpenClaw有文件监听机制,Skill会自动生效。
在Web控制台输入指令:帮我抓取这篇文章:网址
观察AI的反应,正常情况下:检查浏览器连接情况→在浏览器打开链接→抓取内容→返回结果
问题排查
看日志 :tail -f ~/.openclaw/logs/skill.log
手动执行命令 :先在终端里跑openclaw browser list,确认浏览器可连接
简化步骤:把Skill里写的一大段先删掉,只留第一步,看AI能不能识别
进阶
让 Skill 支持配置
如果你想让用户自定义参数,可以在 SKILL.md 里加配置声明:
---
name: smart-test
config:
severity_threshold:
type: string
default: "warning"
description: "级别: info, warning, error"
max_issues:
type: number
default: 20
description: "最多检索的问题数"
---
通过 openclaw.json 自定义:
{
"skills": {
"smart-reviewer": {
"enabled": true,
"config": {
"severity_threshold": "error",
"max_issues": 10
}
}
}
}
更高级的玩法是:在Skill里调用其他Skill。比如读完微信文章后,自动调用"总结Skill"生成摘要。这就实现了Skill组合,形成工作流。
其他
恶意 Skill问题
近期在 ClawHub 上发现了 800 多个恶意 Skill ,有的会窃取 .env 里的 API key,有的会在你不知道的情况下往外部发请求。
- 装别人的 Skill 前一定要看源码,特别是 scripts 目录
- 检查 tools 声明------如果一个「翻译 Skill」要求 bash 和 network 权限,那就很可疑
- 优先用有 ✅ 标记的官方审核 Skill
总之
自己写 OpenClaw Skill 远没有想象中那么难,核心就是一个 SKILL.md 文件 + 可选的脚本。
与其在 ClawHub 上大海捞针找别人的 Skill,不如花 30 分钟针对自己的需求写一个。毕竟最懂你工作流的人是你自己。
最后
Skill的价值不是"写起来多简单",而是一次编写,无限复用。发布到clawhub,从skills的使用者变成贡献者
bash 体验AI代码助手 代码解读复制代码# 1. fork ClawHub 仓库
git clone https://github.com/openclaw/clawhub.git
cd clawhub
# 2. 把你的 Skill 放进去
cp -r ~/my-smart-reviewer skills/smart-skill
# 3. 提 PR
git checkout -b add-smart-test
git add .
git commit -m "feat: add my-skill"
git push origin add-smart-skill