DeepSeek Harness (DSH) 在後臺運行 agent 時,用戶常因離開終端而錯過任務完成的時間點。dsh-task-notifier 是一個社區插件,它監聽 DSH 內部的任務結束信號,將這些信號轉化爲操作系統的原生通知(Windows 吐司、Linux 桌面通知、macOS 通知中心),告知用戶“某某任務已經完成”。
插件定位¶
- 名稱:dsh-task-notifier
- 類型:DeepSeek Harness 社區插件
- 維護者:yuan-source-666
- 許可證:MIT
- 核心價值:將 DSH 內部的“任務結束”信號接出,交給操作系統的通知中心。
核心能力¶
該插件監聽五種 DSH 內部任務結束信號:
- 輪次結束 (
onTurnEnd):對話任務答完。 - 子代理結束 (
onSubagentEnd):委派的子任務結束。 - 後臺作業結束 (
onJobDone):依賴ctx.jobs,如pnpm test。 - 目標標記完成 (
onGoalComplete):目標狀態變爲完成或阻塞。 - 工作流結束 (
onWorkflowEnd):工作流任務結束。
插件提供以下特性:
* 跨平臺支持:Windows、Linux、macOS 均可使用。
* 本地化:支持中英文本地化。
* 靈活配置:提供獨立開關控制各類信號,支持去重窗口(默認 2 秒)。
* 自定義投遞:支持自定義命令覆蓋內置渠道。
* 事件發佈:任務完成時發佈 task-notifier/completed 事件,供其他插件訂閱。
安裝與啓用¶
以下命令在 DSH 倉庫根目錄執行。
方式一:直接跑源碼(推薦驗證)¶
先重寫開發層佔位路徑,然後啓動:
node scripts/write-dev-patch.mjs
cd /path/to/deepseek-harness
pnpm dsh web --patch "它打印出來的那個 load.dev.patch.yml 絕對路徑"
打開 http://127.0.0.1:3080,Agent 答完任務時桌面會彈出通知。
方式二:安裝組合包¶
dsh plugin --profile demo add E:/ai_agent_workspace/deepseek_harness/dsh-task-notifier
dsh --profile demo
方式三:GitHub 安裝¶
dsh plugin --profile demo add github:yuan-source-666/dsh-task-notifier
安裝後可通過 dsh --profile demo --dump-config 查看配置是否生效。
配置說明¶
配置項位於 config: 字段中。以下是常用默認配置:
config:
enabled: true # 總開關
locale: 'zh' # 語言:'zh' 或 'en'
onTurnEnd: true
onSubagentEnd: true
onJobDone: true
onGoalComplete: true
onWorkflowEnd: true
onlySuccess: false # 是否僅通知成功
includeChildSessions: false # 是否通知子會話輪次
dedupeMs: 2000 # 去重窗口(毫秒)
command: [] # 自定義投遞命令 argv
timeoutMs: 15000 # 投遞超時時間
通知模板佔位符:
* {kind}:任務類型(如“對話任務”)
* {task}:任務名
* {outcome}:結束原因
* {ref}:會話或任務 ID
自定義投遞:
command 數組非空時,插件將使用該命令投遞通知,而非系統原生渠道。命令不支持 shell,直接拼接 {title} 和 {body} 字符串。
已知邊界與注意事項¶
- 運行環境:通知發生在運行
dsh的機器上,而非瀏覽器端。 - 標題生成:會話標題由 DSH 標題服務異步生成,未生成時退回最近一條人類指令。
- 依賴關係:
onJobDone依賴組合包中存在ctx.jobs。 - 去重:目標自動續跑時,每一輪都是新信號,需依賴
dedupeMs或關閉onTurnEnd來減少打擾。 - 中斷處理:崩潰修補的
interrupted輪次不會觸發通知。
相關鏈接¶
- GitHub:https://github.com/yuan-source-666/dsh-task-notifier
- 社區目錄:https://www.skillhub.cn/plugins/yuan-source-666/dsh-task-notifier