dsh-notify-xc:DSH 瀏覽器通知插件

前言

DeepSeek Harness (DSH) 採用插件化架構,允許擴展功能。當 Agent 在後臺運行會話或處理任務時,開發者可能無法及時關注會話狀態變化。dsh-notify-xc 插件通過瀏覽器 Notification API,在任務完成、運行出錯或需要人工干預時彈出系統級通知,解決遺漏狀態更新的問題。

這是什麼

這是一個由 xchannel1987 維護的瀏覽器端插件,基於 dsh-agent-notify 兼容重寫,適配 DSH 0.1.2-alpha.4 版本。插件純運行在瀏覽器端(host half 爲空),不依賴構建步驟,遵循 MIT 協議。

核心功能

任務完成通知

當會話從運行中變爲停止時觸發。通知內容包含會話標題及最後一條回覆摘要。插件會對完成狀態進行嚴格判定:如果會話將任務交給子代理(工作流、Ralph 或後臺 job)後“讓出回合”,此時不計爲完成,需等所有後臺任務結束後再判定。常駐的後臺 shell 任務(如 dev server)不參與此判定。

運行出錯通知

當會話以 session 級錯誤結束時(lastAgentError),彈出錯誤通知。通知摘要會展示錯誤信息(如 429 限流、認證失敗)。任務完成與運行出錯互斥,同一輪次只發一種通知。

需要輸入通知

當 Agent 等待用戶操作(question、approval、plan-review)時立即提醒。支持“常駐模式”配置,通知不會自動消失,直到用戶處理。

點擊直達會話

點擊系統通知氣泡,瀏覽器會自動聚焦 DSH 頁面並打開對應的會話,方便快速響應。

通知顯示工作區歸屬

開啓後,通知標題會帶上 [工作區名] 前綴,在多項目併發運行時便於快速定位。

通知類型可配置

任務完成、需要輸入、運行出錯三類通知擁有獨立開關,互不影響。設置項包括“包含子代理通知”、“等子代理時不通知”、“需要輸入通知常駐”等。

防誤報設計

插件通過基線機制、去重邏輯和寬限期(1.2s)複檢來防止誤報。頁面加載或重連後的首個快照作爲基線,不重放歷史事件;若會話在寬限期內被後臺結果喚醒,則取消完成通知。排查時可使用控制台命令 window.__dshNotifyXc.probe('<sessionId>') 檢查會話狀態。

一鍵清空通知

當通知數量超過 3 條時,頁面右上角會出現帶有計數徽標的“清空通知”浮動按鈕,點擊即可關閉當前會話內所有本插件發出的通知。

安裝與啓用

使用 DSH CLI 安裝:

dsh plugin --profile web add dsh-notify-xc

安裝後重啓 DSH,刷新瀏覽器頁面即可生效。

典型用法

  1. 打開 DSH 設置,進入“任務通知”分區。
  2. 檢查通知類型開關(默認全開),確認系統通知權限顯示“已授權”。
  3. 點擊“測試”按鈕驗證通知鏈路是否正常。
  4. 在實際使用中,Agent 完成任務、報錯或需要你批准時,瀏覽器通知中心會自動彈出氣泡。

注意事項

  • 平臺兼容性:依賴瀏覽器 Notification API,目前支持桌面 Edge 和 Chrome。移動瀏覽器不支持系統通知時,設置頁會自動置灰並提示。
  • iOS 限制:iOS 的系統通知僅支持 Service Worker Web Push,本插件未接入,因此不支持 iOS。
  • 權限請求:首次點擊頁面會自動請求通知權限。
  • 清理限制:點擊通知清空按鈕僅能清理當前會話內引用仍存活的系統通知,頁面刷新後留在通知中心的歷史氣泡腳本無法回收,需手動清除。

總結

dsh-notify-xc 爲 DSH 提供了標準化的系統級通知能力,幫助開發者及時掌握 Agent 的運行狀態。通過防誤報機制和靈活的配置,它能在提升開發效率的同時保持通知的準確度。

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

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

小夜