DeepSeek Harness Telegram Bridge

前言

DeepSeek Harness (DSH) 的 Telegram 机器人插件。它基于 hi-wenw/dsh-telegram-channel 构建,并从 Hermes agent 的 Telegram 网关引入了部分机制。该插件允许通过 Telegram 界面直接管理 DSH 本地会话、话题和媒体。

DSH 理念强调「一切皆插件」,此工具旨在为 DSH 用户提供一个基于 Telegram 的客户端入口,支持会话隔离、话题管理和消息过滤。

核心功能

  • Per-chat/topic sessions:每个话题(论坛或 DM 话题)都是一个独立的会话,机器人回复会自动发送到同一话题内。
  • Topics handling:支持 message_thread_id,正确处理 General 话题(ID 为 1),以及创建、编辑和删除话题。插件会自动将话题重命名为会话标题。
  • DM Topics:支持 Bot API 9.4,在 1 对 1 聊天中创建话题,每个话题作为独立的会话,支持根级 DM 大厅模式。
  • Group gating:提供细粒度的访问控制,包括 require_mention(提及触发)、allowed_chats、allowed_topics、free_response_chats/topics(自由响应模式)、guest_mode 和 ignored_threads。
  • Media in/out:支持收发照片、视频、语音、文件和贴纸。发送文件时使用 MEDIA:/path 标签。
  • Commands:提供 /new(创建会话)、/reset(重置)、/stop(停止并解绑)、/sessions(列出会话)、/last(查看上一轮上下文)、/model(切换模型)、/status(查看当前绑定)、/unbind(解绑)、/help(帮助)。
  • Status indicator:通过 setMyShortDescription 接口显示在线/离线状态。
  • Tool-call filter:内置过滤机制,防止 <tool_calls> 标签泄露到 Telegram 消息中。
  • Polling resilience:针对 Telegram API 的 409 冲突错误实现指数退避重试机制。
  • Choice/clarify:支持通过 ask_user_question 触发内联按钮进行选项选择。
  • Bilingual support:支持俄语和英语,通过环境变量 DSH_TELEGRAM_LANG 切换。

安装与启用

安装前请确保已满足先决条件:Node.js 版本 ≥ 22,DSH Web 环境已配置模型,且已通过 @BotFather 创建了机器人。

使用官方安装命令添加插件:

dsh plugin --profile web add github:todayer/todayer-dsh-telegram-bridge

配置

插件配置文件位于 ~/.dsh/telegram.env。

必要配置:

DSH_TELEGRAM_TOKEN=123456789:AA...            # 从 @BotFather 获取的 Token
DSH_TELEGRAM_ALLOWED_USER_IDS=123456789        # 允许使用的用户 ID(从 @userinfobot 获取)

可选配置:

DSH_TELEGRAM_LANG=ru                           # 语言设置:ru | en
DSH_TELEGRAM_REQUIRE_MENTION=false             # 是否仅允许被提及时触发
DSH_TELEGRAM_ALLOWED_CHATS=                    # 允许聊天的列表
DSH_TELEGRAM_ALLOWED_TOPICS=                   # 允许的话题列表
DSH_TELEGRAM_FREE_RESPONSE_CHATS=              # 自由响应聊天列表
DSH_TELEGRAM_FREE_RESPONSE_TOPICS=             # 自由响应话题列表
DSH_TELEGRAM_GUEST_MODE=false                  # 访客模式
DSH_TELEGRAM_IGNORED_THREADS=                  # 忽略的线程 ID 列表
DSH_TELEGRAM_DM_TOPICS=[{"chatId":1212123,"topics":[{"name":"General"}]}]  # DM 话题配置(JSON 格式)
DSH_TELEGRAM_STATUS_INDICATOR=1                # 状态指示开关
DSH_TELEGRAM_STATUS_ONLINE=🟢 Online           # 在线状态文本
DSH_TELEGRAM_STATUS_OFFLINE=🔴 Offline         # 离线状态文本

配置完成后,将环境变量放入 dsh.service 的 EnvironmentFile 中,并重启服务:

sudo systemctl restart dsh.service

命令

命令 功能
/start 欢迎信息或帮助
/sessions 列出工作区及绑定的会话
/new 创建一个新的会话(强制新建)
/reset 重置当前会话(/new 的别名)
/last 查看当前绑定会话的上一轮对话
/model 切换当前会话使用的模型
/status 查看当前会话绑定状态
/stop 停止并解绑当前会话
/unbind 解绑当前会话(不删除)
/help 查看完整命令列表

注意事项

  • 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
  • 依赖关系包括 Node ≥ 22 以及 DSH Web 环境中的模型配置。
  • 基础逻辑来源于 hi-wenw/dsh-telegram-channel,并扩展了 Hermes agent 的 Telegram 网关机制。
羽毛球分组比赛记分
小程序二维码

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

小夜