DSH Desktop 原生通知插件:任务状态与提醒

前言

在智能体开发与 DSH 使用中,任务完成、需要用户介入或出错时,如果没有及时、明确的反馈,很容易遗漏关键状态。原生通知是这种反馈最直接的方式之一。

是什么

dsh-desktop-notify 是一个 DSH 客户端插件,用于在 Windows 上弹出原生 Toast 通知并播放内置 ciallo 提示音。插件由 Dax233 维护,目标是让 DSH Agent 在任务完成、需要用户提问或出错时,通过系统通知获得即时提醒。

核心功能

  • 原生 Windows Toast:通过 PowerShell + WinRT (ToastNotificationManager) 发送原生通知,并在“操作中心”中持久显示。
  • 显式播放系统声音:使用 System.Media.SoundPlayer 播放系统 WAV,不受通知静音设置影响。
  • 工具接口:提供 notify 工具,支持以下字段:

  • title:标题(必填)

  • body:正文(可选,1~2 行上下文)
  • sound:是否播放声音,默认 true,false 发送静默通知
  • urgency:优先级,可选 info(默认)、attention、blocked;blocked 使用 requireInteraction,需手动关闭
  • tag:同一 tag 会替换旧通知
  • action:动作类型,可选 send(默认)或 status

  • 实现方式:Host half (index.js + toast.js) 注册 notify 工具,直接通过 Windows WinRT 发送通知。不依赖 node-notifier/SnoreToast,也不使用 Web Notification API(后者在某些机器上不会显示到操作中心)。

  • 限制与依赖:
  • 仅支持桌面端(需要 DSH Desktop 渲染器及其 Web Notification 支持)。
  • Windows 通知权限由 DSH Desktop 提供;若在 Windows 通知设置中禁用该应用,工具会报告 permission is denied。
  • 声音音量与专注助手由 Windows 控制,插件只能选择静音或默认声音。

安装与启用

在终端中执行以下命令安装:

dsh plugin --profile desktop add github:Dax233/dsh-desktop-notify

安装完成后重启 DSH Desktop。通知样式与声音会受 Windows 通知设置影响。

典型用法

以下示例展示在任务完成时发出通知:

notify({
  title: "任务完成",
  body: "数据清洗已结束,共处理 1200 条记录。",
  urgency: "info"
});

需要用户介入时:

notify({
  title: "需要确认",
  body: "请审核生成的代码片段后再继续。",
  urgency: "attention"
});

出错时:

notify({
  title: "处理失败",
  body: "无法连接到目标 API,请检查网络与权限。",
  urgency: "blocked"
});

适用场景与注意

  • 适合需要明确状态反馈的场景:任务完成、需要用户决策、出错告警等。
  • 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
  • 如需进一步排障,可参考仓库中的 docs/desktop-notify.md。

结尾

这个插件让 DSH Agent 的状态与提醒更贴近原生系统体验,适合需要稳定通知反馈的开发与使用场景。

  • 插件目录:https://www.skillhub.cn/plugins/Dax233/dsh-desktop-notify
  • GitHub:https://github.com/Dax233/dsh-desktop-notify
羽毛球分组比赛记分
小程序二维码

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

Xiaoye