乐于分享
好东西不私藏

OpenClaw 进阶技巧:自定义技能开发入门

OpenClaw 进阶技巧:自定义技能开发入门
你有没有遇到过这样的情况:

市面上的技能不够贴合你的工作流;

你想把自己常用的脚本打造成“一键命令”;

你有个好点子,想变成别人也能用的 OpenClaw 技能……

别担心!OpenClaw 并不是封闭的工具箱,它欢迎你自己动手扩展功能。

今天我们就从零开始,手把手教你如何开发一个属于自己的 OpenClaw 技能——哪怕你以前从未写过代码。

一、为什么要开发自定义技能?

OpenClaw 的强大之处在于它的可扩展性。内置技能覆盖了日常需求,但真正贴合你个人习惯的,往往只有你自己知道。

自定义技能能让你:

  • ✅ 将复杂的操作序列封装成一句话(比如 openclaw 我的工作流
  • ✅ 将团队内部的工具、流程标准化
  • ✅ 把你的经验变成可复用的知识,甚至分享给别人
  • ✅ 学习过程中深度理解 OpenClaw 的工作机制

二、技能的基本结构是什么?

一个标准的 OpenClaw 技能看起来像这样:

my-awesome-skill/

├── SKILL.md           // 技能元数据(必需)

├── scripts/

│   └── hello.sh       // 你的核心逻辑(可选)

├── references/        // 参考文档、示例(可选)

└── resources/         // 静态资源(图片、模板等,可选)

SKILL.md 是灵魂,它告诉 OpenClaw:
  • 这个技能叫什么
  • 什么时候应该被触发(触发词)
  • 它能做什么(描述)
  • 需要什么依赖或配置

三、第一步:使用 clawhub 创建技能模板

OpenClaw 自带的`clawhub`CLI 能帮你快速生成技能框架,省去手动创建文件夹的麻烦。

在终端中运行:

clawhub init我的第一个技能
这会在当前目录创建一个叫`我的第一个技能`的文件夹,内部已经包含:
  • SKILL.md(填好了基本格式)
  • scripts/ 空文件夹
  • references/ 空文件夹
  • resources/ 空文件夹

四、第二步:编写 SKILL.md(元数据与触发词)

打开刚生成的`SKILL.md`,填写关键信息:

markdown

SKILL.md - 我的第一个技能

名称

我的第一个技能

描述

一个用于演示如何开发自定义技能的示例。它会弹出一个欢迎消息。

触发词

hello skill
你好技能
技能测试

版本

1.0.0

作者

你的名字或昵称

依赖

-无特殊依赖(纯脚本)

配置说明

无需额外配置,直接安装即用。
>💡触发词技巧:
>-用户说“hello skill”、“你好技能”、“技能测试”任意一句,都能激活这个技能
>-建议包含中英文别名,提高容错率
>-避免过于常见的词(如“hello”单独使用可能被误触)

五、第三步:实现核心功能(脚本或命令)

技能的实际工作可以通过脚本完成。我们在`scripts/`目录下创建一个简单的脚本。

示例:弹出欢迎消息(跨平台)

创建文件`scripts/hello.sh`(Linux/macOS)或`scripts/hello.bat`(Windows),内容如下:

hello.sh:

#!/bin/bash

echo"🎉 欢迎使用你的第一个 OpenClaw 技能!"
echo"这是一个由你自己开发的功能。"

hello.bat:

bat

@echooff
echo🎉 欢迎使用你的第一个 OpenClaw 技能!
echo这是一个由你自己开发的功能。
>⚠️ 注意:为了让脚本在不同系统上运行,你可能需要:
>-在 skill 中检测当前操作系统
>-或提供两个版本,让用户根据系统选择
>-更专业的做法是用 Node.js 或 Python 写跨平台脚本

第六步:测试技能(本地安装并使用)

完成上面的步骤后,就可以测试了!

在技能根目录(包含 SKILL.md 的那层)运行:

clawhub install

这会把当前目录的技能安装到你的 OpenClaw 中。

安装成功后,直接对 AI 说:

>“hello skill”

你应该会看到:

>🎉 欢迎使用你的第一个 OpenClaw 技能!
>这是一个由你自己开发的功能。

如果没反应,检查:

  • SKILL.md 中的触发词是否匹配
  • 脚本是否有执行权限(Linux/macOS:chmod +x scripts/hello.sh
  • 是否真的安装成功(clawhub list 能看到你的技能名)

第七步:发布到 ClawHub(可选)

如果你觉得这个技能不错,想分享给别人,可以发布到 [ClawHub](https://clawhub.ai)。

发布步骤:

  1. 注册并登录 ClawHub 账号
  2. 在技能根目录运行:`clawhub login`(按提示操作)
  3. 运行:`clawhub publish`
  4. 按提示填写版本说明等信息
  5. 等待审核通过后,就能被全球用户搜索到!
>🌟 小贴士:首次发布建议从小功能开始,先验证流程,再逐步迭代。

注意事项:开发技能的三个红线

1️⃣ 权限最小化原则

技能只申请它真正需要的权限。例如:

  • 只读取本地文件?不需要网络权限
  • 只调用本地命令?不需要访问剪贴板
  • 过度申请权限会让用户产生疑虑,影响采纳率

2️⃣ 依赖要明确

如果你的技能需要:

  • 特定的 Node.js 版本 → 写在 SKILL.md 的「依赖」中
  • 需要联网的 API → 明确说明用途和数据流向
  • 需要第三方工具(如 ffmpeg)→ 提供安装指南或降级方案

3️⃣ 错误处理要友好

用户不关心你的脚本为什么崩溃,他们只知道“技能没用”。建议:

  • 在脚本中加入 try-catch 或错误判断
  • 当出问题时,给出明确的提示(比如“请检查网络连接”或“需要安装 XXX 工具”)
  • 避免静默失败

案例:开发一个“天气提醒”技能

让我们来看一个稍微实用一点的例子:一个能查询城市天气并给出穿衣建议的技能。

核心思路:

  1. 用户说:“北京天气”
  2. 技能调用百度天气 API(或你配置好的 weather 技能)
  3. 根据温度和降水给出建议(“今天15℃,有小雨,记得带伞”)
  4. 返回自然语言回答

实现要点:

  • 在 SKILL.md 中添加触发词:天气查询weather城市天气
  • 脚本中读取用户输入的城市名(比如“北京”)
  • 调用已有的 weather 技能能力(通过内部接口或重用逻辑)
  • 根据返回结果生成建议
>💡 其实你不必重复造轮子:很多时候,“自定义技能”就是把已有技能组合起来,加上你个人的逻辑包装。比如“早间简报”技能本质就是天气+搜索+日程的定时组合。

总结:从使用者到创造者的跨越

今天我们走完了一个技能的完整生命周期:

从构思→建立框架→编写逻辑→测试验证→ (可选)发布分享

你不需要是资深程序员,只需要:

  • 知道自己想解决什么问题
  • 愿意花 20 分钟按照上面的步骤走一遍
  • 遇到错误时不放弃,仔细看提示信息

OpenClaw 生态的成长,靠的正是像你这样愿意动手做贡献的人。

下期预告:《本地知识库高级玩法:结合 Ontology 构建关系图谱》

觉得有用?关注公众号「私享斋」,更多实操文章持续更新。