OpenClaw技能开发实战:手把手教你打造AI外挂模块

OpenClaw技能开发实战:手把手教你打造AI外挂模块

用最直白的语言,讲透OpenClaw技能怎么玩

一、技能到底是什么?为啥要学这个?

一句话解释:技能就是教AI干活的“说明书”。

想象一下:你请了个超聪明的助理(就是OpenClaw里的AI),但这个助理一开始只会聊天,不会查天气、不会发邮件、不会管GitHub。怎么办?你得“教”它。

怎么教?写个技能(Skill)

每个技能都告诉AI:

  1. 啥时候用(比如用户问天气时)
  2. 怎么干(比如用curl查wttr.in)
  3. 需要啥工具(比如电脑上得有curl)

说白了,技能就是AI的外挂。你装一个,AI就多会一件事。

二、技能长啥样?拆开看看

一个技能就是一个文件夹,里面最核心的是SKILL.md文件。

1
2
3
4
weather-checker/          ← 技能文件夹(名字随便起)
├── SKILL.md ← 核心!教AI的说明书
└── scripts/ ← 可选,放辅助脚本
└── get_weather.sh

SKILL.md的“配方”

这个文件分两部分:

第一部分:基本信息(YAML格式)

1
2
3
4
5
6
7
8
9
10
11
12
---
name: weather-checker # 技能名(英文小写,用-连接)
description: 检查指定城市的天气状况 # 简短描述,AI靠这个判断要不要用
metadata:
{
"openclaw": {
"requires": {
"bins": ["curl"] # 需要电脑上有curl命令
}
}
}
---

第二部分:使用说明(Markdown格式)
这里用大白话教AI怎么干活:

1
2
3
4
5
6
7
8
9
10
# 天气检查技能

用curl命令查天气,支持全球城市。

## 怎么用

当用户问“XX天气怎么样”时,执行:

```bash
curl -s "https://wttr.in/Taipei?format=3&lang=zh"

参数说明

  • Taipei换成任意城市
  • lang=zh中文显示
  • format=3单行简洁格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14

**关键点**:描述(description)一定要写清楚!AI就是靠这个判断“哦,用户问天气,我得用weather-checker技能”。

## 三、实战:10分钟做个天气技能

咱们一步步来,做个真的能用的。

### 步骤1:创建文件夹
```bash
# 进到你的workspace
cd ~/.openclaw/workspace

# 建技能文件夹
mkdir -p skills/weather-checker/scripts

步骤2:写SKILL.md

创建skills/weather-checker/SKILL.md,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
---
name: weather-checker
description: 检查指定城市的天气状况,使用wttr.in服务
metadata:
{
"openclaw": {
"requires": {
"bins": ["curl"]
}
}
}
---
# 天气检查技能

用wttr.in查全球天气,免费、简单、准。

## 怎么用

用户问天气时,直接执行:

```bash
curl -s "https://wttr.in/{城市名}?lang=zh"
```

比如:
- `curl -s "https://wttr.in/Taipei?lang=zh"`
- `curl -s "https://wttr.in/Shanghai?lang=zh"`

## 高级玩法
想显示未来2天预报?加`?2`:
```bash
curl -s "https://wttr.in/Taipei?lang=zh&2"
```

步骤3:(可选)加个脚本

如果你想把逻辑封装起来,创建scripts/get_weather.sh

1
2
3
4
5
6
#!/bin/bash
CITY="${1:-Taipei}" # 默认台北
LANG="${2:-zh}" # 默认中文

echo "正在查询 $CITY 的天气..."
curl -s "https://wttr.in/$CITY?lang=$LANG" | head -20

然后给执行权限:

1
chmod +x skills/weather-checker/scripts/get_weather.sh

在SKILL.md里可以这样调用:

1
bash {baseDir}/scripts/get_weather.sh "Tokyo" "zh"

{baseDir}会自动替换成技能文件夹的绝对路径。

步骤4:让AI学会它

重启OpenClaw Gateway:

1
openclaw gateway restart

或者刷新技能(不重启):

1
echo "刷新技能" | openclaw agent

搞定! 现在你可以问AI:“台北天气怎么样?” AI会自动执行你写的curl命令。

四、技能的高级配置(按需使用)

1. 需要API密钥怎么办?

比如用OpenWeather API:

1
2
3
4
5
6
7
8
9
metadata:
{
"openclaw": {
"requires": {
"env": ["OPENWEATHER_API_KEY"] # 需要这个环境变量
},
"primaryEnv": "OPENWEATHER_API_KEY" # 重点标记
}
}

然后在OpenClaw配置里填密钥:

1
2
3
4
5
6
7
8
9
{
"skills": {
"entries": {
"weather-checker": {
"apiKey": "你的密钥"
}
}
}
}

2. 限制操作系统

只让它在Mac上运行:

1
2
3
4
5
6
7
8
9
metadata:
{
"openclaw": {
"os": ["darwin"], # 只能跑在Mac
"requires": {
"bins": ["say"] # 需要Mac的say命令
}
}
}

3. 自动安装依赖

如果用户没装curl,可以告诉OpenClaw自动装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
metadata:
{
"openclaw": {
"install": [
{
"id": "curl",
"kind": "brew", # 用Homebrew装
"formula": "curl",
"bins": ["curl"],
"label": "安装curl命令"
}
]
}
}

五、技能放哪儿?优先级咋样?

OpenClaw从三个地方找技能,从上到下优先级降低

  1. Workspace Skills (~/.openclaw/workspace/skills/)

    • 最高优先级,你正在开发的项目技能放这儿
    • 比如你刚做的weather-checker
  2. Managed Skills (~/.openclaw/skills/)

    • 系统级共享技能,所有AI都能用
    • 适合装那些通用的、完成度高的技能
  3. Bundled Skills (OpenClaw内置)

    • 官方预装的技能,优先级最低
    • 如果重名,会被上面的覆盖

简单记:自己做的最新技能放workspace里,肯定最先用。

六、分享和安装:ClawHub技能市场

做好了技能想分享?或者想用别人做好的?上ClawHubhttps://clawhub.com)。

发布你的技能

1
2
3
4
5
6
7
8
# 登录
clawhub login

# 发布
clawhub publish skills/weather-checker

# 更新版本
clawhub publish skills/weather-checker --bump-version

安装别人的技能

1
2
3
4
5
6
7
8
# 搜索
clawhub search weather

# 安装
clawhub install weather-checker

# 更新所有技能
clawhub update --all

七、避坑指南和安全提醒

🛡️ 安全第一

  • 别乱用exec:避免直接执行用户输入的参数,小心注入攻击
  • 沙箱环境:不确定的命令先放沙箱里试试
  • 最小权限:技能只给必要的文件访问权
  • 验证输入:用户给的城市名先检查一下,别直接拼到命令里

📝 写好技能的秘诀

  • 描述要准:“查天气”比“处理气象数据”更易懂
  • 多给例子:展示不同城市、不同参数的用法
  • 写好错误提示:告诉AI如果curl失败了该怎么说
  • 声明依赖:需要curl、需要API密钥,都在metadata里写清楚

🔧 调试技巧

1
2
3
4
5
6
7
8
# 列出所有技能
openclaw skills list

# 检查某个技能
openclaw skills check weather-checker

# 看技能加载日志
tail -f ~/.openclaw/logs/gateway.log | grep -i skill

八、进阶案例:GitHub管理技能

想做个更实用的?比如让AI帮你管GitHub:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---
name: github-manager
description: 管理GitHub仓库、Issue和Pull Request
metadata:
{
"openclaw": {
"requires": {
"bins": ["gh"], # 需要GitHub CLI
"env": ["GITHUB_TOKEN"] # 需要GitHub token
},
"install": [
{
"id": "brew",
"kind": "brew",
"formula": "gh",
"bins": ["gh"],
"label": "用Homebrew装GitHub CLI"
}
]
}
}
---
# GitHub管理技能

用GitHub CLI(gh)帮你自动化GitHub操作。

## 常用命令

```bash
# 列出未关闭的Issue
gh issue list --state open

# 创建Pull Request
gh pr create --title "修复bug" --body "详细描述..."

# 查看最近的CI运行
gh run list --limit 5

# 自动合并PR
gh pr merge 123 --rebase --auto
```

**工作流示例**:
AI可以自动审查PR、跑CI、合并代码,全程不用你动手。

九、总结:你也能成技能大师

通过这个实战指南,你学会了:

  1. 技能是啥:AI的“外挂说明书”
  2. 怎么创建:建文件夹 → 写SKILL.md → 测试
  3. 核心配置:metadata控制依赖、环境、安装
  4. 技能管理:放workspace优先级最高,用ClawHub分享
  5. 安全实践:不信任输入,最小权限,多测试

下一步可以玩啥?

  • 接外部API:做个查股价、查快递的技能
  • 处理文件:PDF转文字、图片压缩、视频截取
  • 连数据库:让AI直接查业务数据
  • 自动化工作流:多个技能串联,完成复杂任务

资源推荐

十、最后的话

每个你创造的技能,都是在扩展AI的能力边界,也是在优化自己的工作流

别想得太复杂——从一个小技能开始,比如查天气、算汇率、记笔记。做了第一个,第二个就简单了。

有问题?去Discord社区问。做了好技能?发到ClawHub让大家用。

现在就开始,给你的AI装个“外挂”吧!


本文是《OpenClaw Skills 完全指南》的白话实战版,更注重“怎么做”而非“是什么”。原版见:https://vibeeyex.github.io/2026/02/04/how-to-create-openclaw-skills/