前言¶
在 DSH 这类「一切皆插件」的智能体环境里,很多外部能力都要通过插件接入。天气查询是一个典型需求:如果直接接第三方天气接口,往往还需要注册、申请 API key、处理配额。dsh-weather 的数据源是 Open-Meteo,免费、无需 API key、无需注册,插件只负责把查询参数传给 Open-Meteo,再把结果交给模型使用。
这是什么¶
dsh-weather 是一个 DeepSeek Harness 插件,由 sunshine-lang 维护,许可证为 MIT。它给 DSH 提供 get_weather 工具,用于查询任意城市或地点的实时天气,以及最多 7 天的多日预报。天气数据来自 Open-Meteo。
核心功能¶
- 提供
get_weather工具,可查询实时温度、体感温度、湿度、风速与天气状况。 - 支持可选多日预报,最多 7 天,返回每日最高/最低温度与天气状况。
- 支持摄氏 / 华氏温度单位。
- 数据来自 Open-Meteo,免费、无需 API key、无需注册。
调用参数如下:
location: 必填
units: 可选,celsius | fahrenheit
days: 可选,1–7
units 用于指定温度单位;days 用于指定预报天数。
安装¶
已核实资料中给出了如下 GitHub 安装命令:
dsh plugin --profile web add "github:sunshine-lang/dsh-weather"
这条命令把 dsh-weather 安装到 web profile。DSH 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。dsh-weather 的许可证为 MIT,天气数据 © Open-Meteo。
典型用法¶
启动 Web UI 后,可以直接向模型提问。已核实的示例包括:
上海现在天气怎么样?
如果希望指定单位和预报天数,可以这样问:
查一下东京的天气,用华氏度,并给出 3 天预报。
模型随后会调用 get_weather。参数中 location 必填,units 可传 celsius 或 fahrenheit,days 范围是 1 到 7。
配置与限制¶
默认配置如下:
defaultUnits=celsius
timeoutMs=10000
maxForecastDays=7
defaultUnits 表示模型未传 units 时使用的温度单位;timeoutMs 表示每次天气 API 调用的超时时间,单位为毫秒;maxForecastDays 表示 days 参数的上限。
如果配置无效,插件加载会直接失败,并给出可操作的错误信息。
本地源码与运行环境¶
如果从本地源码安装或开发,资料提示:pnpm 对 link: 方式的本地依赖不会自动安装其依赖,需要手动添加:
dsh plugin --profile web add @deepseek-ai/dsh-tools @deepseek-ai/cordis @deepseek-ai/schemastery
package.json 要求 Node 版本满足:
>=22.19
结尾¶
dsh-weather 的作用比较集中:在 DSH 的 Web UI 中提供一个天气查询工具,不需要额外申请 Open-Meteo 账号或 API key,同时保留摄氏 / 华氏单位和最多 7 天预报的控制。
社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。已核实资料未给出目录页 URL,本文不列出具体地址。
项目仓库:
https://github.com/sunshine-lang/dsh-weather