在 DeepSeek Harness (DSH) 的开发与使用中,智能体常在后台运行任务、等待人工审批或执行长时间流程。当浏览器标签页隐藏或关闭时,仅依赖浏览器 Notification API 的通知往往无法送达,导致重要任务被遗漏。
dsh-herald 通过让 DSH 宿主进程直接向操作系统发送通知,解决了这一断连问题。无论浏览器处于打开、隐藏还是关闭状态,系统通知中心都能收到推送。
插件定位¶
dsh-herald 是一个联网工具类插件,原名 dsh-task-notify 的深度定制版。由 bululuburuarua666 维护,采用 MIT 许可证。它为 DSH 提供了三路投递机制,将任务状态推送到前端浮层、浏览器横幅以及宿主系统通知中。
核心功能¶
三通道投递¶
插件支持三种独立的通知渠道:
1. 通道 A(页内浮层):在 DSH 工作区页面内渲染的顶部浮层通知,带有提示音,支持悬停暂停。
2. 通道 B(浏览器 OS 横幅):通过浏览器 Notification API 发出的系统级横幅,需用户授权。
3. 通道 C(宿主直发系统通知):由 DSH 宿主进程直接调用的系统通知(Windows 使用 PowerShell WinRT,macOS 使用 osascript,Linux 使用 notify-send)。这是该插件的核心能力,浏览器关闭时仍可送达。
防轰炸机制¶
为了防止通知频繁触发导致系统卡顿,插件内置了限流逻辑:
* 最小发送间隔:1.2 秒
* 超时机制:5 秒内未发送则丢弃
* 重试策略:仅重试一次
安全与配置¶
- 注入安全:文本内容使用 base64(UTF-16LE) 编码传输,标签经过过滤,进程不使用 Shell 启动。
- 高级面板:提供卡片式的通道设置界面,支持中英文双语切换,包含状态指示灯。
- 持久历史:本地记录 300 条通知历史,数据存储在
<profile>/data/task-notify/目录下,配置与历史记录可跨版本保留。
安装与启用¶
环境要求¶
安装前需确保系统已安装 Node.js 和 pnpm。
安装步骤¶
- 在终端执行以下命令安装插件:
dsh plugin --profile web add dsh-herald
- 安装完成后,必须重启
dsh web进程。 - 在浏览器中硬刷新页面(Ctrl+F5)以加载新插件。
使用方法¶
安装并刷新页面后,点击页面右上角的 🔔 铃铛 图标展开抽屉。在抽屉中可以控制三个通道的开关并测试通知。
- 宿主直发通知(通道 C):无需额外权限,安装后默认可用。
- 浏览器横幅(通道 B):需要点击对应的“测试”按钮,由浏览器弹窗请求授权。
- 通道联动:当通道 C 开启时,通道 B 会进入待机状态(Standby),避免重复通知。
配置与注意事项¶
环境变量锁定¶
在宿主环境变量中设置 DSH_TASK_NOTIFY_OS=0 或 1,可以锁定通道 C 的行为。设置后,宿主侧的更改将覆盖客户端的设置。
生效时机¶
- 客户端更改:在浏览器中调整开关或设置,需刷新页面才能生效。
- 宿主更改:修改环境变量或配置文件,需重启 DSH 宿主进程才能生效。
总结¶
dsh-herald 通过引入宿主进程直接通知能力,解决了 DSH 后台任务与用户交互的信息断层问题。它提供了零运行时依赖的轻量级解决方案,适合需要在长时间运行任务中保持消息触达的开发者。
- 插件目录:dsh-herald
- 源码地址:GitHub