手把手教你给 OpenCLAW 添加自定义 Skill:从"Hello World"开始
一句话总结:用 5 分钟写一个自定义技能,让 OpenCLAW 真正听懂你的话!
最近 OpenCLAW(或类似智能体框架)在开发者圈子里特别火,我也忍不住在自己的 Mac Mini 上搭了一套玩玩。之前一直用 qwen-max 模型,结果没注意------欠费了! 😅
赶紧切到免费的 qwen-max-min(官方叫 qwen-max-latest 的免费版),继续折腾。
OpenCLAW 内置了很多现成的 Skill(技能),比如查天气、搜网页、执行 Shell 命令等。但我想试试自己写一个 Skill,看看能不能让智能体调用我写的逻辑。
于是,就有了这个极简但完整的「Hello World」自定义 Skill 实践。
🎯 目标效果
- 用户在 OpenCLAW Dashboard 输入:
hello world - 智能体不走大模型生成,而是直接调用我的 Python 函数
- 返回固定字符串:
hello world! - from customized skill
这能验证:自定义 Skill 确实被注册并成功触发了!
🔧 实现步骤(仅需两步)
第一步:编写 Skill 脚本
创建一个 Python 文件,比如 hello_world_skill.py,内容如下:
python
def hello_world_skill():
return f'hello world! - from customized skill'
第二步:编写 SKILL.md 描述文件
Skill 光有代码还不够,还需要一个 SKILL.md 文件来告诉 OpenCLAW:
- 这个 Skill 是干嘛的?
- 哪些用户提问会触发它?
你可以手动写,也可以让大模型帮你生成(比如用 Qwen、通义千问)。我用的提示词是:
我想实际试下 openclaw 中的自定义 skill,我的 skill 脚本如下
def hello_world_skill(): return f'hello world! - from customized skill'请帮我生成对应的 SKILL.md 文档
生成的 SKILL.md 如下(可直接使用):
markdown
# Hello World Skill
## 描述
这是一个最简化的自定义技能示例,用于验证技能注册与调用机制是否正常工作。
当被调用时,该技能将返回一条固定的欢迎消息。
## 功能
- 返回字符串:`"hello world! - from customized skill"`
- 无输入参数
- 无副作用(不修改状态、不调用外部 API)
## 使用场景
- 调试技能加载流程
- 验证自定义技能注册是否成功
- 作为新技能开发的模板
## 调用方式,可以自己加一些自定义的提示词
在智能体提示(prompt)中直接请求执行此技能,例如:
> "请运行 hello world 技能"
> "我想试下自定义skill"
或通过技能名称显式调用(取决于框架支持):
```json
{
"skill": "hello_world_skill"
}
依赖
- 无外部依赖
- 无需网络访问
- 纯 Python 实现
💡 小技巧 :把
SKILL.md和hello_world_skill.py放在同一个目录下(比如skills/),OpenCLAW 会自动加载。
🚀 部署 & 测试
-
将两个文件放入 OpenCLAW 的
/Users/你的mac用户名/.openclaw/workspace/skills/hello_world目录下(具体路径看你的配置) -
重启 Gateway 服务:
bashopenclaw gateway restart -
打开 OpenCLAW Dashboard(命令直接敲: openclaw dashboard)
-
在聊天框输入:
hello world
✅ 如果一切正常,你会看到回复:
csharp
hello world! - from customized skill

而不是大模型胡编乱造的"Hello! How can I help you?" ------ 这说明你的自定义 Skill 成功接管了请求!
🤔 为什么需要 SKILL.md?
你可能会问:光有 Python 函数不行吗?
答案是:不行!
因为 OpenCLAW 的 Planner(规划器)需要根据 SKILL.md 中的"描述"和"触发关键词"来决定是否调用你的 Skill。
比如你在 SKILL.md 的"调用方式"里写了:
"请运行 hello world 技能"
那么当你输入 hello world 时,Planner 就会认为:"哦,用户想用 hello world 技能",于是跳过大模型,直接执行你的函数。
所以,SKILL.md 是连接自然语言和代码的桥梁!
🛠 后续可以怎么玩?
- 那就取决于你的想象力了,代码能干的事情可太多了
✅ 总结
| 步骤 | 文件 | 作用 |
|---|---|---|
| 1 | hello_world_skill.py |
实现业务逻辑 |
| 2 | SKILL.md |
告诉模型"什么情况下调用我" |
| 3 | openclaw gateway restart |
重新加载技能 |
| 4 | 输入 hello world |
触发自定义 Skill |
整个过程不到 5 分钟,却让你真正掌握了 OpenCLAW 的扩展能力。