前言¶
DSH 的插件理念是「一切皆插件」。在 DSH Web GUI 里运行 agent 时,任务完成、agent 提问、等待批准或计划审阅,都可能发生在页面后台。如果窗口不在前台,缺少系统级提醒就容易错过处理时机。
下面介绍 dsh-agent-notify。它把这几类事件接到 Windows 系统通知中心,用浏览器 Notification API 弹出通知气泡,不依赖网页内弹窗,也不使用合成音。
这是什么¶
dsh-agent-notify 是 chidaic 维护的 DSH Web GUI 任务完成通知插件,许可证为 MIT。
它解决的是 Web GUI 中 agent 状态变化不够醒目的问题:
- agent 完成任务后发送系统通知。
- agent 需要用户回答、批准或审阅计划时发送系统通知。
- 点击通知气泡后聚焦页面,并打开对应会话。
它是纯浏览器端插件,host half 为空,设置保存在浏览器 localStorage。
核心功能¶
通知触发¶
插件会监听以下状态变化:
- 会话从
running变为停止时,发送「任务完成」系统通知。 - agent 提问,即
question时,发送「需要你的回答」通知。 - 出现
approval或plan-review时,发送「需要你的批准」或「请审阅计划」通知。
通知形式¶
通知通过浏览器 Notification API 发出,在 Windows 通知中心显示为气泡。
具体行为:
- 声音为 Windows 系统通知音,由 Windows 设置控制。
- 没有网页内弹窗。
- 没有合成音。
- 没有额外 UI 按钮。
- 点击气泡会聚焦页面并打开对应会话。
通知不带 tag。这是为了避免 Windows 上 Chrome 对同 tag 通知只静默更新、不弹新气泡。
通知内容¶
通知内容包含:
- 会话标题。
- 该会话最后一条
assistant回复的前 90 字摘要。
其中,摘要仅在该会话窗口已打开时出现。
系统通知模式¶
插件支持三种系统通知模式:
不发送后台时发送始终发送
默认模式为 始终发送。
授权方式¶
有两种授权方式:
- 首次点击页面时自动请求通知权限。
- 在 DSH 官方设置界面的
任务提示页面手动授权。
设置入口¶
插件会接入 DSH 官方设置界面的一级页面 任务提示。在该页面可以:
- 启用或关闭通知。
- 选择是否包含子代理通知。
- 选择系统通知模式。
- 查看权限状态。
- 手动授权。
- 发送测试通知。
设置保存在 localStorage 的 dsh.agentNotify.settings.v3。
防误报¶
插件对重复通知做了限制:
- 页面加载或重连后,第一个列表快照只作为基线,不重放历史完成事件。
- 重连期间发生的完成,不会在恢复连接后误报。
- 同一
pending状态不重复通知。 - 子代理会话默认不通知,可在设置中开启。
浏览器端加载¶
插件为纯浏览器端实现,host half 为空,无需构建工具。
浏览器端 bundle 变更后,刷新页面即可加载最新 client.js。如果遇到旧缓存,可以用 Ctrl+Shift+R 硬刷新。
安装与启用¶
先安装插件:
dsh plugin --profile web add dsh-agent-notify
如果从 GitHub 安装,使用下面命令:
dsh plugin --profile web add github:chidaic/dsh-agent-notify
经过上面的步骤后,刷新页面即可加载插件。
启用通知时,先做这两步:
- 首次点击页面时,允许浏览器通知权限。
- 进入 DSH 官方设置界面 →
任务提示,启用通知并选择系统通知模式。
典型用法¶
选择通知模式¶
进入 DSH 官方设置界面 → 任务提示,选择系统通知模式:
不发送:不发送系统通知。后台时发送:仅在页面处于后台时发送。始终发送:默认模式,始终发送系统通知。
授权¶
授权可以这样操作:
- 首次点击页面时,浏览器会询问通知权限,选择允许。
- 如果之前拒绝了权限,也可以进入 DSH 官方设置界面 →
任务提示,在权限状态区域手动授权。
诊断通知¶
如果通知没有弹出,可以在设置页使用 发送测试通知。
它会无视当前发送模式直接发送一条系统通知,并显示结果。
如果显示已发送,但 Windows 通知中心没有弹出气泡,检查以下位置:
- 浏览器站点权限。
- Windows 系统通知开关。
- Windows 通知声音。
- Windows 专注助手。
子代理通知¶
子代理会话默认不通知。
如果希望子代理会话也进入系统通知,需要进入 DSH 官方设置界面 → 任务提示,开启包含子代理通知。
更新¶
浏览器端 bundle 变更后,刷新页面即可。
如果页面仍像旧版本一样,用 Ctrl+Shift+R 硬刷新,避免旧缓存影响判断。
适用场景与注意¶
适合在 DSH Web GUI 中运行 agent,并希望在任务完成、等待回答、等待批准时得到系统级提醒的使用者。
需要注意以下几点:
- 插件依赖浏览器
Notification API与 Windows 系统通知设置。 - 通知效果可能受浏览器站点权限、Windows 系统通知开关、通知声音和专注助手影响。
- 页面加载或重连后不会重放历史完成事件。
- 子代理会话默认不通知。
- 插件以当前 dsh 进程权限运行,安装前应检查源码与
MIT许可证。
链接¶
GitHub 仓库:
https://github.com/chidaic/dsh-agent-notify