前言¶
在 DeepSeek Harness 中,顶层 Agent 执行任务时可能完成、进入等待或等待审批。如果开发者不在终端窗口或 Web UI 前,容易错过这些状态。dsh-notify-center 是 SingleOne 维护的 DSH 插件,MIT 许可。它把顶层 Agent 的完成或审批等待事件发送成本机桌面通知,也可以投递到已配置的 Webhook。下面介绍它的定位、能力、安装方式和需要注意的地方。
这是什么¶
dsh-notify-center 是统一的本机桌面通知和 Webhook 通知插件。它面向需要离开当前终端但仍要接收 DSH 状态提醒的使用者。
它主要解决三个问题:
1、顶层 Agent 完成一轮任务后,及时通知使用者。
2、顶层 Agent 等待审批时,提醒用户处理,但不接管审批 waterfall。
3、把通知送到本机桌面,或推送到已配置的远程 Webhook。
它不额外产生提示词、Token、工具调用或模型行为开销。
核心功能¶
完成与审批事件¶
插件以 session/event → turn/end 保存准确的结束原因,并在顶层 Agent 进入 idle 后派发完成通知。
它监听持久的 approval/asked 审计事件,提醒用户处理审批。默认会过滤子 Agent;同一 Agent 连续完成多轮时,按顺序逐轮通知。
本机桌面通知¶
本机通知支持:
- Windows 原生 Toast,失败时降级为 NotifyIcon 气泡。
- macOS
osascript。 - Linux
notify-send。
每条本机通知使用 session + turn/event 唯一标识,避免 Windows 因复用 tag 静默吞掉后续通知。
Webhook 通知¶
插件支持飞书、企业微信、钉钉、Slack、Discord 和自定义 JSON Webhook。
每个 Webhook 可独立选择事件和摘要权限;远程通道默认 includeSummary: false,启用后会发送该轮回复的有界摘要。
Webhook 支持超时和指数退避重试;投递不阻塞 Agent,日志不会输出 Webhook URL。
过滤与正文控制¶
插件支持按完成结果开关、关键词/正则包含与排除规则、正文长度上限。事件范围和规则可以在 DSH Web UI 设置页调整,也可以在 profile 基础配置中提供组合基础值。
安装与启用¶
插件运行环境要求 Node >=20。
从 GitHub 安装到 DSH web profile:
dsh plugin --profile web add github:SingleOne/dsh-notify-center
安装后重启 dsh web。
如果从源码开发,可在插件仓库根目录执行:
npm install
npm run check
然后安装本地目录:
dsh plugin --profile web add .
源码验证可执行:
npm run typecheck
npm test
npm run build
典型用法¶
1、打开 DSH 左侧设置入口,选择“通知中心”。
2、修改本机通知、Webhook、事件范围、摘要权限或正文长度上限等设置。
3、保存后实时生效。
也可以在 ~/.dsh/profiles/web/cordis.patch.yml 中为插件行添加 config 作为组合基础值:
- id: dsh-notify-center
config:
webhooks:
feishu:
url: 'https://open.feishu.cn/open-apis/bot/v2/hook/REPLACE_ME'
includeSummary: false
页面保存的用户层位于:
$DSH_HOME/dsh-notify-center/settings.json
未设置 DSH_HOME 时:
~/.dsh/dsh-notify-center/settings.json
该文件由插件维护,不建议手工编辑。
桌面桥接¶
可选的桌面 App 桥接可以优先把通知交给桌面 App 展示。桥接缺失或失败时,自动回退系统原生通知。
桌面 App 启动 DSH 子进程时可注入:
DSH_NOTIFY_BRIDGE_URL
DSH_NOTIFY_BRIDGE_TOKEN
独立系统通知的点击行为由操作系统负责;只有桌面桥接通知支持唤醒 App 并定位会话。
适用场景与注意¶
适合:
- 顶层 Agent 长时间执行,希望在完成或等待审批时收到提醒。
- 需要把 DSH 状态推送到飞书、企业微信、钉钉、Slack、Discord 或自定义 Webhook。
- 希望在 DSH Web UI 中调整通知设置,而不是只改 profile 基础配置。
使用前注意:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。本插件许可证为 MIT。 - 插件仅向显式配置的 HTTP(S) 地址发请求。
- Webhook URL 只存在当前用户的 Host 设置文件或 profile 基础配置中,并以 secret 字段持久化、不会回传浏览器。
- 插件配置 API 仅接受回环同源请求,并从所有响应中剥离 URL;Webhook URL 不写入会话日志,也不会进入模型上下文。
- Linux 系统必须提供
notify-send。 - 可视化设置页仅随 DSH Web UI 加载;headless 使用方式仍通过 profile 配置。
- 缺少 WebServer 时只会停用页面和配置 API,不影响本机通知与 Webhook 投递。
- 投递队列仅保存在内存中;DSH 进程退出时不会持久化未完成重试。
- Windows 首次通知会创建开始菜单快捷方式
dsh-notify-center.lnk,并在当前用户的HKCU\Software\Classes\AppUserModelId下注册DeepSeekHarness.NotifyCenter;不写入系统级注册表。移除快捷方式和该 HKCU 项即可撤销。
结尾¶
dsh-notify-center 的价值比较集中:把 DSH 顶层 Agent 的完成和审批等待状态送到本机桌面或已配置 Webhook,同时保留默认关闭摘要、URL 脱敏和进程内投递等限制边界。
GitHub 仓库:
https://github.com/SingleOne/dsh-notify-center