市面上的技能不够贴合你的工作流;
你想把自己常用的脚本打造成“一键命令”;
你有个好点子,想变成别人也能用的 OpenClaw 技能……
今天我们就从零开始,手把手教你如何开发一个属于自己的 OpenClaw 技能——哪怕你以前从未写过代码。
一、为什么要开发自定义技能?
自定义技能能让你:
✅ 将复杂的操作序列封装成一句话(比如 openclaw 我的工作流)✅ 将团队内部的工具、流程标准化 ✅ 把你的经验变成可复用的知识,甚至分享给别人 ✅ 学习过程中深度理解 OpenClaw 的工作机制
二、技能的基本结构是什么?
一个标准的 OpenClaw 技能看起来像这样:
my-awesome-skill/
├── SKILL.md // 技能元数据(必需)
├── scripts/
│ └── hello.sh // 你的核心逻辑(可选)
├── references/ // 参考文档、示例(可选)
└── resources/ // 静态资源(图片、模板等,可选)
这个技能叫什么 什么时候应该被触发(触发词) 它能做什么(描述) 需要什么依赖或配置
三、第一步:使用 clawhub 创建技能模板
在终端中运行:
SKILL.md(填好了基本格式) scripts/ 空文件夹 references/ 空文件夹 resources/ 空文件夹
四、第二步:编写 SKILL.md(元数据与触发词)
markdown
SKILL.md - 我的第一个技能
名称
描述
触发词
版本
作者
依赖
配置说明
五、第三步:实现核心功能(脚本或命令)
示例:弹出欢迎消息(跨平台)
hello.sh:
#!/bin/bash
hello.bat:
bat
第六步:测试技能(本地安装并使用)
完成上面的步骤后,就可以测试了!
在技能根目录(包含 SKILL.md 的那层)运行:
这会把当前目录的技能安装到你的 OpenClaw 中。
安装成功后,直接对 AI 说:
你应该会看到:
如果没反应,检查:
SKILL.md 中的触发词是否匹配 脚本是否有执行权限(Linux/macOS: chmod +x scripts/hello.sh)是否真的安装成功( clawhub list能看到你的技能名)
第七步:发布到 ClawHub(可选)
发布步骤:
注册并登录 ClawHub 账号 在技能根目录运行:`clawhub login`(按提示操作) 运行:`clawhub publish` 按提示填写版本说明等信息 等待审核通过后,就能被全球用户搜索到!
注意事项:开发技能的三个红线
1️⃣ 权限最小化原则
技能只申请它真正需要的权限。例如:
只读取本地文件?不需要网络权限 只调用本地命令?不需要访问剪贴板 过度申请权限会让用户产生疑虑,影响采纳率
2️⃣ 依赖要明确
如果你的技能需要:
特定的 Node.js 版本 → 写在 SKILL.md 的「依赖」中 需要联网的 API → 明确说明用途和数据流向 需要第三方工具(如 ffmpeg)→ 提供安装指南或降级方案
3️⃣ 错误处理要友好
用户不关心你的脚本为什么崩溃,他们只知道“技能没用”。建议:
在脚本中加入 try-catch 或错误判断 当出问题时,给出明确的提示(比如“请检查网络连接”或“需要安装 XXX 工具”) 避免静默失败
案例:开发一个“天气提醒”技能
让我们来看一个稍微实用一点的例子:一个能查询城市天气并给出穿衣建议的技能。
核心思路:
用户说:“北京天气” 技能调用百度天气 API(或你配置好的 weather 技能) 根据温度和降水给出建议(“今天15℃,有小雨,记得带伞”) 返回自然语言回答
实现要点:
在 SKILL.md 中添加触发词: 天气查询、weather、城市天气脚本中读取用户输入的城市名(比如“北京”) 调用已有的 weather技能能力(通过内部接口或重用逻辑)根据返回结果生成建议
总结:从使用者到创造者的跨越
今天我们走完了一个技能的完整生命周期:
你不需要是资深程序员,只需要:
知道自己想解决什么问题 愿意花 20 分钟按照上面的步骤走一遍 遇到错误时不放弃,仔细看提示信息
OpenClaw 生态的成长,靠的正是像你这样愿意动手做贡献的人。
觉得有用?关注公众号「私享斋」,更多实操文章持续更新。
夜雨聆风