dsh-notify 插件:桌面與遠程瀏覽器通知

在 DeepSeek Harness (DSH) 中運行智能體時,開發者需要及時獲知任務狀態變化。僅靠瀏覽器刷新或終端日誌容易遺漏信息,尤其是當需要用戶介入時。dsh-notify 插件通過桌面原生通知和遠程瀏覽器推送,補充了這一監控能力。

是什麼

這是一個 DSH 插件,由 Dawn388887 維護。它提供桌面 Toast 通知和遠程瀏覽器通知,用於響應 root-session 智能體的完成、錯誤或等待用戶輸入的狀態。

核心功能

插件主要處理以下幾類事件:

  1. 任務完成:噹噹前正在查看的 root-session 智能體從運行狀態變爲空閒狀態時,觸發桌面通知。
  2. 錯誤反饋:當智能體出錯時觸發通知。系統會針對每個回合/步驟進行去重,最多記錄 64 條錯誤信息。
  3. 等待用戶:當 ask_user_question 工具實際開始等待用戶回答時觸發通知。去重基於工具調用,如果啓動立即失敗則不通知。
  4. 遠程交互提醒:在任何前臺或後臺的 root-session 中,只要出現需要用戶關注的 question 或 plan-review 交互,瀏覽器端就會收到通知。
  5. 命令與控制:
    • 提供 /notify status 查看狀態。
    • 提供 /notify on|off 開關遠程通知。
    • 提供 /notify test 進行測試。
  6. 全局開關:在設置面板的“遠程通知”選項中有一個全局開關,與 /notify 命令共享邏輯,狀態持久化存儲在 ~/.dsh/notify-state.json。
  7. 會話過濾:僅 root 會話觸發通知,子代理保持靜默。

安裝與啓用

插件是純本地插件,通過 Cordis 補丁注入。

# 假設插件位於 ~/.dsh/plugins/dsh-notify
dsh plugin --profile web add ~/.dsh/plugins/dsh-notify

或者,在 Cordis composition patch 中插入:

- insert:
    - id: notify
      name: dsh-notify
      inject: [webServer]

修改 composition 或更新插件後,需要重啓 dsh web 並刷新瀏覽器頁面。

典型用法

桌面端:
需要 Windows + WinRT 環境。任務完成、出錯或等待用戶回答時,會彈出原生 WinRT Toast,並播放默認通知音效。

遠程設備:
瀏覽器頁面使用 Service Worker (/dsh-notify/sw.js)。完成和錯誤狀態跟隨當前查看的會話;問題與計劃審查等待狀態則監聽所有 root 會話。

權限與開關:
瀏覽器首次使用時會請求通知權限。如果之前被拒絕,需在站點設置中手動開啓。控制開關可通過設置頁面的“遠程通知”選項,或直接使用 /notify off 命令。遠程頁面在標籤頁重新可見時會自動同步開關狀態。

注意事項

  1. 環境依賴:桌面通知功能依賴 Windows 和 WinRT,無法在其他系統上使用。
  2. 版本兼容:v1.2.1 修復了 DSH 0.1.7-rc.1 版本下的啓動錯誤;所有會話監聽邏輯會優先讀取 uiSession.sessionStatus (DSH 0.1.7),若不可用則回退到 uiSession.pendingInteractions API。
  3. 測試方式:所有測試均爲離線模擬,無需運行實際的 DSH Web 實例即可驗證邏輯。

總結

dsh-notify 解決了 DSH 開發中狀態監控不及時的問題,通過統一的桌面與遠程通知機制,幫助開發者更高效地響應智能體的運行狀態。

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

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

小夜