前言¶
在使用 DeepSeek Harness (DSH) 开发智能体时,任务往往需要长时间运行。当浏览器标签页关闭或页面处于后台时,开发者容易错过运行状态变更、审批请求或阻塞事件。dsh-notifier 插件通过提供多渠道通知能力,解决了这一问题。
这是什么¶
dsh-notifier 是一个为 DeepSeek Harness 增加多渠道通知功能的插件。它引入了 send_notification 模型工具,支持运行状态和阻塞事件的自动通知,并提供了一个配置页面。插件由 a23842 维护,许可证为 MIT。
安装¶
安装前请确保 Node.js 版本 >= 22。通过命令行添加插件:
dsh plugin --profile web add @czf1995/dsh-notifier
安装完成后,插件会自动注册并启用。
核心功能¶
1. 浏览器本地通知¶
当 DSH Web 页面在后台(失焦或隐藏标签页)时,浏览器会发送系统通知。支持的事件包括:
* 运行结束:会话从 running 变为 idle 时。
* 提问 / 审批:会话需要用户回答或批准时。
* 目标完成:默认关闭,需在设置页开启。
* 前台抑制:页面可见且聚焦时不打扰。
* 子代理排除:子代理会话不产生通知。
2. 外部渠道通知¶
通知由 Host 进程直接投递,不依赖浏览器页面状态。支持的事件包括:
* 会话运行结束。
* 阻塞事件(提问 / 审批)。
* 目标完成(需在设置页开启)。
支持的渠道:
* NotifyX(默认启用)
* 企业微信(应用通知 / 机器人)
* 邮件(Resend / SMTP)
* 钉钉(机器人)
* 飞书(机器人)
3. 模型工具¶
在 DSH 的对话中调用模型工具 send_notification。参数为 title(标题)和 content(正文),向所有已启用渠道发送。
4. 设置页¶
进入 DSH Web 设置页的「通知」选项卡,可以配置以下内容:
* 通知开关:总开关、浏览器通知开关、运行结束/提问/审批开关、声音开关。
* 渠道配置:勾选启用渠道,填写 API Key、Webhook URL 等配置。密钥类字段(如 API Key、Webhook、加签密钥)标记为 secret,不会写回设置接口返回值。
* 测试:每个渠道卡片右上角有「测试 XX 通知」按钮,使用已保存的配置进行测试。
5. HTTP 主动投递¶
除了模型工具,外部脚本、cron 或同 Host 的其他插件可以通过 HTTP 端点主动投递通知。端点为 /api/dsh-notifier/deliver。
典型用法¶
通过 HTTP 投递¶
curl --request POST http://127.0.0.1:3080/api/dsh-notifier/deliver \
--header 'Content-Type: application/json' \
--data '{
"channel": "smtp",
"title": "构建完成",
"content": "pipeline 已结束。",
"to": "ops@example.com"
}'
调用模型工具¶
在 DSH 的对话中直接调用:
send_notification("任务完成", "子代理执行完毕,结果已保存。")
注意事项¶
- Loopback 限制:Host 侧的路由
/dsh-notifier/test与/api/dsh-notifier/deliver仅接受本机回环请求(loopback-only),与 DSH/api同一信任边界。 - 安全性:密钥类字段不写回设置接口,只在 Host 进程内持有。浏览器通知内容不含密钥。
- Node 版本:插件要求 Node.js 版本 >= 22。
- 鉴权:HTTP 投递无需鉴权头。
总结¶
dsh-notifier 为 DSH 提供了从浏览器本地通知到企业微信、钉钉等多渠道的闭环通知能力。通过设置页或 HTTP API,可以灵活地监控智能体的运行状态。插件源码位于 GitHub。