@blue/dsh-telegram-bot:通過長輪詢連接 Telegram

前言

DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。當需要在即時通訊渠道中訪問智能體時,開發者通常需要搭建額外的 Web 服務或配置 HTTP Webhook。下面介紹的 @blue/dsh-telegram-bot 是一個單功能插件,它利用長輪詢機制,直接將 Telegram 機器人連接到 DSH 智能體,省去了公開端點配置和外部服務的依賴。

插件信息

  • 名稱:@blue/dsh-telegram-bot
  • 維護者:Blue-2571
  • 許可證:MIT
  • 定位:一個單功能的 DSH 插件,通過長輪詢將 Telegram 機器人連接到你的 dsh 智能體。

核心功能

  • 長輪詢連接:不依賴 Webhook,使用長輪詢保持連接。
  • 會話管理:一個聊天對應一個智能體(標識爲 telegram:<chatId>),支持多輪對話上下文。
  • 工具掛載:支持將 Agent 預設掛載到機器人會話,使其具備與 Web 界面相同的工具(如 bash、fs、ssh)。
  • 權限控制:通過 allowedUserIds 實現白名單訪問控制。
  • 命令支持:支持 /help、/reset、/status、/model 等 Slack 風格命令。
  • 消息處理:長回覆會自動分割(遵循 Telegram 4096 字符限制),空閒會話會根據超時配置自動清理。

安裝與啓用

安裝插件:

dsh plugin --profile web add @blue/dsh-telegram-bot

安裝後,插件默認處於禁用狀態。需要在 cordis.patch.yml 中啓用並配置:

- id: dsh-telegram-bot
  disabled: false
  config:
    telegram:
      token: '123456:ABC-DEF...'   # 從 @BotFather 獲取的 Token
      allowedUserIds: [6354114195] # 你的數字 Telegram 用戶 ID
    agent:
      preset: standard             # 掛載標準預設以獲取完整工具

保存文件後,重啓 Web Profile (dsh web)。

配置項

配置項 默認值 說明
enabled true 主開關。
telegram.token '' Bot Token,從 @BotFather 獲取。
telegram.allowedUserIds [] 允許交互的用戶 ID 列表(數字)。如果爲空數組,則任何持有 Token 的人均可操作。
telegram.timeoutSeconds 50 getUpdates 長輪詢的超時時間。
telegram.pollIntervalMs 500 輪詢超時或出錯後的間隔時間。
agent.cwd '' 智能體會話的工作目錄(默認爲 dsh 的 cwd)。
agent.provider / agent.model '' 覆蓋模型選擇;留空則使用部署默認值。
agent.preset '' 掛載的 Agent 預設 ID(留空則使用部署默認值)。
agent.maxMessageLength 4000 單條輸出消息的最大字符數。
agent.idleTimeoutMs 1800000 會話空閒超時時間(毫秒),0 表示永不清理。
agent.instructionPrefix '' 每條用戶消息前綴。

可用命令

  • /help:顯示命令幫助信息。
  • /reset:清空當前聊天的上下文,重置智能體。
  • /status:顯示當前活躍的聊天/智能體狀態。
  • /model:顯示當前選擇的模型。

安全與注意事項

  • 默認禁用:安裝後必須手動在 cordis.patch.yml 中啓用。
  • 白名單強制:如果 allowedUserIds 爲空數組,則任何持有 Token 的人都可以執行工具(包括 bash、fs 等),這在生產環境中存在風險。
  • Token 保護:cordis.patch.yml 包含敏感的 Bot Token,請確保該文件權限私有,或通過環境變量引用(如 !!js process.env.TG_BOT_TOKEN)。
  • 長度限制:長回覆會被 Telegram 的 4096 字符限制截斷。

適用場景

  • 需要在 Telegram 中通過命令行或文件系統工具操作 DSH 的開發者。
  • 想要避免部署 Webhook 服務,直接利用現有 DSH 進程進行 IM 交互的場景。

生態鏈接

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

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

小夜