dsh-notify-windows:给 DSH 增加 Windows 桌面通知

前言

使用 DeepSeek Harness(DSH)跑任务时,任务完成、等待审批、Agent 等待回答,这些状态如果只出现在 DSH 界面或日志里,离开屏幕就不容易及时发现。dsh-notify-windows 是一个 DSH 插件,作用是在这些关键节点向 Windows 桌面发送系统通知,让你不需要一直盯着 DSH 界面。

这是什么

dsh-notify-windows 是 SeverusZh 维护的 DeepSeek Harness(DSH)插件,用于在任务完成、等待审批、等待回答时发送 Windows 系统桌面通知。

资料中标注平台为 Windows 10/11。运行环境要求 node >=20,peer dependency 为 @deepseek-ai/cordis: ^4.0.1。许可证为 MIT © 2026 SeverusZh。

核心功能

任务完成、出错、输出超限提醒

插件监听会话 turn/end 事件。当任务完成、出错或输出达到 token 上限时,会发送 Windows 桌面通知。通知标题会自动使用会话标题,正文中会显示原因与轮次。

权限审批提醒

插件监听 approval/asked 事件。当有操作等待审批时,会发送提醒。

审批策略为 never 时,审批会被自动拒绝、不会等待,插件会跳过提醒;策略为 ask 时才会提醒。

Agent 提问提醒

当 Agent 调用 ask_user_question 等待回答时,插件会发送提醒。

插件会扫描 run_code 程序源码中的 tools.ask_user_question( 调用,并从中提取问题文本用于通知。

防打扰

插件默认忽略子代理(subagent)会话,只提醒主会话。

如果确实需要提醒子代理会话,可以将 includeSubagents 设为 true

通知发送与诊断

通知通过 Windows PowerShell 5.1 的 WinRT Toast API 发送,并自动注册 HKCU 的 AppUserModelId,无需管理员权限。

插件支持可选日志,日志路径为 %TEMP%\dsh-notify\notify.log,也支持 debug 事件日志。

点击通知跳转

任务完成、等待审批、等待回答的通知可以打开 DSH Web GUI。打开时优先聚焦已打开的 DSH 浏览器标签或 Chrome Application 窗口。

目标 URL 会带 ?session=<id> 参数。在 DSH 0.1.0-rc.8 前端中,该参数暂不消费;点击后打开的是 DSH 界面并聚焦已有窗口。

首次点击时会自动注册 dshnotify:// 协议处理器,注册在 HKCU,无需管理员权限。如果跳转失败,会静默降级为默认浏览器打开。

WSL 支持

在 WSL 环境下,插件会调用 wslpath -w 将脚本路径转换为 \\wsl.localhost\... UNC 路径,并优先通过固定路径调用 PowerShell。

安装与启用

1、安装插件:

dsh plugin --profile web add dsh-notify-windows

2、重启 DSH 并刷新浏览器后生效:

dsh --profile web

注意:不要再用 - insert: 手动添加 dsh-notify,否则可能报 duplicate loader entry id: dsh-notify

3、更新或卸载插件:

dsh plugin --profile web update dsh-notify-windows
dsh plugin --profile web remove dsh-notify-windows

更新插件代码后,需要执行更新命令并重启 DSH 宿主。

调整配置

插件配置可以在 $DSH_HOME/profiles/web/cordis.patch.yml 里按 id 覆盖主条目。该文件会被运行中的 DSH 热监视,改动立即生效,无需重启。

例如:

- id: dsh-notify
  name: dsh-notify-windows
  config:
    includeSubagents: true

验证与排查

可以在插件目录中执行 smoke test:

node scripts\smoke-test.mjs

如果收不到通知,先检查 Windows 通知设置、专注助手,以及 %TEMP%\dsh-notify\notify.log 中的 error 条目。

适用场景与注意

这个插件适合在 Windows 10/11 上使用 DSH,并且希望任务完成、等待审批、Agent 等待回答时有桌面提醒的场景。

使用前注意:

  • 插件会以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • DSH 0.1.0-rc.8 前端暂不支持按 URL 直达单个会话;点击通知后打开的是 DSH 界面并聚焦已有窗口。
  • 审批策略为 never 时,审批会被自动拒绝、不会等待,插件会跳过提醒。
  • 默认忽略子代理会话;如需提醒子代理,需要将 includeSubagents 设为 true

结尾

dsh-notify-windows 把 DSH 中需要人工关注的状态接到 Windows 桌面通知里,减少“任务已经结束或正在等待输入,但人不在 DSH 界面前”的情况。

GitHub 仓库:https://github.com/SeverusZh/dsh-notify-windows

项目资料中列出的目录页:https://www.skillhub.cn/plugins/SeverusZh/dsh-notify-windows。该社区目录是独立站点,不是官方应用商店。

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

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

小夜