乐于分享
好东西不私藏

OpenClaw:手把手写个Skill——让龙虾帮你干活

OpenClaw:手把手写个Skill——让龙虾帮你干活
📢 导读 | 别人的Skill再好,也不如自己写的顺手。今天从0到1写一个真正能用的Skill,让AI学会你的独家绝活。

前言:Skill不是黑盒,是一本说明书

前面我们搞懂了OpenClaw怎么工作、怎么加载Skill。但你可能还是觉得“写Skill”是件很高级的事。

其实没那么玄乎。Skill就是一个Markdown文件——SKILL.md,里面用大白话写清楚“什么情况下用”和“具体怎么做”。AI读到它,就能照着执行。

这一篇,我们从零开始写一个实用Skill:自动抓取微信公众号文章正文。这个Skill我们前面的文章里提过,今天就把它落地成代码,让你亲身体验一遍从想法到可用的完整过程。

写完之后,你还可以把它分享给团队,甚至提交到ClawHub让全社区用。这就是Skill的价值:一次封装,无限复用。

01 Skill长什么样?

一个标准的Skill,核心就是一个SKILL.md文件,放在~/.openclaw/skills/你的Skill名/目录下。

它的结构很简单,分三块:

1.1 前置元数据(YAML格式)

---包裹,告诉系统这个Skill的基本信息:

---name: wechat-article-viewerdescription: 读取微信公众号文章正文,支持通过浏览器渲染绕过反爬version: 1.0.0author: 你的名字tags: [web, wechat, scraping]---
  • nameSkill唯一标识,建议小写+连字符

  • description:一句话描述,这会被加载到Skill索引里(第1层)

  • version:版本号,方便更新

  • author/tags:可选,方便分享

1.2 使用说明(给AI看的)

这部分用自然语言写清楚:什么场景下调用、怎么用

## 适用场景当用户提供微信公众号文章链接(mp.weixin.qq.com),并要求总结、提取关键信息或全文时,使用此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会逐条执行,所以每一步都要是可执行的。

1.3 注意事项(给AI和用户的)

## 注意事项- 需要用户预先在浏览器中登录微信网页版,否则可能无法访问文章- 如果浏览器未开启调试端口,Skill会自动给出启动命令- 文章正文可能包含大量HTML标签,返回前建议做简单清洗

这部分不是必须,但能帮AI避免常见坑。

02 实战:微信文章读取器

我们以解决“微信文章抓不到正文”这个真实痛点为例,写一个完整的Skill。

2.1 创建目录和文件

mkdir -p ~/.openclaw/skills/wechat-article-viewercd ~/.openclaw/skills/wechat-article-viewertouch SKILL.md

2.2 编写SKILL.md

用你喜欢的编辑器打开SKILL.md,填入以下内容:

---name: wechat-article-viewerdescription: 读取微信公众号文章正文,通过浏览器渲染绕过反爬,支持提取标题、作者和正文内容version: 1.0.0author: 你的名字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执行后返回文章标题和正文摘要。

2.3 测试Skill

保存文件后,不需要重启OpenClaw。由于OpenClaw有文件监听机制,Skill会自动生效。

在Web控制台输入一条指令测试:

帮我抓取这篇文章:https://mp.weixin.qq.com/s/xxxx

观察AI的反应。如果一切正常,它会:

  1. 检查浏览器连接

  2. 打开链接

  3. 提取内容

  4. 返回结果

2.4 调试技巧

如果没成功,排查三步:

  • 看日志tail -f ~/.openclaw/logs/skill.log

  • 手动执行命令:先在终端里跑openclaw browser list,确认浏览器可连接

  • 简化步骤:把Skill里写的一大段先删掉,只留第一步,看AI能不能识别

03 进阶:给Skill加“智能”

上面的Skill完全靠AI执行固定命令。如果你想让它更智能,可以加入条件判断动态决策

比如,用户可能丢过来一个链接,但没说“我要全文”。AI需要自己判断:是不是微信文章?是,就调用这个Skill;不是,用普通web_fetch

这可以通过在SKILL.md里写“决策逻辑”来实现:

## 决策逻辑当用户提供URL时:- 如果URL包含 `mp.weixin.qq.com` → 调用此Skill- 否则 → 使用内置的 `web_fetch` 工具

AI会把这个逻辑融入自己的推理链。

更高级的玩法是:在Skill里调用其他Skill。比如读完微信文章后,自动调用“总结Skill”生成摘要。这就实现了Skill组合,形成工作流。

3.1 安装与分享

写好的Skill,你可以直接放在~/.openclaw/skills/目录,全局生效。

如果想分享给别人:

  1. wechat-article-viewer文件夹打包

  2. 对方解压到自己的~/.openclaw/skills/即可

如果想提交到ClawHub社区:

  1. 确保Skill有完整的README和LICENSE

  2. 在GitHub上创建一个仓库,按ClawHub的规范提交

  3. 通过clawhub publish发布

3.2 安全提示

即使是自己写的Skill,也可能引入风险:

  • 如果用openclaw shell执行系统命令,确保命令是安全的

  • 如果Skill会操作敏感文件或API,用.env管理密钥,不要硬编码

  • 测试时先用“干跑”模式(不实际执行),确认没问题再启用

OpenClaw的权限系统可以限制每个Skill的能力:在Web控制台的“Skill管理”页面,关掉“允许执行Shell”等高风险权限。

最后:从使用者变成贡献者

刚刚我们从零写了一个能解决真实问题的Skill。这意味着已经从OpenClaw的“使用者”变成了“贡献者”。

以后遇到任何重复性的工作——整理日报、监控数据、处理邮件——都可以用同样的方法,把它封装成一个Skill,让AI帮你自动完成。

Skill的价值不是“写起来多简单”,而是一次编写,无限复用。你今天花半小时写的Skill,明天可能帮团队省下几十个小时。

这就是工程化的力量。

~~如果觉得有帮助,欢迎关注点赞~~