前言¶
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 网关机制。