前言¶
在 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 |
文案 / 總結文案 |
見源碼 | 單首與總結用的話頭,佔位符 {歌名} {歌手} {專輯} |
典型用法¶
- 在 Windows 上安裝插件並填寫「目標會話」。
- 用 QQ 音樂、網易雲、Spotify 或 Windows 媒體播放器等支持 SMTC 的客戶端後臺播放;快速切歌時「穩定秒」會避免連環推送。
- 換歌穩定後,在目標會話中查看模型接話,並在
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