OpenClaw技能开发入门:为Qwen3.5-9B定制专属自动化模块

张开发
2026/4/30 10:19:12 15 分钟阅读

分享文章

OpenClaw技能开发入门:为Qwen3.5-9B定制专属自动化模块
OpenClaw技能开发入门为Qwen3.5-9B定制专属自动化模块1. 为什么需要自定义OpenClaw技能去年夏天我每天上班前都要手动查询天气再根据温度决定是否带伞。直到我发现OpenClaw可以自动化这个过程——但现有的技能市场没有符合我需求的天气预报模块。这促使我踏上了技能开发之路。自定义技能的核心价值在于解决长尾需求。OpenClaw官方提供的通用技能如文件整理、网页搜索能覆盖80%的基础场景但剩下20%的个性化需求正是效率工具发挥价值的空间。通过开发天气预报skill我实现了自然语言触发如查询北京明天天气自动调用中国气象局API获取数据结构化返回温度、降水概率、穿衣建议与飞书机器人对接每日7点推送天气提醒2. 开发环境准备2.1 基础工具链开发OpenClaw技能需要以下环境以macOS为例# 确认Node.js版本要求18 node -v # 安装OpenClaw CLI npm install -g openclawlatest # 安装技能开发工具包 npm install -g openclaw/skill-dev-kit2.2 Qwen3.5-9B模型接入由于我们的技能将使用Qwen3.5-9B处理自然语言指令需要先在~/.openclaw/openclaw.json中配置模型{ models: { providers: { qwen-cloud: { baseUrl: http://localhost:8080/v1, // 本地部署的Qwen服务地址 apiKey: your-api-key, api: openai-completions, models: [ { id: qwen3.5-9b, name: Qwen3.5-9B, contextWindow: 32768 } ] } } } }配置完成后执行模型测试openclaw models list openclaw chat 你好Qwen --model qwen3.5-9b3. 天气预报技能开发实战3.1 创建技能骨架使用CLI工具初始化项目mkdir weather-skill cd weather-skill clawhub skill init --name weather --desc 天气预报查询技能生成的项目结构如下weather-skill/ ├── package.json ├── skill.json # 技能元数据 ├── src/ │ ├── index.js # 主逻辑 │ └── weather.js # API封装 └── test/ └── index.test.js3.2 定义技能元数据编辑skill.json声明技能能力{ name: weather, description: 中国城市天气预报查询, version: 0.1.0, triggers: [ { type: nlp, patterns: [ {city}的天气, {city}明天会下雨吗, {city}温度怎么样 ] } ], permissions: [ http // 需要网络访问权限 ] }3.3 实现气象API调用在src/weather.js中封装中国气象局APIconst axios require(axios); class WeatherAPI { constructor(apiKey) { this.client axios.create({ baseURL: https://api.weather.com/v3, timeout: 5000 }); this.apiKey apiKey; } async getDaily(city) { const response await this.client.get(/weather/daily, { params: { city: city, key: this.apiKey, language: zh-CN } }); return this._formatData(response.data); } _formatData(raw) { return { city: raw.location.name, date: raw.forecasts[0].date, dayTemp: ${raw.forecasts[0].high}℃, nightTemp: ${raw.forecasts[0].low}℃, condition: raw.forecasts[0].day.condition }; } } module.exports WeatherAPI;3.4 编写主逻辑src/index.js处理自然语言指令const WeatherAPI require(./weather); const WEATHER_API_KEY process.env.WEATHER_API_KEY; module.exports async (claw, args) { const { nlp } args; // 使用Qwen3.5解析城市名称 const city await claw.models.complete({ model: qwen3.5-9b, prompt: 从以下文本提取城市名称${nlp.text}。只需返回城市名。, max_tokens: 10 }); // 调用天气API const weather new WeatherAPI(WEATHER_API_KEY); const data await weather.getDaily(city.trim()); // 结构化返回 return { type: message, content: 【${data.city}天气预报】\n日期${data.date}\n白天温度${data.dayTemp}\n夜间温度${data.nightTemp}\n天气状况${data.condition} }; };4. 测试与调试技巧4.1 本地测试模式启动开发服务器clawhub skill dev在另一个终端模拟请求curl -X POST http://localhost:7070/weather \ -H Content-Type: application/json \ -d {nlp:{text:北京明天天气怎么样}}4.2 常见问题排查API调用失败检查网络权限确认skill.json已声明http权限城市识别错误在Qwen提示词中增加示例如上海→上海内存溢出Qwen3.5-9B需要至少16GB内存可通过--max-memory限制5. 技能打包与发布5.1 构建生产版本clawhub skill build生成dist/weather-0.1.0.claw发布包5.2 发布到ClawHub注册开发者账号clawhub login上传技能clawhub publish --skill dist/weather-0.1.0.claw设置可见性建议先选private测试5.3 用户安装方式终端用户可通过以下命令安装clawhub install yourname/weather或在OpenClaw对话窗口输入安装 yourname/weather 技能6. 扩展应用场景完成基础功能后可以进一步扩展多日预报修改API调用参数获取7天数据预警推送接入气象预警API实现自动提醒出行建议结合温度、降水概率生成建议如建议带伞多平台对接适配飞书、企业微信的消息卡片格式通过这个项目我深刻体会到OpenClaw的扩展能力——它不只是现成工具的集合更是个人工作流的延伸。当标准化方案无法满足需求时自己动手开发才是终极解决方案。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章