前言¶
在智能体开发与 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