手把手教你给 OpenCLAW 添加自定义 Skill

3 阅读3分钟

手把手教你给 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,内容如下:

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 如下(可直接使用):

# Hello World Skill

## 描述
这是一个最简化的自定义技能示例,用于验证技能注册与调用机制是否正常工作。  
当被调用时,该技能将返回一条固定的欢迎消息。

## 功能
- 返回字符串:`"hello world! - from customized skill"`
- 无输入参数
- 无副作用(不修改状态、不调用外部 API)

## 使用场景
- 调试技能加载流程
- 验证自定义技能注册是否成功
- 作为新技能开发的模板

## 调用方式,可以自己加一些自定义的提示词
在智能体提示(prompt)中直接请求执行此技能,例如:
> "请运行 hello world 技能"
> "我想试下自定义skill" 

或通过技能名称显式调用(取决于框架支持):
```json
{
  "skill": "hello_world_skill"
}

依赖

  • 无外部依赖
  • 无需网络访问
  • 纯 Python 实现

💡 小技巧:把 SKILL.mdhello_world_skill.py 放在同一个目录下(比如 skills/),OpenCLAW 会自动加载。


🚀 部署 & 测试

  1. 将两个文件放入 OpenCLAW 的 /Users/你的mac用户名/.openclaw/workspace/skills/hello_world 目录下(具体路径看你的配置)

  2. 重启 Gateway 服务:

    openclaw gateway restart
    
  3. 打开 OpenCLAW Dashboard(命令直接敲: openclaw dashboard)

  4. 在聊天框输入:

    hello world
    

✅ 如果一切正常,你会看到回复:

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 是连接自然语言和代码的桥梁!


🛠 后续可以怎么玩?

  • 那就取决于你的想象力了,代码能干的事情可太多了

✅ 总结

步骤文件作用
1hello_world_skill.py实现业务逻辑
2SKILL.md告诉模型“什么情况下调用我”
3openclaw gateway restart重新加载技能
4输入 hello world触发自定义 Skill

整个过程不到 5 分钟,却让你真正掌握了 OpenCLAW 的扩展能力。