技能架构概述
#OpenClaw 技能是一个标准化的模块,包含以下组件:
manifest.json - 技能描述文件index.js - 主要逻辑代码SKILL.md - 使用文档
创建天气查询技能
#1. 创建技能目录
#1
2
| mkdir -p ~/.openclaw/skills/weather
cd ~/.openclaw/skills/weather
|
2. 编写 manifest.json
#1
2
3
4
5
6
7
8
9
| {
"name": "weather",
"version": "1.0.0",
"description": "查询全球城市天气",
"author": "yourname",
"entry": "index.js",
"permissions": ["network"],
"triggers": ["天气", "temperature", "weather"]
}
|
3. 编写核心逻辑
# 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
| // index.js
const axios = require('axios');
module.exports = {
name: 'weather',
async execute(query, context) {
const city = this.extractCity(query);
try {
const response = await axios.get(
`https://api.weather.com/v1/current?city=${city}`
);
return {
success: true,
data: {
city: city,
temperature: response.data.temp,
condition: response.data.condition,
humidity: response.data.humidity
}
};
} catch (error) {
return {
success: false,
error: `无法获取 ${city} 的天气信息`
};
}
},
extractCity(query) {
// 简单的城市提取逻辑
const match = query.match(/(.+?)的?天气/);
return match ? match[1] : '北京';
}
};
|
测试技能
#1
2
3
4
5
| # 加载技能
openclaw skills load weather
# 测试
openclaw ask "北京天气怎么样?"
|
进阶功能
#通过本教程,你学会了如何开发一个完整的 OpenClaw 技能。这个模式可以应用到任何类型的技能开发中。