dsh-win-notify:DSH 宿主端 Windows Toast 通知插件

前言

在 DSH(DeepSeek Harness)環境中運行智能體時,任務狀態往往隱藏在終端窗口之後。當代理任務完成、需要人工輸入或等待審批時,用戶容易錯過這些關鍵狀態。dsh-win-notify 是一個 DSH 宿主端插件,它利用 Windows 的 WinRT Toast Notification API,在上述場景下彈出真正的系統級通知,並將消息持久化到系統的通知中心。

核心功能

該插件專注於在需要用戶介入或狀態變更時提供可見反饋。

  1. 任務完成通知:當用戶可見的根代理狀態從 running 變爲 idle 時,彈出通知。通知正文優先顯示真實會話標題,例如“已完成:「<會話標題>」”。
  2. 需要您的輸入:當調用 ask_user_question 接口時,在提問呈現的瞬間彈出通知,包含問題摘要與數量。
  3. 需要您的審批:當 Agent 請求操作審批時,彈出通知,包含被請求的工具名與原因。
  4. 品牌化顯示:通知來源顯示爲“DeepSeek Harness”,並附帶黑底白鯨魚圖標(多幀 16–256px),確保在通知中心中身份明確。
  5. 噪音控制:子代理、AgentTeams 成員或 workflow worker 的完成、提問和審批一律不打擾用戶。同一代理兩次“任務完成”通知之間至少間隔 10 秒。
  6. 通知中心持久:Toast 通知會進入系統通知中心,不會隨橫幅自動消失。
  7. 零依賴:插件本身無外部運行時依賴。通知發送由宿主端事件直出,輔助的 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

羽毛球分组比赛记分
小程序二维码

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

小夜