dsh-maestro-notifier: DeepSeek Harness 的可插拔通知服务

前言

在 DeepSeek Harness (DSH) 的开发中,为不同的任务流添加通知机制通常意味着要编写针对特定传输层(如 Telegram Bot API)的集成代码。dsh-maestro-notifier 插件旨在通过抽象一个可插拔的通知服务层,解决这一问题。

插件定位

这是一个由 ddtcorex 维护的插件,隶属于 Maestro Harness 套件(dsh-maestro-*)。它提供了一个基于内存的提供者注册表,默认集成了 Telegram 传输,并预留了扩展其他传输层的能力。

核心功能

该插件主要提供以下能力:

  1. maestroNotifier 服务:服务对象包含 register、ids 和 send 方法,用于管理通知提供者并分发消息。
  2. Telegram 传输:作为默认的传输层,提供单向机器人消息发送。配置包括消息内容保护(protect_content)、禁用链接预览,以及 10 秒超时设置。插件设计上不会记录凭据。
  3. 默认目标解析:当调用 send 方法未显式指定目标时,会尝试从共享设置存储中读取 notify.telegram 配置作为默认目标。
  4. Never-Throw 交付:这是一个设计原则。无论是未知的提供商还是目标解析失败,都不会抛出异常,而是返回一个包含状态和原因的对象 { sent: false, reason }。

安装与启用

使用官方提供的命令进行安装。该插件需要与 DeepSeek Harness 的 Cordis 核心兼容。

dsh plugin --profile web add @ddtcorex/dsh-maestro-notifier

安装完成后,该服务会在 Cordis 上下文中注册,可通过 ctx.get('maestroNotifier') 获取。

典型用法

在代码中获取 maestroNotifier 实例并调用 send 方法。下面的示例展示了如何发送一条消息,其中目标通过默认解析逻辑获取。

const notifier = ctx.get('maestroNotifier')

// target 参数省略时,会尝试从共享设置读取 notify.telegram
await notifier.send('telegram', undefined, { text: 'review finished' })

依赖与环境

在使用此插件前,请确认运行环境满足以下依赖要求:

  • Node.js 版本:要求 ^22.19.0 或 >=24.0.0。
  • Cordis 版本:依赖 @deepseek-ai/cordis,版本要求 ~4.0.4。
  • 配置库:依赖 @ddtcorex/dsh-maestro-config-lib(workspace:^0.3.0)。

注意事项

  1. 仅传输层:这是一个纯传输层的插件。消息的文本内容(领域文本)属于消费插件,此包从不生成领域文本。
  2. 显式目标优先:如果调用方显式提供了目标参数,将优先使用该参数;任何解析器故障最终都会降级为 { sent: false, reason: 'not-configured' }。
  3. 生态归属:它是 Maestro Harness 套件的一部分,短别名为 maestro-notifier。

总结

dsh-maestro-notifier 为 DeepSeek Harness 提供了一个简单、无侵入式的通知抽象。通过 Never-Throw 的设计和默认的目标解析机制,它降低了通知功能的接入成本。开发者可以直接通过代码调用服务,而无需处理底层的传输细节或错误抛出。

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

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

小夜