前言¶
DeepSeek Harness (DSH) 能夠捕獲會話中的特定事件,例如任務完成、報錯或等待審批。在沒有外部干預的情況下,這些事件僅存在於當前的會話或窗口中。如果你同時運行多個並行會話,或者將窗口最小化到後臺,這些事件很容易被忽略。
goodandready/dsh-plugin-notify 插件旨在解決這一隔離問題。它通過五種靈活的通知層,將事件反饋從會話內部擴展到瀏覽器外部。
插件簡介¶
插件名稱爲 @goodandready/dsh-plugin-notify,由 GooDAnDReaDY 維護,屬於聯網工具分類。它提供音頻提示、跨會話彈窗、桌面原生推送、遠程 IM Webhook 以及 Web Push (PWA) 等功能,覆蓋任務完成、報錯和審批等待等場景。
核心功能¶
插件主要提供以下能力:
- 音頻提示:利用 Web Audio API 生成五聲音階提示音,無需加載外部音頻文件。
- 跨會話彈窗:在屏幕上顯示浮動橫幅,橫幅包含“跳轉會話”按鈕,可直接跳轉到觸發事件的具體會話。
- 桌面/操作系統推送:通過 HTML5 Notification API,在 Windows、macOS、Linux 和 DSH Desktop 上發送原生通知,點擊通知可聚焦窗口或切換會話。
- 遠程 IM Webhooks:向飛書、企業微信、釘釘、Slack、Discord 或自定義端點發送 JSON 格式的 Webhook 請求。
- Web Push (PWA):利用 W3C Push API 和 Service Worker 實現後臺推送,即使瀏覽器標籤頁關閉也能接收通知。此功能需要 HTTPS 環境或 localhost。
- 其他功能:支持 Do Not Disturb (DND) 窗口設置、排除特定會話前綴,以及通過 Server-Sent Events (SSE) 實現實時通知流。
安裝¶
通過 DSH Web Profile 安裝:
dsh plugin --profile web add @goodandready/dsh-plugin-notify
安裝後,重啓 Web Profile 使客戶端加載生效。隨後進入 Settings → Plugins → Notify 配置插件。
配置與用法¶
Webhook 配置¶
所有的 Webhook URL 必須配置在 Settings → Credentials 中。在插件配置卡片中,只需填寫對應的憑證名稱。
YAML 配置示例¶
在插件的配置 YAML 中,可以啓用各類通知並設置參數:
- id: plugin-notify
name: '@goodandready/dsh-plugin-notify'
config:
enableSound: false
enableToasts: false
enableDesktopNotifications: false
notifyBackgroundOnly: false
webhooks:
feishu: NOTIFY_FEISHU_WEBHOOK
wecom: NOTIFY_WECOM_WEBHOOK
dingtalk: NOTIFY_DINGTALK_WEBHOOK
slack: NOTIFY_SLACK_WEBHOOK
discord: NOTIFY_DISCORD_WEBHOOK
custom: NOTIFY_CUSTOM_WEBHOOK
events: [task_done, error, approval_requested]
local: true
timeoutMs: 5000
dnd:
start: ''
end: ''
includeSession: true
includeDuration: true
excludeSessionPrefixes: []
webPush:
enabled: false
onlyWhenAway: true
subject: 'mailto:notify@localhost'
stateFile: ''
VAPID 密鑰管理¶
若使用 Web Push 功能,VAPID 密鑰默認在首次使用時生成並持久化。也可通過環境變量手動管理:
* DSH_NOTIFY_VAPID_PUBLIC_KEY
* DSH_NOTIFY_VAPID_PRIVATE_KEY
本地化¶
UI 支持英語 和中文。俄語界面由 dsh-russian-lang 運行時提供。
注意事項¶
- 運行環境:插件依賴 Node.js 20 或更高版本。
- Web Push 限制:Web Push 需要 HTTPS 協議支持(本地開發除外)。在 iOS 設備上,PWA 必須添加到主屏幕(iOS 16.4+)才能正常接收後臺推送。
- 錯誤處理:Webhook 請求失敗僅記錄日誌,不會重試,也不會阻塞 DSH 的代理循環。失效的訂閱會被自動清理。
- 樣式隔離:注入的樣式表包含
data-dsh-plugin="dsh-plugin-notify"標籤。
總結¶
該插件通過將 DSH 事件通知從會話中解放出來,提供了從本地音頻到遠程 IM 的多層級反饋。通過配置 Webhook,可以將自動化流程與現有的 IM 工具集成,確保關鍵事件及時被感知。