当前位置: 首页 > article >正文

OpenClaw技能开发入门:为gemma-3-12b-it编写第一个天气查询模块

OpenClaw技能开发入门为gemma-3-12b-it编写第一个天气查询模块1. 为什么选择OpenClaw开发自定义技能去年冬天我经常需要同时查看多个城市的天气来决定出差行程。反复切换浏览器标签和天气应用的低效操作让我萌生了用AI自动化这个流程的想法。经过几轮技术选型最终选择OpenClaw作为实现平台——它既能对接本地部署的gemma-3-12b-it模型保持数据隐私又提供了完整的技能开发框架。与直接调用天气API的脚本不同OpenClaw技能的核心价值在于自然语言交互用户可以说查下北京明天会下雨吗而不需要记住固定命令格式上下文理解模型能处理比昨天温度高吗这类相对查询多平台集成结果可自动同步到飞书/邮件等渠道2. 开发环境准备2.1 基础组件安装我的开发环境是macOS VS Code先通过Homebrew完成基础依赖安装brew install node22 npm install -g openclawlatest clawhublatest验证环境时遇到个小坑新版本要求Node.js 18但系统自带的是16版。用nvm use 18切换后解决。2.2 模型服务对接由于使用本地部署的gemma-3-12b-it模型需要在~/.openclaw/openclaw.json配置模型端点{ models: { providers: { local-gemma: { baseUrl: http://localhost:3000/v1, api: openai-completions, models: [{ id: gemma-3-12b-it, name: Local Gemma }] } } } }这里特别注意api字段必须设为openai-completions因为gemma的WebUI实现了兼容OpenAI的接口协议。3. 创建天气查询技能项目3.1 初始化技能骨架通过ClawHub CLI创建项目模板clawhub create weather-query -t basic-skill cd weather-query生成的核心文件结构weather-query/ ├── package.json ├── skill.json # 技能元数据 ├── src/ │ ├── index.js # 主逻辑 │ └── weather.js # 业务实现 └── test/3.2 定义技能元数据编辑skill.json声明技能能力{ name: weather-query, description: 查询实时天气信息, triggers: [ { type: command, patterns: [ 查*天气, *会下雨吗, *温度多少 ] } ], permissions: [http] }patterns支持通配符匹配确保能捕获各种天气查询的自然语言变体。permissions声明需要网络访问权限。4. 实现天气API集成4.1 选择天气数据源对比了多家天气API后选择高德地图API免费版QPS足够个人使用返回数据包含降水概率等扩展字段国内服务器响应速度快申请Key时注意开通Web服务API权限不要选Android/iOS平台。4.2 编写业务逻辑在src/weather.js实现核心功能const axios require(axios); class WeatherService { constructor(apiKey) { this.apiKey apiKey; this.baseUrl https://restapi.amap.com/v3/weather/weatherInfo; } async query(city) { try { const response await axios.get(this.baseUrl, { params: { key: this.apiKey, city: city, extensions: all // 获取预报数据 } }); return this.formatResponse(response.data); } catch (error) { console.error(Weather API error:, error); return { error: 获取天气数据失败 }; } } formatResponse(data) { // 提取核心字段并转换为自然语言描述 const forecasts data.forecasts[0].casts; return { today: 今天${forecasts[0].dayweather}温度${forecasts[0].daytemp}℃, tomorrow: 明天${forecasts[1].dayweather}降水概率${forecasts[1].dayprecip}% }; } } module.exports WeatherService;特别注意错误处理要完善避免API异常导致整个技能崩溃。5. 对接OpenClaw主程序5.1 编写入口逻辑src/index.js负责桥接OpenClaw框架const WeatherService require(./weather); const weather new WeatherService(process.env.AMAP_KEY); module.exports async (claw) { claw.on(weather-query:command, async (args, context) { const city context.entities.city || 北京; // 默认城市 const result await weather.query(city); if (result.error) { return { text: result.error }; } return { text: ${city}天气${result.today}${result.tomorrow}, cards: [{ title: ${city}天气预报, content: [ { type: text, text: result.today }, { type: text, text: result.tomorrow } ] }] }; }); };5.2 环境变量配置在项目根目录创建.env文件存放敏感信息AMAP_KEY你的高德API密钥通过process.env读取避免密钥硬编码在代码中。6. 测试与调试技巧6.1 本地测试模式开发阶段使用clawhub dev启动实时调试clawhub dev --watch这个模式会监控文件变动自动重载在控制台打印详细日志提供测试聊天界面6.2 常见问题排查遇到过的典型问题及解决方案中文城市名识别不准在context.entities中添加city的别名映射API返回数据格式不符先用Postman验证原始接口响应权限被拒绝检查skill.json的permissions是否包含http7. 发布到ClawHub社区7.1 打包发布首先更新package.json中的版本号然后执行clawhub publish --public发布流程会运行测试用例生成压缩包上传到ClawHub仓库7.2 版本管理建议遵循语义化版本控制补丁版本0.0.x修复bug次要版本0.x.0新增功能主版本x.0.0不兼容变更例如新增多语言支持属于次要版本升级。8. 进阶开发方向完成基础功能后可以考虑增强多数据源回退当主API不可用时自动切换备用源历史记录对比存储查询记录实现比昨天冷吗这类需求预警通知当出现暴雨等极端天气时主动推送提醒这些扩展可以通过新增skill.json中的triggers类型实现。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

OpenClaw技能开发入门:为gemma-3-12b-it编写第一个天气查询模块

OpenClaw技能开发入门:为gemma-3-12b-it编写第一个天气查询模块 1. 为什么选择OpenClaw开发自定义技能? 去年冬天,我经常需要同时查看多个城市的天气来决定出差行程。反复切换浏览器标签和天气应用的低效操作,让我萌生了用AI自动…...

5分钟搞定OpenClaw+Kimi-VL-A3B-Thinking:星图GPU镜像一键体验

5分钟搞定OpenClawKimi-VL-A3B-Thinking:星图GPU镜像一键体验 1. 为什么选择云端沙盒体验OpenClaw 作为一个长期折腾本地AI部署的技术爱好者,我深刻理解配置环境的痛苦。上周尝试在MacBook Pro上手动部署OpenClaw时,光是解决Node.js版本冲突…...

Wan2.2-I2V-A14B惊艳效果:动态镜头推移、自然光影变化、流畅运镜展示

Wan2.2-I2V-A14B惊艳效果:动态镜头推移、自然光影变化、流畅运镜展示 1. 专业级视频生成能力 Wan2.2-I2V-A14B模型带来了令人惊叹的视频生成效果,能够将简单的文字描述转化为专业水准的动态视频。这个模型特别擅长处理复杂的镜头运动和光影变化&#x…...

手机版Termux中Firefox浏览器的安装与网络配置指南

一、问题定位与核心原理在Termux环境中使用Firefox浏览器时,常见的网络问题多源于软件源配置、DNS解析、网络环境适配三大核心环节。本文将基于Linux系统原理,提供纯本地环境下的合规配置方案,帮助解决访问异常、安装失败等问题。二、基础配置…...

Cogito-v1-preview-llama-3B企业应用:中小开发者低成本接入混合推理AI方案

Cogito-v1-preview-llama-3B企业应用:中小开发者低成本接入混合推理AI方案 1. 引言:当小团队也想用上“会思考”的AI 如果你是一个中小型开发团队的负责人,或者是一个独立开发者,最近可能经常听到这样的讨论:“某某大…...

Simulink模型加密实战:如何快速生成只读受保护模型

1. 为什么需要Simulink模型加密 在工业界和学术界,Simulink模型经常需要在不同团队或公司之间共享。比如你可能需要向客户展示模型的功能,但又不想泄露核心算法细节;或者需要与合作方共同开发,但希望保护自己的知识产权。这时候&a…...

STM32F103C8T6小车巡线实战:从串口指令到灰度传感器闭环控制的完整流程

STM32F103C8T6智能小车巡线系统开发全攻略 从零搭建智能巡线小车的核心要素 第一次尝试用STM32开发板制作巡线小车时,我遇到了不少令人头疼的问题——传感器数据不稳定、电机响应延迟、PID参数调不好。经过多次失败和调试,终于总结出一套行之有效的开发流…...

告别官方驱动:深度解读ES7210寄存器,打造你自己的音频采集库(ESP32平台)

告别官方驱动:深度解读ES7210寄存器,打造你自己的音频采集库(ESP32平台) 在嵌入式音频开发领域,ES7210作为一款高性能多通道ADC芯片,被广泛应用于智能音箱、会议系统等场景。然而,官方驱动往往封…...

OpenClaw代码审查助手:Qwen2.5-VL-7B生成带示意图的代码优化建议

OpenClaw代码审查助手:Qwen2.5-VL-7B生成带示意图的代码优化建议 1. 为什么需要AI代码审查助手 作为开发者,我每天都要面对大量的代码审查工作。传统的人工CR(Code Review)过程往往耗时费力,尤其是当项目规模扩大后&…...

微型压电MEMS风扇:颠覆AI芯片散热的“静音黑科技”

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…...

华新嘉华:如何做好GEO?记住!简单的内容堆砌达不到效果

‍在生成式AI搜索全面重塑信息获取方式的当下,越来越多的企业开始布局GEO(生成式引擎优化),希望抢占AI搜索这一新兴流量入口。然而,一个不容忽视的现象正在蔓延:大量企业投入资源、批量生产内容&#xff0c…...

Windows Subsystem for Android (WSA) 完全指南:从技术原理到跨平台实践

Windows Subsystem for Android (WSA) 完全指南:从技术原理到跨平台实践 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 一、价值定位&#xff1…...

StructBERT-中文-large惊艳效果展示:中文新闻事件多源报道语义聚合案例

StructBERT-中文-large惊艳效果展示:中文新闻事件多源报道语义聚合案例 1. 引言:当新闻铺天盖地而来,如何看清真相? 你有没有过这样的经历?一个热点事件爆发,打开手机,各种新闻App、社交媒体、…...

千问3.5-2B实战案例:在线考试截图作弊行为特征识别与标记

千问3.5-2B实战案例:在线考试截图作弊行为特征识别与标记 1. 项目背景与挑战 在线教育平台的监考人员每天需要审核大量考试截图,人工识别作弊行为存在以下痛点: 效率低下:平均每张截图需要30秒人工检查标准不一:不同…...

模块化多电平变换器MMC的NLM与CPS-PWM调制策略仿真实现:交流3000V-直流5000...

模块化多电平变换器MMC两种调制策略实现(交流3000V-直流5000V整流)仿真,单桥臂二十子模块,分别采用最近电平逼近NLM与载波移相调制CPS-PWM实现,仿真中使用环流抑制,NLM中采用快速排序,两个仿真动…...

实战应用:基于快马平台开发企业级极域电子教室校园分发与管理系统

实战应用:基于快马平台开发企业级极域电子教室校园分发与管理系统 最近接手了一个校园信息化项目,需要为某中学开发一套极域电子教室的分发管理系统。学校希望实现软件版本的分班级分时段管理,同时避免下载高峰期的网络拥堵。经过调研&#…...

# 007、复杂驱动与ECU抽象:硬件深度访问与传感器执行器集成

深夜的示波器 上周三凌晨两点,产线测试报出一个诡异问题:某个车窗控制模块在低温下偶发升窗抖动。逻辑层代码检查了三遍,RTE接口确认无误,可问题就在那里——像幽灵一样时隐时现。最后把示波器探头直接钩到电机驱动芯片的引脚上,才发现是MOSFET栅极驱动波形在低温下出现了…...

软件架构风格深度研究报告

软件架构风格是软件工程领域中描述系统组织方式的惯用模式,定义了系统家族的构件、连接件类型及其组合约束。随着云计算、微服务、容器等技术的崛起,软件架构实践日趋多元化。本文从经典分类体系出发,系统梳理了数据流风格、调用/返回风格、独…...

SEO优化软件年费用大概是多少

SEO优化软件年费用大概是多少 SEO优化软件已经成为许多企业和网站运营者必不可少的工具。它能够帮助提升网站在搜索引擎中的排名,从而带来更多的流量和潜在客户。但在选择和使用SEO优化软件时,很多人都会关心一个问题:SEO优化软件年费用大概…...

Qwen3.5推理模型效果实测:分步骤解题、结构化分析惊艳展示

Qwen3.5推理模型效果实测:分步骤解题、结构化分析惊艳展示 1. 模型核心能力概览 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF作为一款专精推理的蒸馏模型,在结构化问题解决方面展现出独特优势。经过实测,其核心能力可归纳为三个维…...

Qwen3-0.6B-FP8与单片机开发联动:生成嵌入式C代码与调试注释

Qwen3-0.6B-FP8与单片机开发联动:生成嵌入式C代码与调试注释 1. 引言 你有没有过这样的经历?面对一块崭新的单片机开发板,脑子里想好了一个功能,比如“让LED灯呼吸起来”,但打开开发环境,看着空白的代码文…...

测试、项目管理、软件度量和质量

欢迎来到我的软考中级——软件设计师备考合集。这里不只是一份简单的知识点堆砌,而是我在备考征途中,对庞杂知识体系进行深度梳理与内化的结晶。 面对浩瀚的考纲,从计算机组成原理的底层逻辑,到操作系统的进程调度;从数…...

SEO原创文章的发布频率应该如何确定

SEO原创文章的发布频率应该如何确定 在当今的互联网时代,搜索引擎优化(SEO)已经成为网站运营的关键环节之一。为了在百度上获得更好的排名,发布高质量的原创文章是必不可少的策略。如何确定SEO原创文章的发布频率,是许…...

SEO_如何通过内容优化有效提升SEO效果?(193 )

SEO内容优化:提升网站SEO效果的关键策略 在当今的数字化时代,搜索引擎优化(SEO)已经成为了任何一个想要在网络上脱颖而出的关键步骤。特别是在百度这个中国最大的搜索引擎平台上,如何通过内容优化有效提升SEO效果&…...

参数党VS体验派?雅马哈、卡西欧、费森4款热门电钢琴型号终极对决,结果有点意外!

你是否也有这样的时刻?练习时间在不断累积,指法日渐熟练,可弹奏出的声音却依然显得机械、平淡,甚至有点“假”。那种在琴行试弹顶级三角钢琴时,指尖与琴键、琴弦与空气共鸣所带来的微妙震颤与心灵悸动,在自…...

RNN、LSTM、BiLSTM 算法学习笔记

NLP-AHU-026一、RNN1.我之前学的普通神经网络和CNN,都是一次性处理数据的,比如给一张图片,它就直接分析这张图的像素,不会管前后的关联。但现实里很多数据都是有顺序的,像咱们读课文、看视频,得结合上下文才…...

造相-Z-Image本地部署全记录:无需网络,RTX 4090专属优化方案

造相-Z-Image本地部署全记录:无需网络,RTX 4090专属优化方案 你是否曾为部署一个AI绘画模型而焦头烂额?面对复杂的依赖、漫长的网络下载、以及最令人头疼的“爆显存”问题,是不是感觉手头这张强大的RTX 4090显卡有力使不出&#…...

手把手教你部署MiniCPM-V-2_6:最强视觉多模态模型,小白也能快速体验

手把手教你部署MiniCPM-V-2_6:最强视觉多模态模型,小白也能快速体验 1. 认识MiniCPM-V-2_6:视觉多模态新标杆 MiniCPM-V-2_6是目前最先进的视觉多模态模型之一,它基于SigLip-400M和Qwen2-7B构建,总参数量达到80亿。这…...

【NOIP】1999真题解析 luogu-P1014 Cantor 表 | GESP三、四级以上可练习

NOIP 1999 普及组真题,主要考察简单的二维矩阵模拟与通过寻找数学规律进行时间复杂度优化。可以用模拟法暴力求解,也能通过总结对角线的排列规律实现高效求解。GESP三、四级以上可练习。题目难度⭐⭐☆☆☆,洛谷难度等级普及−。 luogu-P101…...

【NOIP】1998真题解析 luogu-P1011 车站 | GESP四、五级以上可练习

NOIP 1998 提高组真题,主要考察递推与斐波那契数列规律应用。题目需要对上下车人数的状态进行合理地抽象模拟并求解未知变量。GESP四、五级以上可练习。题目难度⭐⭐☆☆☆,洛谷难度等级普及−。 luogu-P1011 [NOIP 1998 提高组] 车站 题目要求 题目题…...