【AI】手写openclaw的Skill全过程

前言

之前搞懂了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,有的会在你不知道的情况下往外部发请求。

  1. 装别人的 Skill 前一定要看源码,特别是 scripts 目录
  2. 检查 tools 声明------如果一个「翻译 Skill」要求 bash 和 network 权限,那就很可疑
  3. 优先用有 ✅ 标记的官方审核 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
相关推荐
黑客说1 天前
AI驱动剧情,解锁无限可能——AI游戏发展解析
人工智能·游戏
踩着两条虫1 天前
AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库
android·前端·vue.js·人工智能·低代码·系统架构·rxjava
小仙女的小稀罕1 天前
听不清重要会议录音急疯?这款常见AI工具听脑AI精准转译
开发语言·人工智能·python
reesn1 天前
qwen3.5 0.8B纠正任务实践
人工智能·语言模型
实在智能RPA1 天前
实在Agent 制造业落地案例:探寻工业大模型从实验室走向车间的实战路径
人工智能·ai
阿酷tony1 天前
Nano Banna 提示词:创意超逼真的3D商业风格产品图
人工智能·3d·gemini·图片生成
披着羊皮不是狼1 天前
MSE、MAE、Binary/Categorical Cross-Entropy、HingeLoss五种损失函数的典型应用场景
人工智能·损失函数
guslegend1 天前
大模型RAG进阶多格式文档解析
人工智能·大模型
独角鲸网络安全实验室1 天前
惊魂零点击!OpenClaw漏洞(ClawJacked)突袭,开发者AI Agent遭无声劫持
人工智能·网络安全·数据安全·漏洞·openclaw·clawjacked·cve-2026-25253
嘎嘎嘎嘎降1 天前
保姆级教程:25个降AI提示词大全,手把手教你去AI味
人工智能·去ai味提示词大全·降ai提示词·降ai指令·deepseek降ai