前言¶
在 DSH(DeepSeek Harness)环境中运行智能体时,任务状态往往隐藏在终端窗口之后。当代理任务完成、需要人工输入或等待审批时,用户容易错过这些关键状态。dsh-win-notify 是一个 DSH 宿主端插件,它利用 Windows 的 WinRT Toast Notification API,在上述场景下弹出真正的系统级通知,并将消息持久化到系统的通知中心。
核心功能¶
该插件专注于在需要用户介入或状态变更时提供可见反馈。
- 任务完成通知:当用户可见的根代理状态从 running 变为 idle 时,弹出通知。通知正文优先显示真实会话标题,例如“已完成:「<会话标题>」”。
- 需要您的输入:当调用
ask_user_question接口时,在提问呈现的瞬间弹出通知,包含问题摘要与数量。 - 需要您的审批:当 Agent 请求操作审批时,弹出通知,包含被请求的工具名与原因。
- 品牌化显示:通知来源显示为“DeepSeek Harness”,并附带黑底白鲸鱼图标(多帧 16–256px),确保在通知中心中身份明确。
- 噪音控制:子代理、AgentTeams 成员或 workflow worker 的完成、提问和审批一律不打扰用户。同一代理两次“任务完成”通知之间至少间隔 10 秒。
- 通知中心持久:Toast 通知会进入系统通知中心,不会随横幅自动消失。
- 零依赖:插件本身无外部运行时依赖。通知发送由宿主端事件直出,辅助的 Toast 功能由随包预编译的 .NET 4 EXE 完成。若 EXE 丢失,系统自带的
csc.exe可自动重建。
安装与启用¶
安装插件后需重启 DSH Web 服务以生效。
dsh plugin --profile web add dsh-win-notify
执行该命令会将插件安装至 ~/.dsh/profiles/web,并根据配置自动将其加入 dsh.profile.bundles。
典型用法¶
- 任务完成:代理运行结束后,桌面右下角弹出“已完成:xxx”的提示,并保留在通知中心。
- 提问:代理需要你确认选项时,系统会立即弹出“需要您的输入”的提示。
- 审批:代理尝试调用敏感工具(如文件读写)前,会先弹出“需要您的审批”的提示。
系统要求与限制¶
- 操作系统:仅支持 Windows 10 / 11。
- 非 Windows 环境:在 Linux 或 macOS 上安装后,插件不会报错,但会进入空转状态,不注册任何事件。
- 生效方式:安装或更新后,必须重启
dsh web进程才能使新功能生效。
验证¶
若要确保插件构建与逻辑无误,可运行以下命令进行完整校验:
npm run check
结语¶
dsh-win-notify 通过利用 Windows 原生通知机制,解决了 DSH 在后台运行时的状态可见性问题。它提供了清晰的反馈路径,并内置了噪音控制机制,适合在需要持续监控智能体状态的工作流中使用。
GitHub: https://github.com/kongdexu/dsh-win-notify