dsh-channel-telegram:DeepSeek Harness 的 Telegram 薄桥接插件

前言

DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。当需要在 Telegram Bot 中与 agent 交互时,手动编写桥接代码会涉及大量 Bot API 调用逻辑,且需要处理会话映射、长任务队列等细节。dsh-channel-telegram 提供了一个独立的解决方案,通过长轮询接收私聊消息,并将 Telegram 聊天映射为 DSH agent 会话,无需修改 DSH 源码即可启用。

插件定位

这是一个 Telegram 薄桥接插件。由 LosEcher 维护。它将 DSH 的 agent 通过 Telegram Bot 暴露出来,走与 ACP 桥完全相同的驱动模式(agents.create → agent.followup → agent.whenIdle),回复最终 assistant 文本。插件独立交付,DSH 的 Host loader 支持绝对路径插件 entry。

核心功能

根据已核实事实,该插件具备以下能力:
* 长轮询接收私聊消息。
* 按 chatId 映射 DSH agent 会话,会话 ID 为 telegram-<chatId>。
* 长任务串行队列:每个 chat 一个队列,长任务不阻塞轮询。
* 支持命令:/start、/help、/new、/status。
* 4096 分块消息回复。
* 409/401 错误自动处理。

安装与启用

该插件作为独立 bundle 提供,不涉及官方安装命令。启用流程如下:

  1. 获取 Bot Token
    在 Telegram 中找到 @BotFather 创建 bot,并获取 Token。

  2. 配置环境变量
    确保 DSH 进程环境变量中包含 TELEGRAM_BOT_TOKEN(默认变量名,可通过 tokenEnv 修改)。如果通过绝对路径引入源码开发,需确保 name 为绝对路径。

  3. 获取 Chat ID
    给 @userinfobot 发送任意消息,即可获取用于配置的 chatId。

  4. 合并配置文件
    将插件的 cordis.telegram.yml 内容合并进 DSH 的配置文件。通常合并进 $DSH_HOME/cordis.patch.yml(全部 profile)或 $DSH_HOME/profiles/<name>/cordis.patch.yml(单 profile)。配置中的 allowlist 填入你的私聊 ID(空数组表示全部拒绝)。

  5. 重启服务
    重启 dsh web。日志中应出现 [dsh-channel-telegram] connected as @...。

- insert:
    - id: channel-telegram
      name: dsh-channel-telegram
      config:
        tokenEnv: TELEGRAM_BOT_TOKEN
        allowlist: [123456789]            # 你的私聊 id
        # workspace: /abs/path            # 可选,agent 会话 cwd(默认 ~/.dsh-telegram/workspace)
        # provider: los-gateway           # 可选:agent 走的 provider 路由
        # model: deepseek                 # 可选:该路由上的模型

典型用法

配置完成后,可以通过私聊与 Bot 交互。

  • 会话管理:每聊一会话对应一个 telegram-<chatId>,上下文连续。使用 /new 命令可销毁重建会话。
  • 命令响应:
    • /start:启动会话。
    • /help:查看帮助。
    • /new:销毁当前会话并创建新的。
    • /status:查看当前会话状态。
  • 消息回复:Bot 会发送 typing 动作,并在整轮回复结束后发送 assistant 文本。如果 assistant 文本超过 4096 字符,会自动分块发送。

适用场景与注意

  • 依赖要求:依赖 @deepseek-ai/cordis (>=4.0.0 <5.0.0)。
  • 功能限制:
    • 无流式输出:需要等待整轮任务完成才回复。
    • 无媒体处理:目前仅支持文本消息接收。
    • 内存会话:会话映射在内存中,重启 DSH 进程后 /new 语义自然达成(即新进程需要重新配置 allowlist)。
    • 消息去重:依赖 Bot API 的 offset 机制保证不重投,但 DSH 侧无额外去重逻辑。
  • 安全机制:allowlist 是唯一的安全闸门。非 allowlist 的私聊首次收到“未授权”提示,非私聊消息会被忽略。Agent 继承宿主全局权限设置,建议在低权限 preset 或独立 profile 下运行。

结语

dsh-channel-telegram 通过长轮询和 thin bridge 的设计,为 DSH 提供了标准化的 Telegram 交互能力。它专注于私聊场景,通过命令和会话管理机制,在保持轻量级的同时提供了必要的功能覆盖。对于需要通过 Telegram 调用 DSH agent 的用户,这是一个可以直接集成的选择。

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

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

小夜