DeepSeek Harness 用于运行长任务。如果你不盯着对话窗口,就会错过 agent 完成任务或需要输入的时刻。dsh-notify 在主机上观察 DSH 事件总线,并触发 Windows 原生 Toast 通知,无论浏览器标签页是聚焦、在后台还是关闭。
这是什么¶
这是一款为 DeepSeek Harness 设计的插件,用于在 agent 完成任务或 harness 等待用户输入/授权时提供 Windows 原生桌面通知(Toast)和声音提示。
- 维护者:
lalilulelo3 - 许可证:MIT
- 定位:客户端插件,专注于提升长时间运行任务的用户体验。
安装¶
先确认系统环境满足要求(见注意事项)。安装过程由 CLI 自动完成,无需手动编辑配置文件。
- 执行安装命令:
dsh plugin --profile web add @lalilulelo3/dsh-notify
- 安装或卸载后,必须重启
dsh web进程才能生效。
核心功能¶
该插件提供以下能力:
- Windows 原生 Toast 通知:利用系统原生能力,在桌面弹出通知。
- 声音提示:任务结束或等待用户时播放默认系统通知声音。
- 事件监听:
turn/end:Agent 完成一次回合。user-questions/request:Harness 等待用户回答。approval/asked:Harness 等待用户授权。
- 观察模式:插件监听事件后即返回,不阻塞 Agent 循环,保证 Harness 运行流畅。
- 子代理支持:可配置是否通知子代理会话(默认关闭,避免多代理运行时噪音过大)。
- 跨平台兼容:在非 Windows 平台插件会加载但保持静默,不影响 Harness 启动。
配置¶
配置文件位于 ~/.dsh/profiles/web/cordis.patch.yml。DSH 支持热重载,修改后无需重启即可生效。
以下是几个典型配置示例:
仅接收特定原因的结束通知:
- id: dsh-notify
config:
reasons: [completed, error]
关闭声音通知:
- id: dsh-notify
config:
sound: false
常用配置项说明:
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enabled |
boolean | true |
总开关,设为 false 禁用所有通知 |
turnEnd |
boolean | true |
是否在回合结束时通知 |
question |
boolean | true |
是否在等待回答时通知 |
approval |
boolean | true |
是否在等待授权时通知 |
reasons |
string[] | [completed, error, blocked, max-tokens] |
指定 turn/end 的触发原因 |
subagents |
boolean | false |
是否通知子代理会话 |
sound |
boolean | true |
是否播放声音 |
title |
string | DSH |
通知标题 |
工作原理¶
插件在加载时订阅了 DSH 的内部事件流:
- 事件监听:监听
session/event(会话事件流)和user-questions/request(工具调用瀑布流)。 - 触发通知:当监听到
turn/end、approval/asked或user-questions/request事件时,插件会生成 Windows Toast 通知。 - 执行机制:通知逻辑通过调用
powershell.exe执行 WinRT 脚本实现。该进程为“即发即弃”模式,不等待执行结果,确保不会卡顿 Harness 的主循环。
注意事项¶
- 系统要求:仅支持 Windows 10 或 11。
- Profile 要求:必须使用
webprofile 启动 DeepSeek Harness。 - Node.js 版本:需要 Node.js >= 20。
- 权限与设置:
- 安装或卸载后,必须重启
dsh web。 - Windows 通知设置中,请确保“专注助手”或“请勿打扰”已关闭,否则可能收不到通知。
- 安装或卸载后,必须重启
- 非 Windows 平台:插件会加载但无法工作,这是设计行为,不会导致报错。
总结¶
dsh-notify 通过观察模式解决了长时间运行 Harness 时容易漏掉关键事件的问题。它不干扰 Agent 的运行逻辑,仅提供桌面层面的反馈。该插件是 DeepSeek Harness 生态中提升可用性的工具之一,更多细节可查阅GitHub 仓库或社区目录。