前言¶
在 DeepSeek Harness(DSH)裏跑長任務時,瀏覽器標籤頁往往會被切走——查文檔、回消息、開別的會話。回合結束時如果沒有明顯反饋,只能反覆切回 DSH 看狀態,既打斷手頭的事,也容易漏掉報錯或中斷。
系統級桌面通知是常見做法,但 DSH 本身不內置這套邏輯。下面介紹社區插件 dsh-notification(維護者 omdsh-dev):在 Web GUI 裏監聽會話完成,通過瀏覽器 Notification API 彈出桌面通知,並按回合結果、關鍵詞規則精細控制是否提醒。
這是什麼¶
dsh-notification 是 DSH 的客戶端插件,分類爲「客戶端」,當前版本 v0.1.3,許可證 MIT。
插件在會話某一回合結束時,由瀏覽器彈出系統通知,標題爲 DSH finished,正文展示該回合的摘要(例如 deploy done)。你無需改 Harness 核心:Host 側貢獻一份會話投影(每個會話最近一次已完成回合的有界摘要),客戶端監聽會話列表的完成提醒,再結合本地持久化的偏好決定是否彈窗。
數據流大致如下:
host: notification projection (last turn's reason/text/tools) --session/projection--> browser
client: session list completion reminder (live, dedup) + persisted settings
-> permission + current-session visibility gate
-> new Notification("DSH finished", { body: "deploy done" })
核心功能¶
按回合結果開關¶
Host 投影會帶上回合結束原因(reason)。可在設置裏分別控制是否在以下情況通知:
| 回合結果 | 默認 |
|---|---|
| completed(正常完成) | 開 |
| error(出錯) | 開 |
| aborted / blocked / token limit | 關 |
關鍵詞包含 / 排除規則¶
規則針對三類文本匹配:會話標題、該回合回覆正文、該回合調用的工具名。
- 包含規則(include):配置了 include 時,至少一條須匹配纔會通知。
- 排除規則(exclude):任一條匹配則抑制通知。
- 支持字面量或正則,可選大小寫敏感標誌。
可見性與去重¶
- Only notify when the task is out of view(默認開):當前正在查看的會話完成時不彈通知;頁面隱藏、或你在看別的會話 / 工作區時仍會通知。關掉後,即使盯着該會話也會彈。
- 同一會話的新通知會替換舊通知。
- Require manual dismiss(默認關):開啓後通知需手動關閉纔會消失。
對模型與日誌無侵入¶
| 方面 | 影響 |
|---|---|
| Token 消耗 | 無——純 UI,不進入請求 |
| 工具調用 | 無——模型不獲得新工具 |
| 會話日誌 | 不變——投影只讀現有日誌,不寫事件 |
| Prompt | 不變——不註冊 system-prompt 段落 |
偏好保存在瀏覽器 localStorage。設置頁還提供授權瀏覽器通知權限、發送測試通知。
安裝與啓用¶
默認 dsh web profile 已包含所需客戶端組合(會話列表、設置殼、locale)。安裝後需重啓 Web 服務,Host 與客戶端 bundle 纔會加載插件。
dsh plugin --profile web add https://github.com/omdsh-dev/dsh-notification/archive/refs/tags/v0.1.3.tar.gz
設置入口:Settings > Notifications。
Host 配置¶
可在 cordis.yml 的插件行調整 Host 側參數:
- id: dsh-notification
name: dsh-notification
config:
maxBodyChars: 400 # projection body budget; longer replies are ellipsized host-side
maxBodyChars 限制投影正文字符數,超長回覆在 Host 側截斷並加省略號;規則匹配在客戶端對投影內容執行,正文不會超過該預算。
典型用法¶
- 按上文命令安裝並重啓
dsh web。 - 打開 Settings > Notifications,允許瀏覽器通知權限,點測試通知確認系統能收到。
- 保持默認:正常完成與出錯時通知;僅當該會話不在當前視圖時彈出。
- 若只想在部署、CI 等關鍵詞出現時才提醒,添加 include 規則(字面量或正則均可)。
- 對嘈雜會話加 exclude 規則,例如排除標題含
debug的會話。
完成後即可切到其他標籤;回合結束且規則命中時,桌面會收到 DSH finished 及正文摘要。點擊通知僅聚焦瀏覽器窗口,不會深鏈到具體回合。
適用場景與注意¶
適合誰
- 長時間跑 Agent 任務、經常多標籤或多會話並行的人。
- 需要按「完成 / 報錯 / 中斷」區分是否打擾的場景。
- 希望通過關鍵詞過濾,只對特定任務類型彈通知的場景。
權限與運行邊界
- 插件隨當前 DSH 進程與 Web 客戶端運行;安裝前請自行查看 源碼 與 MIT 許可證。
- Host 僅對會話日誌做純投影,經 projection seam 送到瀏覽器;插件不寫日誌、不註冊面向模型的工具。
- 客戶端僅在用戶授予
Notification權限後彈窗;站點權限被拒絕時,頁面內無法繞過。 - 規則匹配在客戶端對投影內容執行。
已知限制
- 頁面須保持打開(可隱藏標籤,關閉標籤後不再通知);斷線期間完成的回合,重連後不會補發。
- 每個已完成回合觸發一次(running→idle 邊沿);關鍵詞只匹配會話標題與最後一回合的回覆與工具名,更早回合不參與。
- 通知正文爲純文本片段,無跳轉到具體回合的深鏈。
鏈接¶
- 社區目錄:omdsh-dev/dsh-notification(SkillHub 爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)
- 源碼與文檔:github.com/omdsh-dev/dsh-notification