dsh-agent-notify:DSH Web GUI 的 Windows 系统通知插件

前言

DSH 的插件理念是「一切皆插件」。在 DSH Web GUI 里运行 agent 时,任务完成、agent 提问、等待批准或计划审阅,都可能发生在页面后台。如果窗口不在前台,缺少系统级提醒就容易错过处理时机。

下面介绍 dsh-agent-notify。它把这几类事件接到 Windows 系统通知中心,用浏览器 Notification API 弹出通知气泡,不依赖网页内弹窗,也不使用合成音。

这是什么

dsh-agent-notifychidaic 维护的 DSH Web GUI 任务完成通知插件,许可证为 MIT

它解决的是 Web GUI 中 agent 状态变化不够醒目的问题:

  • agent 完成任务后发送系统通知。
  • agent 需要用户回答、批准或审阅计划时发送系统通知。
  • 点击通知气泡后聚焦页面,并打开对应会话。

它是纯浏览器端插件,host half 为空,设置保存在浏览器 localStorage

核心功能

通知触发

插件会监听以下状态变化:

  • 会话从 running 变为停止时,发送「任务完成」系统通知。
  • agent 提问,即 question 时,发送「需要你的回答」通知。
  • 出现 approvalplan-review 时,发送「需要你的批准」或「请审阅计划」通知。

通知形式

通知通过浏览器 Notification API 发出,在 Windows 通知中心显示为气泡。

具体行为:

  • 声音为 Windows 系统通知音,由 Windows 设置控制。
  • 没有网页内弹窗。
  • 没有合成音。
  • 没有额外 UI 按钮。
  • 点击气泡会聚焦页面并打开对应会话。

通知不带 tag。这是为了避免 Windows 上 Chrome 对同 tag 通知只静默更新、不弹新气泡。

通知内容

通知内容包含:

  • 会话标题。
  • 该会话最后一条 assistant 回复的前 90 字摘要。

其中,摘要仅在该会话窗口已打开时出现。

系统通知模式

插件支持三种系统通知模式:

  • 不发送
  • 后台时发送
  • 始终发送

默认模式为 始终发送

授权方式

有两种授权方式:

  • 首次点击页面时自动请求通知权限。
  • 在 DSH 官方设置界面的 任务提示 页面手动授权。

设置入口

插件会接入 DSH 官方设置界面的一级页面 任务提示。在该页面可以:

  • 启用或关闭通知。
  • 选择是否包含子代理通知。
  • 选择系统通知模式。
  • 查看权限状态。
  • 手动授权。
  • 发送测试通知。

设置保存在 localStoragedsh.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

经过上面的步骤后,刷新页面即可加载插件。

启用通知时,先做这两步:

  1. 首次点击页面时,允许浏览器通知权限。
  2. 进入 DSH 官方设置界面 → 任务提示,启用通知并选择系统通知模式。

典型用法

选择通知模式

进入 DSH 官方设置界面 → 任务提示,选择系统通知模式:

  • 不发送:不发送系统通知。
  • 后台时发送:仅在页面处于后台时发送。
  • 始终发送:默认模式,始终发送系统通知。

授权

授权可以这样操作:

  1. 首次点击页面时,浏览器会询问通知权限,选择允许。
  2. 如果之前拒绝了权限,也可以进入 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

羽毛球分组比赛记分
小程序二维码

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

Xiaoye