前言¶
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,刷新瀏覽器頁面即可生效。
典型用法¶
- 打開 DSH 設置,進入“任務通知”分區。
- 檢查通知類型開關(默認全開),確認系統通知權限顯示“已授權”。
- 點擊“測試”按鈕驗證通知鏈路是否正常。
- 在實際使用中,Agent 完成任務、報錯或需要你批准時,瀏覽器通知中心會自動彈出氣泡。
注意事項¶
- 平臺兼容性:依賴瀏覽器
NotificationAPI,目前支持桌面 Edge 和 Chrome。移動瀏覽器不支持系統通知時,設置頁會自動置灰並提示。 - iOS 限制:iOS 的系統通知僅支持 Service Worker Web Push,本插件未接入,因此不支持 iOS。
- 權限請求:首次點擊頁面會自動請求通知權限。
- 清理限制:點擊通知清空按鈕僅能清理當前會話內引用仍存活的系統通知,頁面刷新後留在通知中心的歷史氣泡腳本無法回收,需手動清除。
總結¶
dsh-notify-xc 爲 DSH 提供了標準化的系統級通知能力,幫助開發者及時掌握 Agent 的運行狀態。通過防誤報機制和靈活的配置,它能在提升開發效率的同時保持通知的準確度。