DeepSeek Harness 插件:远程 IM Webhooks 与多渠道通知

前言

DeepSeek Harness (DSH) 能够捕获会话中的特定事件,例如任务完成、报错或等待审批。在没有外部干预的情况下,这些事件仅存在于当前的会话或窗口中。如果你同时运行多个并行会话,或者将窗口最小化到后台,这些事件很容易被忽略。

goodandready/dsh-plugin-notify 插件旨在解决这一隔离问题。它通过五种灵活的通知层,将事件反馈从会话内部扩展到浏览器外部。

插件简介

插件名称为 @goodandready/dsh-plugin-notify,由 GooDAnDReaDY 维护,属于联网工具分类。它提供音频提示、跨会话弹窗、桌面原生推送、远程 IM Webhook 以及 Web Push (PWA) 等功能,覆盖任务完成、报错和审批等待等场景。

核心功能

插件主要提供以下能力:

  1. 音频提示:利用 Web Audio API 生成五声音阶提示音,无需加载外部音频文件。
  2. 跨会话弹窗:在屏幕上显示浮动横幅,横幅包含“跳转会话”按钮,可直接跳转到触发事件的具体会话。
  3. 桌面/操作系统推送:通过 HTML5 Notification API,在 Windows、macOS、Linux 和 DSH Desktop 上发送原生通知,点击通知可聚焦窗口或切换会话。
  4. 远程 IM Webhooks:向飞书、企业微信、钉钉、Slack、Discord 或自定义端点发送 JSON 格式的 Webhook 请求。
  5. Web Push (PWA):利用 W3C Push API 和 Service Worker 实现后台推送,即使浏览器标签页关闭也能接收通知。此功能需要 HTTPS 环境或 localhost。
  6. 其他功能:支持 Do Not Disturb (DND) 窗口设置、排除特定会话前缀,以及通过 Server-Sent Events (SSE) 实现实时通知流。

安装

通过 DSH Web Profile 安装:

dsh plugin --profile web add @goodandready/dsh-plugin-notify

安装后,重启 Web Profile 使客户端加载生效。随后进入 Settings → Plugins → Notify 配置插件。

配置与用法

Webhook 配置

所有的 Webhook URL 必须配置在 Settings → Credentials 中。在插件配置卡片中,只需填写对应的凭证名称。

YAML 配置示例

在插件的配置 YAML 中,可以启用各类通知并设置参数:

- id: plugin-notify
  name: '@goodandready/dsh-plugin-notify'
  config:
    enableSound: false
    enableToasts: false
    enableDesktopNotifications: false
    notifyBackgroundOnly: false
    webhooks:
      feishu: NOTIFY_FEISHU_WEBHOOK
      wecom: NOTIFY_WECOM_WEBHOOK
      dingtalk: NOTIFY_DINGTALK_WEBHOOK
      slack: NOTIFY_SLACK_WEBHOOK
      discord: NOTIFY_DISCORD_WEBHOOK
      custom: NOTIFY_CUSTOM_WEBHOOK
    events: [task_done, error, approval_requested]
    local: true
    timeoutMs: 5000
    dnd:
      start: ''
      end: ''
    includeSession: true
    includeDuration: true
    excludeSessionPrefixes: []
    webPush:
      enabled: false
      onlyWhenAway: true
      subject: 'mailto:notify@localhost'
      stateFile: ''

VAPID 密钥管理

若使用 Web Push 功能,VAPID 密钥默认在首次使用时生成并持久化。也可通过环境变量手动管理:
* DSH_NOTIFY_VAPID_PUBLIC_KEY
* DSH_NOTIFY_VAPID_PRIVATE_KEY

本地化

UI 支持英语 和中文。俄语界面由 dsh-russian-lang 运行时提供。

注意事项

  1. 运行环境:插件依赖 Node.js 20 或更高版本。
  2. Web Push 限制:Web Push 需要 HTTPS 协议支持(本地开发除外)。在 iOS 设备上,PWA 必须添加到主屏幕(iOS 16.4+)才能正常接收后台推送。
  3. 错误处理:Webhook 请求失败仅记录日志,不会重试,也不会阻塞 DSH 的代理循环。失效的订阅会被自动清理。
  4. 样式隔离:注入的样式表包含 data-dsh-plugin="dsh-plugin-notify" 标签。

总结

该插件通过将 DSH 事件通知从会话中解放出来,提供了从本地音频到远程 IM 的多层级反馈。通过配置 Webhook,可以将自动化流程与现有的 IM 工具集成,确保关键事件及时被感知。

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

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

小夜