前言
本文手把手教你做一个天气查询 Skill。学完之后,对着 OpenClaw 说"北京天气",它就会告诉你北京的温度和天气状况。
预计耗时:15-20 分钟 | 难度:⭐ 入门
Step 1:创建目录
cd ~/.openclaw/skills/
mkdir weather
cd weather
Step 2:编写 SKILL.md
# SKILL.md - 天气查询技能
name: weather
description: 查询任意城市的天气情况
触发词:
- "天气"
- "查天气"
- "XX天气"
参数:city(正则:^(.+?)天气$)
脚本:./weather.js (js)
Step 3:编写 weather.js
const https = require("https");
async function main(params) {
const city = (params.city || "北京").trim();
const apiUrl = `https://wttr.in/${encodeURIComponent(city)}?format=j1`;
return new Promise((resolve) => {
https.get(apiUrl, (res) => {
let data = "";
res.on("data", (chunk) => data += chunk);
res.on("end", () => {
try {
const info = JSON.parse(data);
const current = info.current_condition[0];
resolve({
success: true,
text: `📍 ${city}\n🌡️ 温度:${current.temp_C}°C\n🌤️ 天气:${current.weatherDesc[0].value}\n💧 湿度:${current.humidity}%`
});
} catch {
resolve({ success: false, error: "获取天气失败" });
}
});
}).on("error", (err) => {
resolve({ success: false, error: err.message });
});
});
}
module.exports = main;
Step 4:测试
重启 OpenClaw,然后说:
- "北京天气" → 📍 北京 🌡️ XX°C
- "上海天气" → 📍 上海 🌡️ XX°C
常见报错
| 报错 | 解决方法 |
|---|---|
| 获取天气失败 | 检查城市名是否正确 |
| Skill 没反应 | 检查 SKILL.md 格式 |
恭喜你!现在你有了第一个能查天气的 Skill!
原创文章,作者:技术老牛,如若转载,请注明出处:https://jishubiji.com/p/926