dsh-whale-care:给 DeepSeek Harness 的关心引擎

前言

在 DSH 里接天气,常见做法是暴露 weather 一类工具,把温度、降雨概率和预报原样交给模型。用户问「今天要带伞吗」,agent 往往复述接口字段,换一个人问,措辞也差不多。若你还希望 agent 记得对方怕冷、骑车上班、对空气敏感,并在合适时段用一两段能直接发出去的话来关心,就需要在「算清楚」和「怎么说」之间多一层逻辑。dsh-whale-care(小鲸鱼关心)就是面向这一点的 DSH 插件:天气是第一个关心来源,偏好只存本机,MIT 许可,无需 API Key。

这是什么

维护者 fanyingnie2163663 在 GitHub 发布 dsh-whale-care,社区目录分类为联网工具。当前版本 0.5.7(README 标明为早期版本,功能仍在扩展)。插件给 DeepSeek Harness (dsh) 提供一套「关心引擎」:先根据预报与个人偏好算出该提醒什么,再组织成关心式话术,而不是堆数据。

与普通天气插件的差异可以概括为:把概率和区间翻译成带伞、穿衣、通勤与安全建议;同一城市不同人会因 profile.json 里怕冷、出行方式、健康备注等而不同;还可选每日主动关心一条(可关、可跟作息),以及极端天气预警与条件/定时提醒。插件和所用天气接口不收费;agent 回答仍消耗模型额度。wttr.in 为社区服务可能限流;Open-Meteo 免费额度仅限非商业用途(见 README 说明)。

核心功能

五个工具

工具 用途
weather 详细播报:当前天气、空气质量、三天预报、常规建议
weather_care 关心版:按偏好和时段写成可直接发送的一段话
weather_profile 读写偏好:城市、称呼、怕冷怕热、出行方式、伞、健康备注,以及每日关心开关/时间
weather_reminder 到点提醒(如吃药喝水),或按天气条件在到期时用最新预报判断是否提醒
weather_alert 极端天气预警(暴雨/大风/高温/寒潮/雷电/沙尘/大雾/空气污染等),黄橙红三级,当天不重复

偏好保存在本机 $DSH_HOME/whale-weather/profile.json(默认 ~/.dsh/whale-weather/profile.json,权限 600)。提醒保存在同目录 reminders.json。

关心版如何随偏好变化

设置好偏好后,weather_care 会结合称呼、时段问候、降温/高温阈值、通勤方式(如骑车遇雨提醒路滑、大风提醒逆风)、是否常忘带伞、以及 notes 中与鼻/咽/哮喘/过敏相关的关键词,在空气较差时追加口罩等建议;晚上会额外预告明天。详细规则见 README 中的偏好表与示例输出。

提醒与每日关心

提醒本质是「时间 + 触发条件 + 内容」:intent=text 到点直接说;intent=weather 在到期那一刻用最新预报评估条件(降雨、降温、大风、温差、AQI 等),命中才说。同一天不重复提醒,并有 2 小时补发窗口;可按星期几限定。纯 dsh 没有内置定时器,提醒与预警的「到点响」依赖宿主唤醒 agent;配合 qq-bridge 时,桥接会周期性检查提醒,并在默认 07:00 / 18:00 等时段检查预警(README 有环境变量说明)。纯 Web / TUI / headless dsh 下,agent 仅在自身醒来时顺带检查 weather_reminder(due) / weather_alert。

每日关心由 weather_profile 的 dailyCare(默认开)和 careTime(固定 HH:MM,不设则宿主按作息自适应)控制;定时能力在宿主侧,纯 dsh 环境没有自动推送这一条。

天气源

默认 wttr,可切换 openmeteo 或自定义模块。优先级:环境变量 DSH_WEATHER_PROVIDER,其次 $DSH_HOME/whale-weather/config.json(含 provider、fallback、customModule),失败时按 fallback 重试(默认 wttr → openmeteo)。

可选:外部用户印象快照

若同机其他插件写入只读快照 $DSH_HOME/whale-weather/user-context.json,本插件可读以补全未填字段;profile.json 始终优先,快照超过 7 天未更新视为过期。不依赖该文件也可正常使用。

安装与启用

插件要求 Node 22 / 24(见 README badge 与 package.json 的 engines.node),DSH 0.1.2-rc.1 ~ 0.2.x;0.3 未验证,peer 门禁会拒装。

安装使用预构建包,不需要本地编译。官方命令如下:

dsh plugin --profile web add "https://github.com/fanyingnie2163663/dsh-whale-care/releases/download/v0.5.7/dsh-whale-care-0.5.7.tgz"

装完重启 dsh 后,工具列表中会出现 weather 等五个工具。建议在任意会话里先让 agent 执行一次 weather_profile(action="get"),若本机已有外部印象快照,返回中可能带「印象(来自 xxx)」,可减少重复填写。

插件以当前 dsh 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证,确认是否符合你的环境与合规要求。

典型用法

重启 dsh 后,用自然语言让 agent 记住你是谁,例如:

记住:我在合肥,叫我阿宁,我怕冷,平时骑车上班,有鼻炎

之后可随时提问,例如「今天要带伞吗」「明天穿什么」「这周哪天最冷」。需要关心式一整段时,由 agent 调用 weather_care;需要改城市或关闭每日关心,可通过对话让 agent 使用 weather_profile。

本地可运行演示脚本(需已安装依赖环境):

node scripts/demo.mjs 合肥

(命令来自 package.json 的 demo 脚本,在插件包内执行。)

若使用 dsh + qq-bridge,需在 qq-chat-v2 preset 的白名单 SAFE_EXACT 中加入上述五个工具名,否则默认会拒绝非 MCP 工具;桥接还提供提醒与每日关心的定时唤醒,详见 README「用在哪」一节。

适用场景与注意

适合希望在 DSH 里把天气与空气质量变成个性化、可朗读的关心话术,并需要本地偏好、条件提醒与预报推算型极端预警的开发者或自用部署。标准 dsh 插件,不依赖 qq-bridge;QQ 只是可选宿主。

务必注意:联网拉取 wttr.in / Open-Meteo 等数据;敏感偏好仅本地 JSON,不上传。预警文案标明「预报推算」,不替代官方预警接口。星标与社区目录信息以 SkillHub 插件页 与 GitHub 为准。

结尾

dsh-whale-care 把「先算清楚,再说成舒心的关心」做成可复用的五个工具,天气是第一条链路,后续 README 提到作息、吃饭、喝水、久坐等同套判断逻辑。DeepSeek Harness 社区插件目录独立于 DeepSeek / 幻方,并非官方应用商店;了解详情与更新请以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/fanyingnie2163663/dsh-whale-care
  • GitHub:https://github.com/fanyingnie2163663/dsh-whale-care
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜