前言¶
在使用 DeepSeek Harness Web 進行智能體開發或工作流編排時,開發者經常需要頻繁切換標籤頁來檢查工作區是否完成、是否報錯,或者等待審批與提問。dsh-tab-watchdog 作爲一個持久化插件,解決了這一痛點。它通過在瀏覽器標籤頁標題和圖標上顯示視覺反饋,讓開發者無需切換頁面即可掌握工作區狀態。
插件定位¶
這是一個針對 DeepSeek Harness Web 的客戶端插件,由開發者 andreagosto 維護。它將原本動態插件的邏輯打包爲持久化 bundle,能夠隨 DSH 進程啓動並保持運行。
核心功能¶
- 待處理計數顯示:在瀏覽器標籤頁標題中顯示當前的待處理項目總數。
- 視覺閃爍提示:當有狀態變化時,標籤頁標題和圖標會閃爍綠色或黃色。
- 持久化運行:插件支持 DSH 重啓和瀏覽器刷新(F5),無需重新激活。
- 多事件監聽:監聽工作完成(綠色)、報錯、審批和提問事件。
- Favicon 狀態提示:利用 Favicon(鯨魚圖標)提示狀態變化,不破壞原有圖標。
安裝與啓用¶
該插件通過 npm 包管理。安裝前請確保已安裝 pnpm,或者 dsh plugin 命令會自動處理。
在包含 dsh-tab-watchdog 目錄的終端中執行:
npx @deepseek-ai/dsh@latest plugin --profile web add ./dsh-tab-watchdog
安裝完成後,需要重啓 dsh web 以激活瀏覽器端的邏輯。
移除插件:
npx @deepseek-ai/dsh@latest plugin --profile web remove dsh-tab-watchdog
工作原理¶
插件採用雙半結構,與官方插件保持一致:
- Host 半 (
index.js):負責將插件註冊爲 Loader 條目,通過cordis.patch.yml和dsh.bundle.patch配置,將瀏覽器端代碼引入啓動清單。 - Browser 半 (
lib/client.js):通過window.__ModuleLoader__格式加載,訂閱 Host 轉發的事件並處理狀態邏輯。
觸發邏輯:
- 綠色:當
api-session/status(sessionId, running=false)觸發,表示工作區完成一輪工作。 - 黃色:當出現
api-session/error、待審批或待回答(提問/計劃審查)時觸發。- 注意:對於審批和提問,黃色閃爍不依賴特定的轉發事件,而是輪詢應用自身的
uiSession.pendingInteractions.getSnapshot()狀態。
- 注意:對於審批和提問,黃色閃爍不依賴特定的轉發事件,而是輪詢應用自身的
- 顏色交替:當同時存在“僅完成”和“待處理”狀態時,綠色與黃色會交替閃爍。
Favicon 邏輯:
插件會在加載時捕獲原始鯨魚圖標。當頁面未聚焦且有待處理項目時,原始圖標與綠色/黃色圖標交替顯示,直到用戶回到頁面或待處理項目清零。
注意事項¶
- 無設置界面:該插件不提供 Web 設置頁面,如需禁用,請使用
dsh plugin remove命令或在配置文件中設置disabled: true。 - 瀏覽器端限制:瀏覽器端僅在頁面打開時接收事件。如果頁面未打開,新事件會被記錄爲“待處理”,直到用戶返回頁面。
- 錯誤狀態凍結:如果一個會話報錯,其狀態會凍結在黃色。即使後續該會話狀態變爲
running=true(重啓),錯誤狀態也不會自動降級爲綠色。 - 版本兼容性:當前測試版本爲
@deepseek-ai/dsh 0.1.2-rc.1。