dsh-task-notifier:任务完成时的系统通知插件

DeepSeek Harness (DSH) 在后台运行 agent 时,用户常因离开终端而错过任务完成的时间点。dsh-task-notifier 是一个社区插件,它监听 DSH 内部的任务结束信号,将这些信号转化为操作系统的原生通知(Windows 吐司、Linux 桌面通知、macOS 通知中心),告知用户“某某任务已经完成”。

插件定位

  • 名称:dsh-task-notifier
  • 类型:DeepSeek Harness 社区插件
  • 维护者:yuan-source-666
  • 许可证:MIT
  • 核心价值:将 DSH 内部的“任务结束”信号接出,交给操作系统的通知中心。

核心能力

该插件监听五种 DSH 内部任务结束信号:

  1. 轮次结束 (onTurnEnd):对话任务答完。
  2. 子代理结束 (onSubagentEnd):委派的子任务结束。
  3. 后台作业结束 (onJobDone):依赖 ctx.jobs,如 pnpm test。
  4. 目标标记完成 (onGoalComplete):目标状态变为完成或阻塞。
  5. 工作流结束 (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} 字符串。

已知边界与注意事项

  1. 运行环境:通知发生在运行 dsh 的机器上,而非浏览器端。
  2. 标题生成:会话标题由 DSH 标题服务异步生成,未生成时退回最近一条人类指令。
  3. 依赖关系:onJobDone 依赖组合包中存在 ctx.jobs。
  4. 去重:目标自动续跑时,每一轮都是新信号,需依赖 dedupeMs 或关闭 onTurnEnd 来减少打扰。
  5. 中断处理:崩溃修补的 interrupted 轮次不会触发通知。

相关链接

  • GitHub:https://github.com/yuan-source-666/dsh-task-notifier
  • 社区目录:https://www.skillhub.cn/plugins/yuan-source-666/dsh-task-notifier
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜