Frost-Reed/blocker-notify:DSH 阻塞提醒插件

前言

在 DeepSeek Harness(DSH)中運行 Agent 時,經常會遇到需要用戶介入的狀態:請求審批、等待回答提問、等待計劃審閱。如果當時網頁端沒有聚焦,或者你暫時離開屏幕,這些狀態很容易錯過,只能不斷切回頁面檢查。

Frost-Reed/blocker-notify 針對這個場景:當 Agent 在工作中被卡住、需要用戶介入時,在網頁端即時提醒,讓你不用一直盯着屏幕等待操作。

這是什麼

Frost-Reed/blocker-notify 是 DSH 的一個插件,倉庫由 Frost-Reed 維護,許可證爲 MIT,package.json 版本爲 0.3.0。

它主要處理“可操作阻塞”:當 Agent 需要審批、提問或計劃審閱等用戶介入時,在網頁端給出提醒;對於沙箱拒絕 FS_SANDBOX_DENIED,只記錄到 Host 日誌,不打擾用戶。

核心功能

下面介紹它已覈實的主要能力。

全局橫幅

當存在被阻塞會話時,網頁端會出現全局橫幅,列出被阻塞會話。點擊條目會跳轉會話,並移除該條提醒。

工作區條目閃爍

工作區會話條目上會出現黃色狀態點閃爍,用於提示該會話需要關注。阻塞解決後,閃爍自動停止。

提示音

新增可操作阻塞出現時,頁面會播放 Web Audio 短提示音。提示音不依賴音頻文件;如果瀏覽器未解鎖自動播放,或當前環境不支持,會靜默降級。

操作系統級通知

新增可操作阻塞出現時,插件會通過 Notification API 彈出操作系統級通知。點擊通知可聚焦 DSH 頁面。

系統通知依賴瀏覽器 Notification API 權限。權限未開啓或被拒絕時,橫幅會提供開啓或修復操作。

Host 半行爲

Host 半會捕獲審批請求、工具結果,並維護進程內告警日誌。

對於沙箱拒絕 FS_SANDBOX_DENIED,插件只在 Host 日誌中記錄,不觸發橫幅、提示音或系統通知。

安裝與啓用

插件支持動態插件方式快速啓用,也支持正式 bundle 安裝持久生效。

動態啓用

動態方式適合先試用。步驟如下:

  1. 獲取源碼:
git clone https://github.com/Frost-Reed/blocker-notify
  1. 在會話中讓 Agent 讀取 dynamic/host.js 與 dynamic/client.js,調用 cordis_define、cordis_run,並在網頁端批准 Client 半運行請求。

動態插件是進程內存態。DSH 重啓後需要重新啓用。

正式安裝

正式安裝命令如下:

dsh plugin --profile web add github:Frost-Reed/blocker-notify

如果從本地源碼安裝,可以使用:

dsh plugin --profile web add file:<本地克隆路徑>

安裝後重啓:

dsh web

正式安裝後,如果新增依賴或層,需要重啓 dsh web。

如果 dsh 不在 PATH 中,可以將命令中的 dsh 換成 pnpm dsh 或 npx @deepseek-ai/dsh。

從 git 安裝時可能運行 prepare 構建腳本。如果當前環境使用 pnpm,可能需要一次性在 allowBuilds 中授權;也可以使用 npm 包或 pnpm pack tarball 安裝預構建產物。

典型用法

安裝或動態啓用後,可以用下面幾個場景自測。

自測提問

讓 Agent 調用一次 ask_user_question。

預期結果:橫幅、提示音、系統通知出現。

自測審批

把審批策略設爲 ask,沙箱設爲 read-only,讓 Agent 嘗試帶 sandbox_permissions 的寫入。

預期結果:出現可操作審批阻塞提醒。

自測沙箱拒絕

讓 Agent 不帶提權參數寫入被拒文件。

預期結果:靜默,不觸發橫幅、提示音或系統通知。

適用場景與注意

這個插件適合以下場景:

  • 在 DSH 網頁端運行 Agent;
  • 經常遇到審批、提問或計劃審閱等需要用戶介入的事件;
  • 希望頁面不聚焦或短暫離開時也能收到提醒;
  • 希望將“可操作事件”和“已完結的沙箱拒絕”區分開。

使用前需要注意:

  • 插件以當前 dsh 進程權限運行。安裝前應檢查源碼、許可證和依賴關係。
  • 插件只提醒審批、提問、計劃審閱等可操作事件;沙箱拒絕保持靜默。
  • 提示音使用 Web Audio。瀏覽器未解鎖自動播放或環境不支持時,會靜默降級。
  • 操作系統級通知依賴 Notification API 權限。未開啓或被拒絕時,橫幅提供開啓或修復操作。
  • 動態插件是進程內存態,DSH 重啓後需要重新啓用。
  • 正式安裝後,新增依賴或層需要重啓 dsh web。
  • package.json 聲明的 peerDependencies 包括 @deepseek-ai/cordis、@deepseek-ai/dsh-client-runtime、react。

鏈接

社區目錄頁:

https://www.skillhub.cn/plugins/Frost-Reed/blocker-notify

GitHub 倉庫:

https://github.com/Frost-Reed/blocker-notify

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

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

小夜