DeepSeek Harness 插件:dsh-notifier

前言

在 DeepSeek Harness (DSH) 的智能體開發與運行場景中,審批任務、任務完成狀態或錯誤信息往往容易被後臺進程淹沒。dsh-notifier 插件解決了這一問題,它通過瀏覽器 Notification API 和系統原生 Toast(Windows PowerShell WinRT / macOS osascript / Linux notify-send)提供獨立的通知渠道,確保用戶即使不在瀏覽器前也能收到關鍵事件提醒。本插件 fork 自 wingsky-1/dsh-notifier,爲 DSH 提供了輕量級的事件分發能力。

安裝

安裝前需確認 dsh web 已正常啓動。本插件爲獨立構建,不依賴上游插件倉庫。

dsh plugin --profile web add @jypjypjypjyp/dsh-notifier

安裝/卸載/更新後需重啓一次 dsh web 以使 bundle 生效。若未全局安裝 dsh,可使用 npx 臨時拉起(需本機安裝 pnpm 與 Node.js):

npx @deepseek-ai/dsh plugin --profile web add @jypjypjypjyp/dsh-notifier

訪問方式

插件所有接口均受 loopback 圍欄 保護,僅接受本機迴環(127.0.0.1 / localhost)調用。因此從局域網瀏覽器直連 HTTP 接口會返回 403,通知通道不工作。

請選用下列任一形態訪問:

形態 訪問方式 說明
本機桌面 http://127.0.0.1:3080 安全上下文,瀏覽器通知與系統通知均可用
局域網 HTTPS https://<IP>:3443 需配合 dsh-lan-proxy,滿足安全上下文與迴環校驗
隧道 ssh -L 3080:127.0.0.1:3080 <服務器> SSH 隧道轉發後訪問本機地址

核心功能

插件通過雙通道分發事件,並支持多種管理策略。

1. 事件類型

  • 向你提問(默認開):ask_user_question / GUI 提問彈窗觸發時通知。
  • 審批提醒:真實審批路徑觸發,含任務標題、工具名、申請理由與操作提示。
  • 完成提醒:任務從運行到空閒時通知。子代理完成需開啓 notifySubagentDone(默認關)。
  • 錯誤提醒:任務出錯時通知,錯誤信息會脫敏處理(前 300 字符)。同類錯誤 60 秒內自動合併。
  • 輪次完成(默認關):agent/turn-stopping 時通知。

2. 通知渠道

  • 系統通知:Windows 使用 PowerShell WinRT,macOS 使用 osascript,Linux 使用 notify-send,均無需額外安裝。
  • 瀏覽器通知:通過 SSE 推送,僅在頁面隱藏時彈出。
  • 降級策略:非安全上下文(如局域網 HTTP)自動降級爲頁面內橫幅、提示音及標題提醒。

3. 管理策略

  • 免打擾時段:支持跨午夜設置(如 22:00-08:00),可配置緊急例外。
  • 完成風暴聚合:多任務/子代理同時收尾時聚合爲“另有 N 個任務已完成”,避免刷屏。
  • 審批超時二次提醒:等待超過 askRemindMin 分鐘(默認 5)未處理時再次提醒。

配置與接口

配置文件默認位於 ~/.dsh/dsh-notifier.json,通過 /api/dsh-notifier/config 接口讀寫。

常用配置項:

{
  "notifyAsk": true,
  "notifyTaskDone": true,
  "notifyTaskError": true,
  "notifySubagentDone": false,
  "quietHours": { "enabled": false, "start": "22:00", "end": "08:00", "allowKinds": [] },
  "errorMergeWindowMs": 60000,
  "askRemindMin": 5
}

接口列表:
- GET/PUT /api/dsh-notifier/config:讀取/保存配置。
- GET /api/dsh-notifier/events:SSE 訂閱通知幀。
- POST /api/dsh-notifier/test:測試通知(繞過免打擾)。
- GET /api/dsh-notifier/history:獲取最近通知記錄(最多 200 條)。
- DELETE /api/dsh-notifier/history:清空記錄。
- GET /api/dsh-notifier/health:健康檢查。

安全與限制

  • 安全上下文:瀏覽器通知需 HTTPS 或 localhost。iOS Safari 普通標籤頁無 Web Notifications API,需添加到主屏幕獲得 PWA 級通知。
  • Loopback 保護:所有接口拒絕非本機調用。
  • 數據脫敏:錯誤通知、審批理由、提問文本中包含的路徑、私鑰、令牌、密碼等敏感信息會被脫敏爲佔位符。
  • 通知目標區分:瀏覽器通知推送到當前瀏覽器客戶端;系統通知(Toast)彈在 dsh web 運行的宿主機器桌面。

驗證

本地健康檢查:

curl -s http://127.0.0.1:3080/api/dsh-notifier/health
羽毛球分组比赛记分
小程序二维码

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

小夜