在 DeepSeek Harness (DSH) 的任务编排或智能体开发场景中,当长时间运行的代理在后台执行任务时,开发者往往无法实时感知任务进度。dsh-task-notify 插件旨在解决这一痛点,通过调用原生操作系统通知机制,在特定任务状态(如目标完成、代理回合结束)发生时,在桌面端弹出直观的视觉反馈。
这是一个 DSH 插件,由开发者 YuMo226 维护。它不依赖复杂的运行时环境,而是直接利用操作系统原生的通知服务,确保在 Windows、macOS 和 Linux 上都能获得一致的体验。
核心功能¶
- 原生 OS 通知:支持 Windows Toast、macOS Notification Center 和 Linux libnotify。通知以系统原生横幅形式展示,不会阻塞 DSH 的主进程运行。
- 双触发器支持:支持配置两种触发条件:
onGoalComplete:当目标状态变为complete时触发。onTurnEnd:当代理回合正常结束时触发。
- 零运行时依赖:仅使用 Node.js 内置模块和系统自带的命令行工具(如 PowerShell、osascript、notify-send),无需额外安装第三方库。
- CJK 文本安全:针对中文环境优化,在 Windows 上通过 UTF-8 临时文件传输文本,防止中文字符乱码。
- 防抖动机制:内置最小间隔限制,防止在短时间内发送过多通知干扰用户。
安装与启用¶
通过 DSH 的插件管理器进行安装。安装后需重启 dsh web 进程以使插件生效。
dsh plugin --profile web add dsh-task-notify
安装完成后,需要在配置文件中添加插件实例。以下是启用“目标完成”和“回合结束”通知,并设置最小间隔为 4000 毫秒的配置示例:
- insert:
- id: notify
name: dsh-task-notify
config:
onGoalComplete: true
onTurnEnd: true
title: 'DeepSeek Harness'
minIntervalMs: 4000
适用场景与注意¶
- 平台依赖:
- Windows:请确保系统通知中心已开启,且“专注助手”未设置为“仅限闹钟”或“仅限优先”。
- macOS:依赖
osascript命令,兼容 macOS 10.8 及以上版本。 - Linux:优先使用
notify-send(需安装libnotify)。如果系统未安装 libnotify,插件会尝试回退使用zenity或kdialog。
- 日志排查:所有通知的发送尝试及失败原因都会记录在用户目录下的日志文件中:
<home>/task-notify.log。如果未收到通知,建议首先查看此日志文件。
dsh-task-notify 通过轻量级的系统级通知,降低了智能体开发中的状态确认成本。如需查看更多细节或提交问题,请访问 GitHub 仓库。