前言¶
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 網關機制。