前言¶
DeepSeek Harness (DSH) 的插件生态支持通过插件扩展代理行为。在运行长会话时,开发者往往需要离开电脑,此时需要一个机制来感知会话状态的变化。dsh-helper 插件通过调用 Windows 原生通知能力,在会话结束、报错或需要人工确认时提醒开发者。
核心功能¶
该插件主要解决会话状态反馈的缺失问题:
- 任务状态通知:监听 DSH 事件,在代理会话空闲(任务完成)、报错、需要多选确认或工具权限审批时,弹出原生 Windows Toast 提示。
- 完成提示音:会话结束时播放提示音,内置合成提示音,音量支持 0-100 调节,也可指定本地音频文件。
- 设置与测试:在 DSH 设置面板提供开关配置和测试按钮,可实时预览三种通知类型。
- 零依赖与热重载:通过
cordis.patch.yml管理配置,无需重启 DSH 即可生效,不依赖本地编译环境。
安装与启用¶
在使用前,请确保已安装并初始化 DSH 的 Web 配置文件(即运行过 dsh web),且 DSH 版本不低于 0.1.2-rc.1。
执行以下命令进行安装:
dsh plugin --profile web add dsh-helper@latest
安装完成后,插件会自动创建 Delivery Identity(AppUserModelID 快捷方式),以确保通知在应用未聚焦时也能正常送达。
配置与使用¶
- 打开 DSH 设置界面,找到 Task Notifications (dsh-helper) 选项。
- 根据需求开启或关闭以下开关:
notifyOnComplete:会话完成时通知。notifyOnError:会话报错时通知。notifyOnConfirm:代理需要多选确认时通知。notifyOnPermission:工具触发权限审批时通知。
- 调整提示音设置,包括音量(0-100)或指定本地音频文件路径(支持 wav/mp3/wma)。
- 点击设置面板中的测试按钮,预览不同类型的通知效果。
技术原理与限制¶
- 平台限制:通知机制基于 PowerShell WinRT Toast,仅支持 Windows 平台。在 macOS 或 Linux 上,插件会加载但不执行任何操作(静默空操作)。
- 声音播放:声音播放依赖 WPF MediaPlayer,若不可用则回退至
System.Media.SoundPlayer(仅支持 wav 格式且忽略音量设置)。 - 系统干扰:如果 Windows 的“专注助手”或“勿扰模式”处于开启状态,通知可能会被系统拦截。
- 安全性:设置面板的访问路由
/_dsh/dsh-helper/settings仅绑定本地地址,防止跨域访问。
结语¶
dsh-helper 为 DSH 用户提供了一种轻量级的会话状态感知方案,适合需要长时间运行任务并希望即时获知结果的开发者。