OpenClaw 的 Skills 怎么写?(2026年最新风格指南)OpenClaw(以前叫 Clawdbot / Moltbot)的 Skills 系统是目前本地运行的自主AI代理(Agent)生态里最活跃、最实用的扩展方式之一。写一个高质量的 Skill,大致可以分为这几种主流写法(从简单→进阶):

1. 最简单 / 最推荐的写法

在 ~/.openclaw/skills/ 目录下新建一个文件夹,例如:

~/.openclaw/skills/my-first-tool/

里面必须有(至少)这两个核心文件:

  • SKILL.md(最重要!这是给大模型的“说明书”)

  • tool.json 或 manifest.json(可选,但强烈推荐)

最经典的 SKILL.md 模板(复制粘贴改改就能用)
# 技能名称:网页实时截图 + OCR文字提取

## 描述(Description)
当用户需要查看任意网页当前真实样子、需要提取网页里的文字、验证码、价格、动态加载内容时调用我。

## 使用场景(When to use)
- 需要看到“登录后”才能看到的页面
- 动态JS渲染的内容(React/Vue/Angular)
- 验证码、图片文字、价格波动、库存数字
- 任何“让我看一眼网页”的需求
- 不信任搜索引擎截图的场景

## 参数(Parameters)
必须用 JSON Schema 格式:

```json
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "要访问的完整网址(必须带 https://)"
    },
    "wait": {
      "type": "integer",
      "description": "等待页面加载的额外秒数(建议0~15,默认3)",
      "default": 3
    },
    "full_page": {
      "type": "boolean",
      "description": "是否截取整页(很长页面建议false)",
      "default": false
    },
    "ocr": {
      "type": "boolean",
      "description": "是否同时对截图进行中文+英文OCR文字识别",
      "default": true
    }
  },
  "required": ["url"]
}

调用示例(Examples)

用户:淘宝上iPhone 16 Pro Max 1TB黑钛现在多少钱?
→ 调用 { "url": "https://item.taobao.com/item.htm?id=xxxxxxxx", "wait":5, "ocr":true }

返回格式(Expected Output)

  • 成功:返回图片(如果支持) + OCR提取的全部可读文字

  • 失败:返回错误原因 + 建议的重试方式

注意事项 / 边界(Constraints)

  • 不要访问违法/色情/赌博网站

  • 单次最多等待20秒

  • 如果页面需要登录,请直接告诉用户“需要登录才能看到”

把这个文件保存好后,重启 OpenClaw(或者点刷新技能列表),大模型立刻就能调用了。

2. 带实际执行代码的 Skill(进阶)

如果你希望这个 Skill 真的能做事,而不是只做 prompt 层面的伪工具,就需要再加一个执行文件。

目前最常见的几种实现方式(选一种就好):

方式 难度 实时性 推荐场景 文件示例
Python脚本 ★★☆ 最通用、生态最好 run.py
Node.js ★★☆ 需要调用大量现代API index.js
Shell脚本 ★☆☆ 简单系统操作、调用已有CLI工具 run.sh
Go/Rust二进制 ★★★ 极高 性能敏感、要打包发给别人 可执行文件
HTTP服务器 ★★★ 想做复杂交互、多步操作 一个FastAPI/Express服务

最简单示例(Python版):

在同一个文件夹里再放一个 run.py

# run.py
import sys
import json
from playwright.sync_api import sync_playwright

def main():
    input_data = json.load(sys.stdin)
    url = input_data["url"]
    wait = input_data.get("wait", 3)
    
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        page.goto(url, wait_until="networkidle", timeout=20000)
        page.wait_for_timeout(wait * 1000)
        
        screenshot = page.screenshot(full_page=input_data.get("full_page", False))
        # 这里可以再加OCR逻辑...
        
        print(json.dumps({
            "status": "success",
            "screenshot_base64": screenshot.hex(),  # 或保存到文件再返回路径
            "final_url": page.url
        }))
        browser.close()

if __name__ == "__main__":
    main()
````

然后在 SKILL.md 里补充一行:


```markdown
## 执行方式
用 Python 3.10+ 执行 run.py,输入为JSON(从stdin),输出为JSON(到stdout)

3. 快速上手建议路径(新手2026推荐路线)

  • 先只写 SKILL.md(纯描述型Skill),10分钟搞定一个

  • 熟练后加 tool.json(规范参数格式)

  • 再加 run.py / run.sh(真正执行)

  • 最后考虑加多步推理(plan-act-observe)的复杂Skill

4.常见高质量 Skill 参考方向(目前最火)

  • 网页实时截图 + OCR

  • 本地文件读写/搜索/总结

  • Git 操作代理(commit / pr / rebase)

  • 多模型仲裁(给Claude / Gemini / Qwen / DeepSeek同时问)

  • 日历/邮件/飞书/企业微信读写

  • 代码审查 + 自动修复链

  • 视频/播客下载 + 字幕生成 + 总结

一句话总结目前写 Skill 的核心心法:“把你希望AI能『一键完成』的那件事,写成一份清晰的说明书 + 可执行的工具”需要我帮你写某个具体方向的 Skill 完整模板吗?(例如:飞书读写、Git提交、淘宝比价、本地PDF智能问答……)直接说需求就好~