tencent-weather

天气信息查询工具,覆盖中国市级和区县级行政区。当用户查询实况天气、天气预报或天气预警信息时使用。

TencentNewsTeam

@tencentnewsteam

Install

$ openclaw skills install @tencentnewsteam/tencent-weather

腾讯天气查询

通过 tencent-news-cli 的天气能力完成天气查询。

核心原则:基础设施交给脚本处理;智能体只负责依据当前 CLI 能力选择命令和参数。cli-state 外,所有 CLI 调用都通过 run-cli 执行;始终先读 help weather,不要硬编码任何业务命令。

平台约定

平台脚本运行方式示例
macOS / Linuxsh scripts/<name>.shsh scripts/cli-state.sh
Windowspowershell scripts/<name>.ps1powershell scripts/cli-state.ps1

以下所有脚本调用均以 macOS / Linux 为例,Windows 将 .sh 替换为 .ps1sh 替换为 powershell

cli-state 外,所有 CLI 命令都通过 run-cli 脚本执行:

平台CLI 调用模板
macOS / Linuxsh scripts/run-cli.sh <command> [args]
Windowspowershell scripts/run-cli.ps1 <command> [args]

环境异常时的用户指引(强制门禁)

用户直接提出业务问题时,也必须先检查环境。CLI 或 API Key 未就绪时,当前轮停止业务查询,不得只回复“数据加载失败”、原始错误或泛化的“请检查配置”,必须给出可直接操作的指引:

  • CLI 未安装/不可用cliExists: falsecliSource: nonecli not foundcommand not foundnot recognized):说明本查询依赖腾讯新闻 CLI,当前设备尚未安装或未被识别;按平台提供安装命令:macOS/Linux 使用 curl -fsSL https://mat1.gtimg.com/qqcdn/qqnews/cli/hub/tencent-news/setup.sh | sh;Windows PowerShell 使用 irm https://mat1.gtimg.com/qqcdn/qqnews/cli/hub/tencent-news/setup.ps1 | iex。提醒安装后重新打开终端并重新提问。
  • API Key 未配置apiKey.status: missing未设置 API KeyAPI Key not set):说明 CLI 已安装但尚未配置 Key;引导访问 https://news.qq.com/exchange?scene=appkey 获取,然后执行 tencent-news-cli apikey-set YOUR_KEY,再执行 tencent-news-cli apikey-get 验证。
  • API Key 无效、过期或无权限API Key 无效invalid api keyunauthorized401403、鉴权/认证失败):不得归因为无数据、额度或普通网络错误;说明当前 Key 无效或无权访问,引导从上述页面重新获取正确 Key,再执行设置和验证命令。
  • 状态不确定(状态脚本失败、apiKey.status: error 或无法解析):先按错误文本匹配以上类型;仍无法判断时,同时给出安装命令及 Key 获取、设置、验证步骤。
  • YOUR_KEY 只能由用户在本地替换;不得索要、代填、回显或记录真实 Key。环境未就绪时不得改用其他数据源。上述基础设施指引优先于业务输出格式限制,但不得展示内部日志、参数、traceid。

Phase 1:环境就绪

环境已就绪时直接跳到 Phase 2。

1. 状态检查

sh scripts/cli-state.sh

解析返回的 JSON,关注以下字段:

字段含义
platform.cliPath底层实际使用的 CLI 完整路径,供诊断错误或权限问题时参考
platform.cliSourceglobal(优先命中 PATH 中可用的全局命令,否则命中默认全局安装目录)/ local(旧版 skill 目录内安装,兼容兜底)/ none(以上路径都未找到)
cliExistsCLI 是否存在
update.needUpdate当前版本是否需要更新
update.errorversion 检查失败时的错误信息
apiKey.presentAPI Key 是否已配置
apiKey.statusconfigured / missing / error
apiKey.errorapikey-get 执行异常或输出异常时的错误信息

2. 安装 CLI(cliExistsfalse 时)

仅当 cliSourcenone 时才需要安装;local 表示命中了旧版本地安装,可继续使用但建议后续迁移到全局安装。

按照 references/installation-guide.md 中的安装命令执行安装。

安装成功后重新执行 sh scripts/cli-state.sh(Windows 用 powershell scripts/cli-state.ps1)刷新状态。

若安装失败,参考 references/installation-guide.md 中的故障排查部分,引导用户手动处理。

3. 更新 CLI(update.needUpdatetrue,或 CLI 提示版本过旧时)

sh scripts/run-cli.sh update

Windows 使用 powershell scripts/run-cli.ps1 update

update.error 不为空,先展示错误并让用户处理。

update 命令失败,或错误信息表明当前 CLI 不支持 update(如 unknown commandnot foundnot recognized),按上述步骤 2 重新安装。仍然失败时,引导用户参考 references/update-guide.md 手动处理。

4. 配置 API Key(apiKey.status 不为 configured 时)

  • missing → 引导用户打开 API Key 获取页面 自行获取,不要执行 open / xdg-open / start 等命令自动打开浏览器
  • error → 展示 apiKey.error,让用户先处理(权限、网络、CLI 异常),处理后重试

设置 Key(通过 run-cli 执行,KEY 是裸值不加引号):

sh scripts/run-cli.sh apikey-set KEY

Windows 分别使用 powershell scripts/run-cli.ps1 apikey-set KEYpowershell scripts/run-cli.ps1 apikey-getpowershell scripts/run-cli.ps1 apikey-clear

验证:sh scripts/run-cli.sh apikey-get 清除(仅用户明确要求时):sh scripts/run-cli.sh apikey-clear

详见 references/env-setup-guide.md

Phase 2:天气查询

天气相关命令可能随 CLI 版本变化。始终以当前 help weather 输出为准,不要假设或记忆任何业务命令。

  1. 先执行 help weather 通过 run-cli 执行:macOS / Linux 为 sh scripts/run-cli.sh help weather,Windows 为 powershell scripts/run-cli.ps1 help weather

  2. 根据 help weather 选择命令

    • 实时天气 / 天气预报 / 生活指数 → 优先选择帮助中用于查询当前天气的命令;截至 2026-08-07 核实,当前 CLI 仅提供单一 weather 命令(参数 --adcode,不传时按IP 定位默认地区),综合返回按需包含「实况、日升日落、未来天气、生活指数、七日限号(部分限行城市才有)、天气预警(仅当地有生效预警时才出现)」等分段——分段是否出现取决于当次查询结果,不是固定结构;该结论仅供参考,仍需以每次实际的 help weather 输出和实际返回为准,CLI 版本更新后可能变化
    • 常规天气查询中附带的预警信息(用户问的是天气本身,如“今天天气怎么样”“会不会下雨”)→ 直接调用本 skill 的 weather 能力,若综合返回中出现「⚠️ 天气预警」等分段,原样一并展示;未出现该分段则不提及预警
    • 专门查询预警/异常天气(用户明确只问预警或异常天气,如“XX 地方最近有什么异常天气”“有没有预警”)→ 交由 tencent-weather-alert skill 处理,一次查询即返回结果
    • 持续订阅/主动推送类请求(如“订阅”“提醒我”“每天/定时检查预警”“有预警时通知我”)→ 当前 CLI 及本 skill 均不支持订阅或主动推送,如实告知用户,不得擅自创建定时任务或模拟订阅效果
    • 预警类型识别 → 雨天(中雨至特大暴雨、雷阵雨伴冰雹、雨夹雪)、雪天(小雪至暴雪)、雾霾(沙尘暴、强沙尘暴、扬沙、各级霾和特强浓雾)、空气质量(AQI 重度污染)、寒潮(大幅降温)、高温(38°C 高温)、台风(路径及影响);这些类型仅用于理解和筛选结果,不得当作 CLI 参数,除非当次帮助明确支持
    • 复合请求(如“看看北京今天和明天的天气,再说下会不会下雨”)→ 尽量映射到一个命令;若帮助中没有单条命令覆盖,再拆成多个天气请求依次执行
    • 地点缺失 → 先结合上下文判断用户是否已经给出城市/区县;无法确定时再请用户补充地点
    • 地点参数一律使用 Adcode → 若用户给的是地点名称,先转换成对应的 Adcode 再执行天气命令,不要直接传中文地名;例如“北京”使用 110000
    • 时间缺失 → 默认理解为“当前/今天”;若帮助中的命令要求显式日期参数,再按帮助要求补足默认值
    • help weather 中无匹配命令,如实告知用户当前 CLI 不支持该天气场景
  3. 执行命令时遵守四条约束

    • 所有实际 CLI 调用都走 run-cli 脚本,不要直接执行 platform.cliPath
    • 业务命令、参数名、参数顺序都以 help weather 展示为准,必要时照抄帮助中的示例
    • 地点相关参数优先传 Adcode;若用户只给了地名,先换成对应的 Adcode 再调用,例如北京 → 110000
    • 不要自行猜测 weather 子命令下的参数缩写或默认值;按帮助输出里的完整用法组装
  4. 输出结果

    • 若 CLI 返回的内容已经是格式完善的 markdown 或可直接阅读的文本(如当前版本按需返回的「实况 / 日升日落 / 未来天气 / 生活指数 / 七日限号 / 天气预警」分段文本),原样输出,不要重新排版、不要省略分段(包括限行、预警等非核心天气信息)
    • 若 CLI 返回结构化字段,再整理成用户可读结果,至少包含地点、天气现象、温度,以及 CLI 返回的其他关键字段(如降水、风力、空气质量、湿度、体感、限行、预警)

输出格式

优先遵循 CLI 的原始输出形式:

  • CLI 已返回完整 markdown / 文本时,直接原样输出,不要改写
  • CLI 返回结构化结果时,按下面格式整理
**地点**:深圳
**时间**:今天
**天气**:多云
**温度**:26°C

- 降水:10%
- 风力:东北风 3 级
- 空气质量:优

**来源:腾讯天气**

通用规则:

  • 只输出 CLI 实际返回或可由其字段直接映射出的信息,不补充外部天气数据
  • 多个地点或多个时间段时,按地点或时间分组展示,组与组之间空一行
  • 若某些字段缺失,直接省略,不要臆造
  • 在结果末尾保留 **来源:腾讯天气**

CLI 执行失败处理

CLI 命令失败后,立即停止,绝不通过 WebSearch 或其他方式自行补做天气查询。

  1. CLI 返回非零退出码、超时或输出含权限/安全错误时,不要重试,不要换方式。
  2. 根据错误信息引导用户:
    • macOS Gatekeepercannot be openednot verified)→ 系统设置 → 隐私与安全性 → 「仍要打开」
    • 企业安全软件connection refused、防火墙拦截)→ 安全提示中点击「信任」/「允许」
    • 权限不足permission denied)→ chmod +x <cliPath>
    • 其他 → 展示完整错误,请用户处理
  3. 用户确认操作完成后再重试。即使多次失败,也只能告知当前无法完成天气查询并说明原因,绝不回退到其他信息源。

References

Top skills in this category