DeepSeek Harness 用於運行長任務。如果你不盯着對話窗口,就會錯過 agent 完成任務或需要輸入的時刻。dsh-notify 在主機上觀察 DSH 事件總線,並觸發 Windows 原生 Toast 通知,無論瀏覽器標籤頁是聚焦、在後臺還是關閉。
這是什麼¶
這是一款爲 DeepSeek Harness 設計的插件,用於在 agent 完成任務或 harness 等待用戶輸入/授權時提供 Windows 原生桌面通知(Toast)和聲音提示。
- 維護者:
lalilulelo3 - 許可證:MIT
- 定位:客戶端插件,專注於提升長時間運行任務的用戶體驗。
安裝¶
先確認系統環境滿足要求(見注意事項)。安裝過程由 CLI 自動完成,無需手動編輯配置文件。
- 執行安裝命令:
dsh plugin --profile web add @lalilulelo3/dsh-notify
- 安裝或卸載後,必須重啓
dsh web進程才能生效。
核心功能¶
該插件提供以下能力:
- Windows 原生 Toast 通知:利用系統原生能力,在桌面彈出通知。
- 聲音提示:任務結束或等待用戶時播放默認系統通知聲音。
- 事件監聽:
turn/end:Agent 完成一次回合。user-questions/request:Harness 等待用戶回答。approval/asked:Harness 等待用戶授權。
- 觀察模式:插件監聽事件後即返回,不阻塞 Agent 循環,保證 Harness 運行流暢。
- 子代理支持:可配置是否通知子代理會話(默認關閉,避免多代理運行時噪音過大)。
- 跨平臺兼容:在非 Windows 平臺插件會加載但保持靜默,不影響 Harness 啓動。
配置¶
配置文件位於 ~/.dsh/profiles/web/cordis.patch.yml。DSH 支持熱重載,修改後無需重啓即可生效。
以下是幾個典型配置示例:
僅接收特定原因的結束通知:
- id: dsh-notify
config:
reasons: [completed, error]
關閉聲音通知:
- id: dsh-notify
config:
sound: false
常用配置項說明:
| 配置項 | 類型 | 默認值 | 說明 |
|---|---|---|---|
enabled |
boolean | true |
總開關,設爲 false 禁用所有通知 |
turnEnd |
boolean | true |
是否在回合結束時通知 |
question |
boolean | true |
是否在等待回答時通知 |
approval |
boolean | true |
是否在等待授權時通知 |
reasons |
string[] | [completed, error, blocked, max-tokens] |
指定 turn/end 的觸發原因 |
subagents |
boolean | false |
是否通知子代理會話 |
sound |
boolean | true |
是否播放聲音 |
title |
string | DSH |
通知標題 |
工作原理¶
插件在加載時訂閱了 DSH 的內部事件流:
- 事件監聽:監聽
session/event(會話事件流)和user-questions/request(工具調用瀑布流)。 - 觸發通知:當監聽到
turn/end、approval/asked或user-questions/request事件時,插件會生成 Windows Toast 通知。 - 執行機制:通知邏輯通過調用
powershell.exe執行 WinRT 腳本實現。該進程爲“即發即棄”模式,不等待執行結果,確保不會卡頓 Harness 的主循環。
注意事項¶
- 系統要求:僅支持 Windows 10 或 11。
- Profile 要求:必須使用
webprofile 啓動 DeepSeek Harness。 - Node.js 版本:需要 Node.js >= 20。
- 權限與設置:
- 安裝或卸載後,必須重啓
dsh web。 - Windows 通知設置中,請確保“專注助手”或“請勿打擾”已關閉,否則可能收不到通知。
- 安裝或卸載後,必須重啓
- 非 Windows 平臺:插件會加載但無法工作,這是設計行爲,不會導致報錯。
總結¶
dsh-notify 通過觀察模式解決了長時間運行 Harness 時容易漏掉關鍵事件的問題。它不干擾 Agent 的運行邏輯,僅提供桌面層面的反饋。該插件是 DeepSeek Harness 生態中提升可用性的工具之一,更多細節可查閱GitHub 倉庫或社區目錄。