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
羽毛球分组比赛记分
小程序二维码

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

小夜