dsh-music-companion:换歌时让 DSH 会话里「她」讲感受,并记听歌流水

前言

在 DSH 里做长期陪伴型会话时,常见做法是等用户主动说话再回复。听歌场景里,用户往往只是切歌、很少打字,会话容易长时间沉默。若用脚本把「正在听《某歌》」塞进上下文,模型多半会复读歌名,不像人在同一副耳机旁随口说一句感受。

dsh-music-companion(陪听)走另一条路:读 Windows 系统媒体会话(SMTC)的元数据,检测到换歌且稳定播放后,往指定 DSH 会话推一句「话头」,让会话里的角色用自己的口吻接一句评价或联想,并把流水与日记交给插件和她分别写入本地文件。下面介绍它做什么、怎么装、怎么配。

这是什么

dsh-music-companion 是 DeepSeek Harness(DSH)的社区插件,维护者为 huajiang114514,在 SkillHub 等目录中归类为「记忆」相关能力。它只监听歌名、歌手、专辑、进度与播放状态,不抓取音频;角色「听」的是元数据,可以就着歌名聊天、吐槽或联想。

插件通过 Cordis patch 挂进 DSH 桌面 profile,当前版本在 package 中为 0.1.1,许可证 MIT,运行环境要求 Node.js >= 20,且 仅支持 Windows(依赖 WinRT Windows.Media.Control,经 powershell.exe 读取)。

核心功能

换歌检测与「话头」推送

轮询系统媒体会话(默认每 3 秒),当识别到换歌且在新曲目上稳定播放达到「稳定秒」(默认 8 秒)后,向配置的「目标会话」推送一段提示,大意是:耳机里换歌了,请当作自己也戴着同一副耳机,说一句真实感受或评价,不要复述歌名、也不要问「你在听什么」;说完把感受追加到 ~/.dsh/music-diary.md。

日志中可见类似输出:

[20:15:07] 推出去了:《一首歌》- 某位歌手

防抖、限额与口味总结

可通过配置控制「冷却秒」(两次开口最小间隔)、「每日上限」(默认一天最多 80 次)、「总结每 N 首」(每 N 首改用总结口味的话头,0 为关闭)、「每周总结」(每周第一次开口时更新「口味画像」)。「播放器」字段用正则过滤媒体源(默认 QQMusic),避免把 B 站客户端或浏览器视频误判为换歌。

本地记录

文件 写入方 内容
~/.dsh/music-history.jsonl 插件 ISO 时间、歌名、歌手、专辑、时长、播放器
~/.dsh/music-diary.md 会话中的模型 按天分小节(如 ## 10-30),每首歌一行感受;末尾「口味画像」
~/.dsh/music-companion.log 插件 是否推送、未推送原因、报错

安装与启用

安装前请自行查看 GitHub 仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,会调用 PowerShell 并往指定会话注入消息。

推荐从 GitHub 安装(命令来自项目 README):

dsh plugin --profile desktop add "github:huajiang114514/dsh-music-companion"

也可使用 Release 中的 tgz,或本地开发时用 link:

dsh plugin --profile desktop add "file:C:\path\dsh-music-companion-0.1.0.tgz"
dsh plugin --profile desktop add "link:C:\path\to\dsh-music-companion"

装完后在 ~/.dsh/music-companion.json 中写配置(可省略字段,用默认值),重启 DSH 后生效。其中「目标会话」为必填项,其余字段均有文档默认值。

配置要点

配置文件路径:~/.dsh/music-companion.json。会话 id 可在 DSH 设置里打开会话后从地址栏或会话信息中的 session-... 获取,或查看 ~/.dsh/sessions/ 下目录名;带不带 session- 前缀均可。

字段 默认 说明
开启 true 总开关
目标会话 "" 必填,目标 DSH 会话 id
稳定秒 8 换歌后稳定播放这么久才推送
冷却秒 0 两次开口最小间隔;0 表示每首都可能聊
每日上限 80 一天最多推送次数
轮询秒 3 轮询播放器间隔
总结每N首 20 每 N 首用总结文案;0 关闭
每周总结 true 每周第一次开口时更新口味画像
分日小节 true 换日在 diary 中开新日期小节
播放器 QQMusic 正则匹配媒体会话,如 QQMusic\|CloudMusic
文案 / 总结文案 见源码 单首与总结用的话头,占位符 {歌名} {歌手} {专辑}

典型用法

  1. 在 Windows 上安装插件并填写「目标会话」。
  2. 用 QQ 音乐、网易云、Spotify 或 Windows 媒体播放器等支持 SMTC 的客户端后台播放;快速切歌时「稳定秒」会避免连环推送。
  3. 换歌稳定后,在目标会话中查看模型接话,并在 music-diary.md 中查看追加的感受与口味画像;排查问题时看 music-companion.log。

README 说明:若同会话还装了 QQ 桥等转发插件,陪听推出来的回复也可能被转到 QQ;不需要时可于转发插件中排除该会话,或为音乐话题单独开一个会话。

适用场景与注意

适合希望在 DSH 桌面 profile 里做「陪听」、并把听歌习惯沉淀为本地 jsonl 与 Markdown 日记的 Windows 用户。不支持 Linux/macOS;部分老播放器或网页播放器可能读不到会话,此时插件会安静不动作。

成本方面,README 按 DeepSeek 定价估算单次开口约一分钱量级,并提到上下文多命中缓存。社区插件与 DeepSeek、幻方无官方从属关系;目录信息可参考 SkillHub 插件页,源码与 issue 在 GitHub。

卸载:

dsh plugin --profile desktop remove dsh-music-companion

卸载不会删除 music-history.jsonl 与 music-diary.md。

链接

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

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

小夜