前言¶
在 DeepSeek Harness 里做长期陪伴型任务时,常见做法是手写 Schedule、自己接第三方 API,再在对话里拼一段固定话术。听歌场景更麻烦:既要账号登录、又要真实试听,还要把结果写回对话并留本地记录。下面介绍社区插件 dsh-netease-daily(维护者 zxcvbnmlxy),它把网易云「每日推荐」、本机 mpv 静默试听和当前 Harness 会话里的文本模型串成一条可配置的日报流水线。
这是什么¶
dsh-netease-daily 是 DeepSeek Harness 的插件包(npm 名 dsh-netease-daily,当前资料中版本 0.2.3,MIT 许可证)。目标很明确:按北京时间默认定时(21:00),从你已登录的网易云「每日推荐」里取 5 首候选,每首在本机用播放器试听(默认设置页为 15 秒,可调 5–120 秒;README 任务示例为每首 30 秒),由 DeepSeek 选出 3 首、写推荐理由和歌曲链接,发到开启任务的 Harness 对话;日报另存本机。你可以用「喜欢 / 不喜欢」反馈,后续选歌会参考本地偏好,并避开近 14 天已推荐过的歌。
说明两点边界,避免误解能力边界:
- 这里的「听歌」是本机播放器真实播放(静默模式见下文),DeepSeek 依据歌曲资料、可用歌词和你的偏好写理由;文本模型不会因为播放了音乐就获得音频理解能力。
- 插件使用社区维护的网易云 API 包(
@neteasecloudmusicapienhanced/api4.41.1),不是网易云官方插件;不提交虚假播放记录,不绕过会员或版权限制,不自动改收藏。
面向环境:README 写明已针对 Harness Desktop 0.2.1-rc.2 的工具与排程接口编写;需要 Node.js 22.19+(建议 24),engines.dsh 为 >=0.2.1-rc.2 <0.3.0。无需另填 DeepSeek API Key,使用当前 Harness 会话的模型。SkillHub 目录分类为「模型推理」,与「用会话模型做选歌与文案」一致。
核心功能¶
定时日报与偏好¶
- 在指定 Harness 对话里启用任务后,由 Harness 原生 Schedule 持久化定时;Harness 须在运行且本机联网。
- 同一天重复触发会复用当天候选;已完成的日报不重复改写;去重后没有新歌会如实告知。
- netease_feedback 只记录本机偏好,影响后续选歌。
设置页(重启 DSH 后出现「每日听歌」)¶
安装或升级后重启一次 DSH,左侧出现「每日听歌」。可变项集中在面板,保存后立即生效、重启后保留,不必改代码:
- 每日运行时间(默认 21:00)与启用开关;
- 推荐描述(心情 / 场景 / 风格),AI 据此从每日推荐和关键词搜索里挑歌;
- mpv 就绪检测、可选 winget 安装;播放器路径留空则自动查找;
- 日志目录(不可写会在面板报红);
- 试听时长(默认 15 秒);
- 扫码登录、任务开关与下次运行时间;
- 面板 「最近推荐」:今日 3 首(带评分,点歌名可打开网易云)及近 7 天折叠历史。
静默试听与 AI 评价¶
播放使用:
mpv --ao=null --volume=0 --mute=yes --no-video
解码与进度照常推进,但不占用音频设备、不弹窗,全程没有声音。AI 评价会在文案中明确标注未直接听到音频;未安装 mpv 时返回 PLAYER_NOT_READY,设置页提示安装,不会静默跳过。
对话工具(日常使用)¶
| 意图 | 工具名 |
|---|---|
| 按描述推荐 | netease_plan |
| 搜歌 | netease_search |
| 静默试听 | netease_listen |
| 写评价 | netease_evaluate |
| 保存推荐 | netease_daily_save |
| 改设置 | netease_settings |
| 喜欢 / 不喜欢 | netease_feedback |
| 检查状态 | netease_status |
点歌与 VIP 降级¶
「最近推荐」里歌名对应「打开并播放」逻辑:经典桌面版可通过本地 Chromium DevTools Protocol(127.0.0.1:9223) 在客户端内搜索并点播放;Microsoft Store(MSIX)版无法定位到单曲,会打开应用并把「歌名 歌手」复制到剪贴板;未装客户端则回退网页 https://music.163.com/#/song?id=<id> 并提示 VIP 限制。对话里也可说「打开第 2 首」(netease_open)。
安装与启用¶
仅安装插件不会自行创建任务;需先登录网易云,再在目标对话里启用 Schedule。
从 npm 安装¶
dsh plugin --profile <profile> add dsh-netease-daily
npm 最新版本以 npm view dsh-netease-daily version 为准。pnpm 11 起默认 minimumReleaseAge: 1440 时,刚发布的新版可用 dsh-netease-daily@<版本号> 显式指定。市场登记:https://dsh-plugin.market/plugin/zxcvbnmlxy/dsh-netease-daily。
从 GitHub 安装¶
固定提交:
dsh plugin --profile <profile> add github:zxcvbnmlxy/dsh-netease-daily#9843d6f
或跟踪 main:
dsh plugin --profile <profile> add github:zxcvbnmlxy/dsh-netease-daily
profile 已启用 plugin_manager 时,也可在对话里说:安装 bundle github:zxcvbnmlxy/dsh-netease-daily,然后确认 netease_status 工具可用。
登录与开启任务¶
扫码登录(任选其一):
- 插件目录运行
npm.cmd run login,用网易云 App 扫浏览器二维码;或 - 在 Harness 里:调用 netease_login_start 显示二维码,扫码后调用 netease_login_check。
在准备接收日报的 Harness 对话里说(README 示例):
启用网易云每日听歌任务:北京时间每天 21:00,从我的每日推荐挑 5 首,每首试听 30 秒,给我推荐 3 首并说明理由。现在先执行一次。
这会调用 netease_schedule_enable;以工具返回的任务 ID 和下次执行时间为准。
本地开发目录安装、独立 CLI 的 link: / .tgz 方式见 GitHub README,此处不展开。
配置与数据位置¶
默认数据目录:%USERPROFILE%\.dsh\netease-daily(尊重 DSH_HOME),可用环境变量 DSH_NETEASE_DATA_DIR 覆盖。可变项在 settings.json(与设置页同一份存储)。主要文件:
logs/events.jsonl:追加事件;logs/YYYY-MM-DD.md、logs/latest.md、logs/index.html(最近 30 天索引);- 日志保留 30 天,超期会在下次写入时清理;
credentials.json:登录凭证,仅本机;history.json:候选、播放、推荐与偏好。
常见错误码:NOT_LOGGED_IN、PLAYER_NOT_READY、LOG_DIR_UNWRITABLE;设置页对应项会报红,不会静默失败。
适用场景与注意¶
适合:已在用 Harness Desktop / CLI、希望每天固定时间把「网易云每日推荐 + 本机试听 + 模型写理由」自动化,并愿意在本机保存日志与偏好的人。
安装前建议自行查看 源码与许可证,并理解插件以当前 dsh 进程权限运行;网易云 API 在独立进程中请求,登录失效需重新扫码。SkillHub 目录(https://www.skillhub.cn/plugins/zxcvbnmlxy/dsh-netease-daily)是社区索引,与 DeepSeek / 幻方无官方从属关系。
黑箱测试清单见仓库 docs/blackbox-test-checklist.md。
结尾¶
经过上面的步骤,你会得到一条可排程的「每日三首」流水线:登录一次、在对话里启用任务,其余时间交给 Schedule、mpv 静默试听和 Harness 会话模型。目录页:https://www.skillhub.cn/plugins/zxcvbnmlxy/dsh-netease-daily;源码与完整说明:https://github.com/zxcvbnmlxy/dsh-netease-daily。