前言¶
在 DeepSeek Harness (DSH) 的开发中,为不同的任务流添加通知机制通常意味着要编写针对特定传输层(如 Telegram Bot API)的集成代码。dsh-maestro-notifier 插件旨在通过抽象一个可插拔的通知服务层,解决这一问题。
插件定位¶
这是一个由 ddtcorex 维护的插件,隶属于 Maestro Harness 套件(dsh-maestro-*)。它提供了一个基于内存的提供者注册表,默认集成了 Telegram 传输,并预留了扩展其他传输层的能力。
核心功能¶
该插件主要提供以下能力:
maestroNotifier服务:服务对象包含register、ids和send方法,用于管理通知提供者并分发消息。- Telegram 传输:作为默认的传输层,提供单向机器人消息发送。配置包括消息内容保护(
protect_content)、禁用链接预览,以及 10 秒超时设置。插件设计上不会记录凭据。 - 默认目标解析:当调用
send方法未显式指定目标时,会尝试从共享设置存储中读取notify.telegram配置作为默认目标。 - 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)。
注意事项¶
- 仅传输层:这是一个纯传输层的插件。消息的文本内容(领域文本)属于消费插件,此包从不生成领域文本。
- 显式目标优先:如果调用方显式提供了目标参数,将优先使用该参数;任何解析器故障最终都会降级为
{ sent: false, reason: 'not-configured' }。 - 生态归属:它是 Maestro Harness 套件的一部分,短别名为
maestro-notifier。
总结¶
dsh-maestro-notifier 为 DeepSeek Harness 提供了一个简单、无侵入式的通知抽象。通过 Never-Throw 的设计和默认的目标解析机制,它降低了通知功能的接入成本。开发者可以直接通过代码调用服务,而无需处理底层的传输细节或错误抛出。
- 插件目录:ddtcorex/dsh-maestro-notifier
- 源码仓库:GitHub