dsh-notify 插件:桌面与远程浏览器通知

在 DeepSeek Harness (DSH) 中运行智能体时,开发者需要及时获知任务状态变化。仅靠浏览器刷新或终端日志容易遗漏信息,尤其是当需要用户介入时。dsh-notify 插件通过桌面原生通知和远程浏览器推送,补充了这一监控能力。

是什么

这是一个 DSH 插件,由 Dawn388887 维护。它提供桌面 Toast 通知和远程浏览器通知,用于响应 root-session 智能体的完成、错误或等待用户输入的状态。

核心功能

插件主要处理以下几类事件:

  1. 任务完成:当当前正在查看的 root-session 智能体从运行状态变为空闲状态时,触发桌面通知。
  2. 错误反馈:当智能体出错时触发通知。系统会针对每个回合/步骤进行去重,最多记录 64 条错误信息。
  3. 等待用户:当 ask_user_question 工具实际开始等待用户回答时触发通知。去重基于工具调用,如果启动立即失败则不通知。
  4. 远程交互提醒:在任何前台或后台的 root-session 中,只要出现需要用户关注的 question 或 plan-review 交互,浏览器端就会收到通知。
  5. 命令与控制:
    • 提供 /notify status 查看状态。
    • 提供 /notify on|off 开关远程通知。
    • 提供 /notify test 进行测试。
  6. 全局开关:在设置面板的“远程通知”选项中有一个全局开关,与 /notify 命令共享逻辑,状态持久化存储在 ~/.dsh/notify-state.json。
  7. 会话过滤:仅 root 会话触发通知,子代理保持静默。

安装与启用

插件是纯本地插件,通过 Cordis 补丁注入。

# 假设插件位于 ~/.dsh/plugins/dsh-notify
dsh plugin --profile web add ~/.dsh/plugins/dsh-notify

或者,在 Cordis composition patch 中插入:

- insert:
    - id: notify
      name: dsh-notify
      inject: [webServer]

修改 composition 或更新插件后,需要重启 dsh web 并刷新浏览器页面。

典型用法

桌面端:
需要 Windows + WinRT 环境。任务完成、出错或等待用户回答时,会弹出原生 WinRT Toast,并播放默认通知音效。

远程设备:
浏览器页面使用 Service Worker (/dsh-notify/sw.js)。完成和错误状态跟随当前查看的会话;问题与计划审查等待状态则监听所有 root 会话。

权限与开关:
浏览器首次使用时会请求通知权限。如果之前被拒绝,需在站点设置中手动开启。控制开关可通过设置页面的“远程通知”选项,或直接使用 /notify off 命令。远程页面在标签页重新可见时会自动同步开关状态。

注意事项

  1. 环境依赖:桌面通知功能依赖 Windows 和 WinRT,无法在其他系统上使用。
  2. 版本兼容:v1.2.1 修复了 DSH 0.1.7-rc.1 版本下的启动错误;所有会话监听逻辑会优先读取 uiSession.sessionStatus (DSH 0.1.7),若不可用则回退到 uiSession.pendingInteractions API。
  3. 测试方式:所有测试均为离线模拟,无需运行实际的 DSH Web 实例即可验证逻辑。

总结

dsh-notify 解决了 DSH 开发中状态监控不及时的问题,通过统一的桌面与远程通知机制,帮助开发者更高效地响应智能体的运行状态。

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

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

小夜