dsh-notify-linux: DSH 任务通知与提示音

前言

DeepSeek Harness (DSH) 在运行智能体任务时,通常会在后台持续执行。如果仅仅依赖浏览器原生的通知机制,当页面处于后台标签页、最小化窗口或关闭标签页时,通知往往会丢失。这意味着开发者可能错过任务结束的信号、需要人工决策的时刻,或者任务失败的报错信息。

dsh-notify-linux 解决了这个问题。它通过 DSH 的主进程发送系统级通知,确保无论浏览器窗口状态如何,桌面通知和提示音都能准时送达。

插件简介

dsh-notify-linux 是一个为 DSH 设计的 Linux + GNOME 平台插件,由开发者 Wlaeg 维护。其核心价值在于:当 DSH 完成一轮任务、需要用户选择、等待工具调用批准,或发生错误时,通过 notify-send 发送桌面通知,并通过 paplay 或 canberra-gtk-play 播放提示音。

核心功能

该插件通过 DSH 的主进程进行通知分发,具备以下能力:

  1. 事件监听与通知:监听四种事件类型,每种类型均可独立配置:
    • turnEnd:任务回合结束。
    • question:模型请求用户进行选择。
    • approval:工具调用等待人工批准。
    • error:执行步骤或整轮任务失败。
  2. 系统级通知:使用 notify-send(依赖 libnotify)发送通知,通知标题和内容包含会话信息(工作区 · 会话 ID)。
  3. 声音提示:使用 paplay 播放提示音,当 paplay 不可用时,回退使用 canberra-gtk-play。
  4. 浏览器回退机制:当系统通知能力不可用时,使用 Web Notification 和 Web Audio 作为降级方案,确保通知不丢失。
  5. 灵活配置:所有开关(包括主开关、事件开关、系统通知开关、声音开关等)均可通过 DSH 设置页面的「任务通知」导航项,或直接编辑 JSON 配置文件进行管理。

安装与启用

这是一个 DSH Cordis 插件包。请通过 DSH 的插件管理器进行安装。

在终端中执行以下命令,将插件指向本地目录或 Git 仓库:

# 方式一:指向本地目录
plugin_manager install_bundle /home/wlaeg/文档/deepseek-harness/default-workspace/dsh-notify

# 方式二:指向 Git 仓库
plugin_manager install_bundle https://github.com/Wlaeg/dsh-notify-linux

安装完成后,插件即处于激活状态。为使浏览器端(设置页面、Toast 弹窗)生效,请刷新 DSH 的 Web UI 页面。

配置与使用

配置文件

所有配置选项存储在单个 JSON 文件中:

$DSH_PROFILE_DIR/dsh-notify-linux

该文件默认位于 ~/.dsh/profiles/web/dsh-notify-linux.json。配置文件采用原子写入模式,可以直接编辑并保存。

设置页面

在 DSH 的设置页面中,导航至「任务通知」部分。这里包含主开关、四个事件类型的独立开关、系统通知/声音开关、主题选择以及「测试」按钮。设置页面支持中英文本地化。

环境要求与注意事项

系统依赖

  • 平台:Linux + GNOME(已在 Manjaro GNOME、Wayland 环境下验证)。
  • 运行环境:Node.js 版本需大于等于 22。
  • 外部工具:
    • notify-send(来自 libnotify)。
    • paplay(来自 pulseaudio-utils)或 canberra-gtk-play(来自 libcanberra)。
    • 声音文件路径:/usr/share/sounds/freedesktop/stereo。

注意事项

  • 后台运行:通知由 DSH 主进程发送,因此即使浏览器页面关闭,通知依然有效。
  • 语言:当前通知字符串为中文。
  • 插件替换:若要替换已安装的插件副本(例如修改源码后),必须重启 DSH 的宿主进程。仅刷新 Web UI 页面是不够的,旧的路由和处理器会继续运行。
  • 依赖可选性:插件具备优雅降级能力。如果系统缺少 notify-send 或 paplay,插件不会阻塞任务执行,而是回退到浏览器端的 Web Notification 和 Web Audio。

总结

dsh-notify-linux 通过系统级的通知机制,解决了 DSH 在后台运行时信息反馈不及时的问题。它提供了清晰的四种事件反馈,并支持灵活的配置,适合需要在 Linux 环境下长时间运行 DSH 任务的开发者使用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜