前言¶
DeepSeek Harness (DSH) 提供了插件化架構。在長時間運行或調試時,開發者往往需要明確知道當前 Agent 的對話輪次是否結束。dsh-voice-notify 是一個宿主側插件,它掛接 DSH 原生的“輪次收尾”擴展點,在對話真正結束時觸發中文語音播報。
核心功能¶
- 輪次收尾播報:監聽
agent/turn-stopping事件,在對話真正結束時播報中文語音。 - 內置語音庫:內置 20 條“曉曉·溫暖”風格的疊詞語音(WAV 格式)。
- 可視化配置:提供設置頁,支持總開關、子代理輪次過濾、最小間隔、固定語音選擇等。
- 自定義擴展:支持指定自定義語音目錄和腳本。
- 輪次過濾與間隔:支持子代理輪次過濾,並可通過
minIntervalMs防止頻繁播報。
安裝與啓用¶
插件僅支持 Windows 平臺。
安裝命令¶
在解壓後的目錄下運行:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
守護熱掛載(推薦)¶
如需在運行中的 DSH 實例中立即生效(無需重啓),可使用守護熱掛載模式:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Hot
工作原理¶
- 掛接縫:
agent/turn-stopping(宿主serial擴展點,一輪真正收尾時派發)。 - 放音:隨機播一條內置 WAV;可選追加自己的語音目錄。
- 非阻塞:
spawn後unref(),立刻返回,絕不等它放完。 - 容錯:任何異常都吞掉只記日誌,絕不影響任務收尾。
配置¶
配置項位於掛載條目的 config 中:
- id: voice-notify
name: dsh-voice-notify
config:
enabled: true # 總開關
includeSubagents: false # 子代理輪次是否也響
minIntervalMs: 4000 # 兩條提醒的最小間隔
clip: '' # 固定一條,如 'done-3';留空則隨機
clipDir: '' # 額外語音目錄,*.wav 一起進隨機池
voiceScript: '' # 覆蓋放音腳本(默認包內 lib/play.ps1)
注意事項¶
- 平臺限制:僅支持 Windows 平臺。
- 子代理默認行爲:子代理輪次默認不響,需配置
includeSubagents: true。 - 最小間隔:默認爲 4000ms,防止頻繁播報。
- React 依賴:React 爲可選依賴。
- 日誌位置:日誌文件位於
$DSH_HOME/voice-notify.log。