dsh-helper:DSH 智能体任务完成与待确认时的 Windows 通知

前言

在 DSH 里跑长任务时,浏览器窗口往往不在前台:智能体跑完、报错、或弹出多选确认、工具权限审批时,如果没有任何提醒,你只能隔一段时间回来点一下界面才知道状态。系统邮件、第三方 IM 可以补一层,但需要额外集成,也不一定能对齐 DSH 会话里的具体事件。

下面介绍社区插件 dsh-helper(npm 包名 dsh-helper)。它在 Windows 上通过原生 Toast 在会话结束、出错、即将提问或需要权限审批时弹出通知,并可选用完成提示音;配置写在 DSH Settings 里,改完会写回 profile 的 cordis.patch.yml,由 DSH 的 patch 监听热更新,无需重启。插件要求 DSH 0.1.2-rc.1+,且 web profile 已初始化;通知能力面向 Windows(macOS / Linux 下仍会加载,但 Toast 与声音为无操作)。

维护与源码见 GitHub 仓库 sunligh91/dsh-helper(MIT)。社区目录页:SkillHub — FlyGame91/dsh-helper。目录站为社区收录,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-helper 是 DSH 的 Cordis 插件:监听智能体与会话相关事件,在主机侧调用 PowerShell WinRT Toast 发通知,可选播放完成铃音;客户端通过 dsh-client-ui-settings 注入 Task Notifications (dsh-helper) 设置区。它不拦截或重试任务;若需要失败自动重试,README 建议搭配例如 npm 包 dsh-task-reliability 等重试类插件。

当前资料中的版本为 0.5.0;发布物为预构建的 lib/,npm 安装路径下无 install scripts,pnpm 不会因此要求授权构建。

核心功能

任务通知

在以下场景弹出 Windows Toast(均可单独开关):

场景 默认 说明
会话结束 开启 agent/status 为 idle 时;同一 session 60 秒内去重一次
出错 开启 agent/request-error,仅透传,不阻塞、不重试
多选确认 开启 tools/pre-execute 且为 ask_user_question
权限审批 开启 session/event → approval/asked(审计事件,避免被更早的 approval/request 瀑布链抢先返回而收不到通知)

设置页提供三个测试按钮,可分别预览完成、多选确认、权限审批三类真实通知样式。

完成提示音

会话完成且开启 soundOnComplete 时,在完成 Toast 之后播放声音。内置合成双音铃;音量 0–100(默认 70)。soundFile 可指向本地 wav / mp3 / wma;为空用内置铃音;自定义文件缺失时回退内置,再回退 Windows 系统通知音。播放经 PowerShell WPF MediaPlayer;不可用时回退 System.Media.SoundPlayer(仅 wav,且忽略音量设置)。

设置与热更新

在 DSH 中打开 Settings → Task Notifications (dsh-helper)。默认值来自包内 cordis.patch.yml;你的覆盖写入 ~/.dsh/profiles/web/cordis.patch.yml。设置相关的 HTTP 路由为 /_dsh/dsh-helper/settings,仅绑定 localhost(非 127.0.0.1 / ::1 返回 403)。

Windows 投递身份(0.5.0)

Windows 要求桌面应用在「开始」菜单快捷方式上携带 System.AppUserModel.ID,否则 Toast 可能被间歇性静默丢弃(常见现象是只有窗口在前台时才收到)。插件在启动时幂等地创建 %APPDATA%\Microsoft\Windows\Start Menu\Programs\dsh-helper.lnk;无需管理员、无 install scripts。若清理工具删了快捷方式,下次启动 DSH 会再建。

安装与启用

前提:已至少执行过一次 dsh web 以初始化 web profile;Node.js ≥ 20;pnpm ≥ 10。

推荐从 npm 安装预构建包:

dsh plugin --profile web add dsh-helper@latest

若从 Git 源安装(会拉源码并在 prepare 阶段构建),pnpm ≥ 10 需显式允许构建。安装命令以 README 为准:

dsh plugin --profile web add github:sunligh91/dsh-helper

按 pnpm 提示在对应 profile 的 pnpm-workspace.yaml 中加入例如:

allowBuilds:
  dsh-helper: true

仅希望使用预构建产物时,应优先使用上面的 npm 方式。

安装后可在设置页调整通知与声音;若从本地 file: 等方式链入插件,还需把 dsh-helper 加入 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 并对浏览器硬刷新(Ctrl/Cmd + Shift + R)。具体见仓库 README。

典型用法

1、按上一节完成安装,确认 DSH 版本满足 0.1.2-rc.1+。

2、打开 Settings → Task Notifications (dsh-helper),按需开关四类通知与完成音;可用测试按钮确认 Toast 是否正常(注意 Windows 专注助手 / 勿扰可能压制通知)。

3、发起一段会进入 idle、或会触发确认/审批的智能体任务,切到其他窗口等待;对应事件应收到 Toast,完成时可选听到铃音。

配置项与默认值(摘自 README):

Key 默认 说明
notifyOnComplete true 会话结束通知
notifyOnError true 错误通知
notifyOnConfirm true 多选提问前通知
notifyOnPermission true 工具权限审批通知
soundOnComplete true 完成后播放铃音
soundVolume 70 铃音音量 0–100
soundFile "" 自定义音频路径,空为内置铃音

适用场景与注意

适合:主要在 Windows 上使用 DSH web profile、长时间后台跑智能体、需要在「跑完 / 出错 / 要你点选 / 要审批」时立刻被叫回桌面的开发者。

局限(见 README Known limitations):

  • 通知与铃音依赖 Windows;其他平台无实际 Toast/声音。
  • 勿扰模式下 Toast 可能被系统抑制。
  • 本插件只做通知,不做自动重试;重试需另装插件。

安全与信任:插件以当前 DSH 进程权限运行,会通过 PowerShell 发 Toast、播声音,并监听会话与工具事件。安装前请阅读 sunligh91/dsh-helper 源码与 MIT 许可证,确认符合你的环境策略;从 Git 安装并允许 allowBuilds 意味着允许该包在安装时在本机执行构建脚本。

结尾

dsh-helper 把 DSH 里几类「需要你回来」的时刻对齐到 Windows 原生通知与可选完成音,配置集中在 Settings,改完即热加载。若你已在用 DSH 跑长任务,可以把它当作 web profile 上的轻量提醒层;需要失败重试时再单独选配合的重试插件。

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

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

Xiaoye