前言¶
在 DSH(DeepSeek Harness)環境中運行智能體時,任務狀態往往隱藏在終端窗口之後。當代理任務完成、需要人工輸入或等待審批時,用戶容易錯過這些關鍵狀態。dsh-win-notify 是一個 DSH 宿主端插件,它利用 Windows 的 WinRT Toast Notification API,在上述場景下彈出真正的系統級通知,並將消息持久化到系統的通知中心。
核心功能¶
該插件專注於在需要用戶介入或狀態變更時提供可見反饋。
- 任務完成通知:當用戶可見的根代理狀態從 running 變爲 idle 時,彈出通知。通知正文優先顯示真實會話標題,例如“已完成:「<會話標題>」”。
- 需要您的輸入:當調用
ask_user_question接口時,在提問呈現的瞬間彈出通知,包含問題摘要與數量。 - 需要您的審批:當 Agent 請求操作審批時,彈出通知,包含被請求的工具名與原因。
- 品牌化顯示:通知來源顯示爲“DeepSeek Harness”,並附帶黑底白鯨魚圖標(多幀 16–256px),確保在通知中心中身份明確。
- 噪音控制:子代理、AgentTeams 成員或 workflow worker 的完成、提問和審批一律不打擾用戶。同一代理兩次“任務完成”通知之間至少間隔 10 秒。
- 通知中心持久:Toast 通知會進入系統通知中心,不會隨橫幅自動消失。
- 零依賴:插件本身無外部運行時依賴。通知發送由宿主端事件直出,輔助的 Toast 功能由隨包預編譯的 .NET 4 EXE 完成。若 EXE 丟失,系統自帶的
csc.exe可自動重建。
安裝與啓用¶
安裝插件後需重啓 DSH Web 服務以生效。
dsh plugin --profile web add dsh-win-notify
執行該命令會將插件安裝至 ~/.dsh/profiles/web,並根據配置自動將其加入 dsh.profile.bundles。
典型用法¶
- 任務完成:代理運行結束後,桌面右下角彈出“已完成:xxx”的提示,並保留在通知中心。
- 提問:代理需要你確認選項時,系統會立即彈出“需要您的輸入”的提示。
- 審批:代理嘗試調用敏感工具(如文件讀寫)前,會先彈出“需要您的審批”的提示。
系統要求與限制¶
- 操作系統:僅支持 Windows 10 / 11。
- 非 Windows 環境:在 Linux 或 macOS 上安裝後,插件不會報錯,但會進入空轉狀態,不註冊任何事件。
- 生效方式:安裝或更新後,必須重啓
dsh web進程才能使新功能生效。
驗證¶
若要確保插件構建與邏輯無誤,可運行以下命令進行完整校驗:
npm run check
結語¶
dsh-win-notify 通過利用 Windows 原生通知機制,解決了 DSH 在後臺運行時的狀態可見性問題。它提供了清晰的反饋路徑,並內置了噪音控制機制,適合在需要持續監控智能體狀態的工作流中使用。
GitHub: https://github.com/kongdexu/dsh-win-notify