前言¶
DeepSeek Harness (dsh) 的設計理念是“一切皆插件”。在開發或運維場景中,智能體任務往往在後臺運行,任務完成時開發者可能不在終端旁。如何第一時間獲知任務狀態是常見痛點。
目前 DSH 生態中存在一些遠程監控插件(如 dsh-pocket),它們通常提供完整的 UI 交互。本插件複用同一套成熟模式,但聚焦於“通知”這一單一核心:提供 macOS/Windows/Linux 原生桌面通知,並支持零配置的手機端 PWA/Web Push 配對,讓任務完成狀態實時同步到手機鎖屏。
核心功能¶
本插件提供以下能力:
* 桌面原生通知:在 macOS、Windows 和 Linux 上彈出系統通知,包含任務摘要與耗時。
* 手機掃碼配對:通過 PWA 或 Web Push 協議,將手機與電腦配對,接收鎖屏通知。
* Cloudflare 快速隧道:一鍵啓動公網隧道,在無公網 IP 或非內網環境下也能使用手機推送。
* 能力拆分:提供 task-notify(桌面)、mobile-push-notify-gateway(網關/隧道)和 mobile-push-notify-push(推送)三個獨立模塊。
安裝與啓用¶
安裝插件需要使用 dsh plugin 命令,無需手動下載代碼。
- 安裝插件
dsh plugin --profile web add dsh-mobile-push-notify
- 重啓 Web 服務
dsh web
- 查看日誌
插件啓動後會自動開啓一個網關。在終端啓動日誌中可以看到管理頁地址,默認爲http://127.0.0.1:3188/admin。
使用方法¶
1. 電腦端通知(零配置)¶
安裝並運行後,無需額外設置。當 DSH 中的任務完成(如 turn/end 事件且狀態爲完成,或 goal/change 且階段爲完成)時,系統會自動發送通知。
* macOS:通知中心橫幅 + Glass 提示音。
* Windows:系統 Toast。
* Linux:notify-send。
* 如果系統通知服務不可用,終端會自動響鈴作爲兜底。
2. 手機配對¶
通過手機訪問網關管理頁進行配對。
- 在電腦瀏覽器打開
http://127.0.0.1:3188/admin。 - 局域網配對:確保手機和電腦在同一 WiFi 下,掃描頁面上的“局域網配對”二維碼。
- 公網配對:點擊頁面上的“開啓公網隧道”。首次使用會自動下載
cloudflared二進制文件,稍後出現公網二維碼後掃碼。
配對成功後,手機會自動打開 DSH 的官方 Web 界面,保持實時同步。
3. 開啓手機推送¶
- 在手機上進入 DSH Web 界面。
- 點擊頁面右下角的 “🔔 開啓任務通知” 按鈕,並允許瀏覽器發送通知。
- iOS 用戶注意:建議通過 Safari 打開,點擊分享按鈕“添加到主屏幕”以 PWA 形式安裝,再點擊開啓通知(iOS 16.4+ 要求 HTTPS)。
- Android 用戶:可直接在 Chrome 或 Edge 中安裝 PWA 或允許通知。
之後,當任務完成時,手機鎖屏會收到包含任務標題、摘要和耗時的通知,點擊可直接跳轉回 DSH 界面查看詳情。
配置說明¶
插件的默認配置已滿足大部分場景。如需調整,可通過環境變量或修改配置文件 ~/.dsh/profiles/web/cordis.patch.yml。
常用環境變量¶
| 變量名 | 默認值 | 說明 |
|---|---|---|
DSH_TASK_NOTIFY_ENABLED |
1 |
總開關,設爲 0 禁用通知。 |
DSH_TASK_NOTIFY_EVENTS |
completed,error,aborted,goal-completed |
需要觸發通知的事件類型。 |
DSH_TASK_NOTIFY_SOUND |
Glass |
macOS 提示音名稱,設爲 none 可靜音。 |
DSH_TASK_NOTIFY_BELL |
0 |
系統通知失敗時是否響鈴。 |
DSH_TASK_NOTIFY_GATEWAY_PORT |
3188 |
網關監聽端口。 |
DSH_TASK_NOTIFY_TARGET_PORT |
自動讀取 | DSH Web 服務監聽的端口。 |
DSH_TASK_NOTIFY_VAPID_SUBJECT |
mailto:... |
iOS 嚴格校驗的 VAPID 郵箱地址。 |
高級推送¶
插件支持擴展到 Bark 或通用 Webhook。
Bark 配置(需在 ~/.dsh/task-notify.json 或環境變量中設置):
{
"barkKey": "你的 Bark Key",
"webhookUrl": "https://example.com/hook/{{title}}"
}
安全模型¶
理解插件的安全機制有助於在公網環境下安全使用。
- 內網隔離:網關默認將流量反向代理到
127.0.0.1的 DSH Web 服務。因此,不需要將 DSH Web 綁定到0.0.0.0,本地網絡更安全。 - 訪問控制:管理頁
/admin*及推送發送端點僅接受迴環請求(Loopback)。配對設備擁有完整控制權限,請勿將配對二維碼分享給他人。 - 配對安全:配對 Token 有效期爲 10 分鐘。配對過程使用一次性 Token,設備可單獨撤銷,或通過“停止全部配對”清空。
- 公網隧道風險:開啓 Cloudflare 隧道會將擁有代碼執行能力的 DSH 暴露到互聯網。請用完即關。若需長期固定地址,建議配置
DSH_TASK_NOTIFY_PUBLIC_BASE_URL並使用 Cloudflare 命名隧道或自有反向代理。 - 推送加密:Web Push 使用
aes128gcm標準加密,推送服務僅能訪問密文。
兼容性¶
- DSH 版本:
dsh >= 0.1.0-rc.5 - Node 版本:
node >= 20 - 權限要求:
exec: 需要osascript,notify-send,powershell等工具。network: 需要webhook訪問權限及github.com等域名解析。
License¶
MIT