前言¶
用 DeepSeek Harness(DSH)跑長任務時,窗口不在前臺,很容易錯過智能體提問、工具授權請求,或者不知道一輪任務已經結束、在哪一步失敗。常見做法是盯住終端、開瀏覽器標籤,或自己寫腳本接 Webhook——在 macOS 上,更直接的做法是把關鍵節點交給系統通知中心。下面介紹的 dsh-mac-notifications 是社區維護的 DSH 客戶端類插件,在智能體需要你選擇、任務完成、任務異常中斷等時機,通過 Notification Center 彈出提醒;通知以 DeepSeek Harness 應用自身 的名義顯示(應用名稱與鯨魚圖標),而不是腳本編輯器。
這是什麼¶
- 名稱:
dsh-mac-notifications(Cordis 註冊 id:mac-notifications) - 維護者:zhiquanchi
- 分類:客戶端(隨 DSH Web GUI 加載瀏覽器端模塊)
- 許可證:MIT(
package.json版本 1.0.0) - 定位:爲 DSH 增加原生 macOS 通知,覆蓋提問、授權、完成、失敗等 Harness 生命週期節點。
插件與 DeepSeek 官方無從屬關係;安裝即運行第三方代碼,安裝前應自行查閱源碼與許可證。
核心功能¶
插件監聽 Harness 事件,按場景彈出對應文案(默認中文,可切英文):
| 場景 | 觸發時機 | 通知示例 |
|---|---|---|
| 需要你做出選擇 | 智能體調用 ask_user_question |
「需要你的選擇」+ 問題內容 |
| 需要你的授權 | 工具請求授權(approval 流程) | 「需要你的授權」+ 工具名與原因 |
| 任務完成 | 一輪任務正常結束(turn/end completed) |
「任務已完成」+ 會話標題 |
| 任務異常中斷 | 步驟/回合出錯、被中止、會話級失敗 | 「任務異常中斷」+ 錯誤信息 |
防打擾方面,README 中寫明的行爲包括:
- 會話仍有後臺任務(jobs)運行時,抑制「任務完成」通知,避免把「等待後臺任務」誤報爲完成;
- 子智能體(subagent)會話默認不通知,只通知主會話;
- 同一回合的
agent/error與turn/enderror 去重,只報一次; - 完成通知帶冷卻時間(默認 3000 毫秒);
- 配置寫在
cordis.patch.yml的config中,改動後插件可熱重載。
工作原理(簡述)¶
插件分 Host 與 Client 兩段:
- Host 端(Node,
index.js):監聽 Harness 事件,經本機 SSE 端點/plugin/dsh-mac-notifications/events把內容推給 Web GUI。 - Client 端(
client.js,約 1 KB):隨 Web GUI 加載,用瀏覽器 Notification API 彈出通知。
因此通知中心裏顯示的是 DeepSeek Harness 應用名稱與圖標。安裝或更新插件後需刷新一次 Web GUI 頁面以加載 Client 模塊。無 Web GUI 連接時(例如 headless profile、頁面已關閉),可選 fallbackOsascript: true 回退到 osascript 通知(歸屬腳本編輯器;默認關閉)。
平臺:僅 macOS 生效(依賴 /usr/bin/osascript);其他平臺插件空轉,不發通知。
安裝與啓用¶
推薦用 DSH CLI 從 GitHub 安裝(按你實際使用的 profile 替換 web):
dsh plugin --profile web add github:zhiquanchi/dsh-mac-notifications
# 其他 profile 同理,如 headless:
dsh plugin --profile headless add github:zhiquanchi/dsh-mac-notifications
也可用 npm 包名安裝:
dsh plugin --profile web add dsh-mac-notifications
或在 DSH 桌面端 / Web GUI「插件」頁選擇「從目錄安裝」;亦可手工在 profile 的 cordis.patch.yml 中註冊:
- insert:
- id: mac-notifications
name: 'dsh-mac-notifications'
config: {}
插件已提交 DSH.SO 等社區市場,桌面端「插件 → 發現」可搜索安裝(部分市場收錄可能有數小時同步延遲)。
配置¶
所有開關在插件對應行的 config 字段中設置:
| 字段 | 類型 | 默認值 | 說明 |
|---|---|---|---|
questions |
boolean | true |
ask_user_question 時通知 |
approvals |
boolean | true |
工具授權請求時通知 |
completed |
boolean | true |
任務正常完成時通知 |
errors |
boolean | true |
異常中斷/失敗時通知 |
includeSubagents |
boolean | false |
是否包含 subagent 會話 |
suppressWhenJobsRunning |
boolean | true |
有後臺 jobs 時抑制完成通知 |
sound |
boolean | true |
是否播放系統默認提示音 |
language |
'zh' \| 'en' |
'zh' |
通知文案語言 |
cooldownMs |
number | 3000 |
完成通知最小間隔(毫秒) |
fallbackOsascript |
boolean | false |
無 Web GUI 時回退 osascript |
完整示例:
- insert:
- id: mac-notifications
name: 'dsh-mac-notifications'
config:
questions: true
approvals: true
completed: true
errors: true
includeSubagents: false
suppressWhenJobsRunning: true
sound: true
language: zh
cooldownMs: 3000
fallbackOsascript: false
提示音爲系統默認(瀏覽器通知不支持自定義音效);可用 sound: false 靜音。通知權限沿用 DeepSeek Harness 應用自身的系統授權。
典型用法¶
- 安裝插件並刷新 Web GUI。
- 保持 macOS 已爲 DeepSeek Harness 開啓通知權限。
- 在後臺或最小化窗口下繼續跑任務;當智能體提問、請求授權、回合完成或出錯時,在通知中心查看摘要。
- 若只需失敗提醒,可將
questions、approvals、completed設爲false,保留errors: true。 - headless 且無瀏覽器連接、仍要桌面提醒時,再考慮開啓
fallbackOsascript(接受腳本編輯器歸屬)。
點擊通知本身不會把應用帶到前臺(系統限制);問題正文仍使用模型輸出原文,僅固定標題類文案隨 language 切換。
適用場景與注意¶
適合:在 macOS 上使用 DSH Web / 桌面端,需要離開窗口仍能感知任務狀態與交互請求的開發者。
注意:
- 插件以當前 DSH 進程權限運行,安裝前請審查 GitHub 倉庫 源碼。
- 子 agent 並行、後臺 jobs 等場景已內置抑制與去重邏輯;若需 subagent 也提醒,設置
includeSubagents: true。 - 社區目錄(如 SkillHub 插件頁)與 DSH.SO 等爲獨立站點,不是 DeepSeek 官方應用商店。
結尾¶
dsh-mac-notifications 把 DSH 裏「要問人、要授權、跑完了、出錯了」四類節點接到 macOS 通知中心,並儘量保持通知歸屬爲 DeepSeek Harness 本體。查閱詳情與更新: