dsh-telegram-bot:在 Telegram 里用 Topic 对接 DSH 会话

前言

DeepSeek Harness(DSH)的 Web 界面适合在桌面浏览器里长时间调试智能体,但离开电脑后很难继续同一条会话。Telegram 是常见的移动端入口,若只是手动复制粘贴,会话状态、工具审批和模型参数都无法与 DSH 对齐。

下面介绍的 dsh-telegram-bot 是社区维护的 DSH 客户端插件:把某个 DSH profile 接到 Telegram Bot,让 Web 与 Telegram 共享同一套 DSH session;每个 session 对应 Telegram 里的一个 topic。维护者为 Boobaw,在插件目录中归类为「客户端」,GitHub 仓库当前约 3 stars,许可证 MIT。

这是什么

dsh-telegram-bot 为 DeepSeek Harness 提供 Telegram 客户端能力。Bot token 存放在 DSH 凭据存储中,插件在 Host 进程内做轮询、topic 路由与会话桥接,不额外向模型注入工具或 system prompt 文本。

核心功能

资料中明确列出的能力如下:

  • 一个 Telegram topic 对应一个 DSH session;Web 与 Telegram 使用同一会话对象。
  • 仅镜像从 Telegram 发起的 turn;在 Web UI 里开始的对话仍留在 Web。
  • /sessions 列出 workspace 与已有 session,并可在选定 workspace 中新建 session。
  • 助手回复以流式写入 topic,并做 Telegram Markdown 格式化。
  • 推理过程与 tool call 以临时消息展示,回答完成后移除;每条 tool call 最多两行。
  • 内联控件可调整 model、reasoning effort、permission mode、context usage。
  • 工具审批提供 Deny / Allow 按钮。
  • 支持 ask_user_question:选项、多选、自定义答案与 plan review。
  • 命令:/last、/rename、/stop、/restart、/status、/menu。
  • Bot 文案支持英语与俄语。
  • 首次配置演示视频:https://youtu.be/QEeVucfBsWk。

环境与依赖

  • DSH 0.2.1-rc.2 或更新版本(package.json 中 engines 为 dsh >=0.2.1-rc.2 <0.3.0)。
  • Node.js 22+。
  • 来自 @BotFather 的 bot token。
  • 在 BotFather 中开启 Threaded mode,并在 bot 私聊里开启 Topics。

安装与启用

插件当前 npm 版本为 0.1.6。安装或更新后需重启 dsh web,再在 Settings → Telegram 中配置。

从仓库本地安装:

npx @deepseek-ai/dsh plugin --profile web add .

从 npm 安装:

npx @deepseek-ai/dsh plugin --profile web add dsh-telegram-bot@latest

插件页主要用于说明,实际配置在 Settings → Telegram;可通过 bundle 开关启用或禁用插件。Enable bot 为软暂停:插件仍加载,但停止轮询。

配置项

字段 含义
Bot token @BotFather 的 token;存入凭据存储
tokenRef token 对应的凭据/环境变量名;默认 TELEGRAM_BOT_TOKEN
cwd Telegram 创建 session 时的工作目录
agentPreset Telegram session 挂载的 preset;默认 standard
Allowed users 允许的 Telegram user id 或 @username
Allowed chats 允许的 chat id 或 @channelname
Show model thinking 是否在临时消息中展示推理
Show tool calls 是否在临时消息中展示 tool call
Bot language en(默认)或 ru
Enable bot 启动或暂停 Telegram 轮询

页面上 token 字段只显示是否已配置;通过环境变量提供的 token 不能在页面里被覆盖。

首次运行

  1. 在 @BotFather 创建 bot,将 token 写入 Settings → Telegram。
  2. 在 @BotFather 打开 Bot Settings → Threaded mode 并启用。
  3. 打开 bot 对话,点 bot 名称,启用 Topics。
  4. 在 All 里发送 /start。若 allowlist 为空,bot 会回复你的 user id 与 chat id。
  5. 把你的 user id 加入 Allowed users 并 Save。
  6. 在 All 发送 /sessions,选择 workspace,打开或新建 session。
  7. 在新 topic 里发送测试消息。

无 Web UI 的 Headless profile

Bot 可在不启动 Web UI 的情况下运行。示例目录与依赖如下。

mkdir -p ~/.dsh/profiles/tg
cd ~/.dsh/profiles/tg

package.json:

{
  "name": "dsh-profile-tg",
  "private": true,
  "dependencies": { "dsh-telegram-bot": "latest" },
  "dsh": {
    "profile": {
      "bundles": ["@deepseek-ai/dsh-base", "dsh-telegram-bot"]
    }
  }
}

cordis.patch.yml:

- id: telegram-bot
  name: dsh-telegram-bot
  config:
    enabled: true
    allowedUsers: ["<user-id>"]
    allowedChats: ["<chat-id>"]

安装并运行:

npm install
printf 'TELEGRAM_BOT_TOKEN=%s\n' '<token>' >> ~/.dsh/.env
chmod 600 ~/.dsh/.env
npx @deepseek-ai/dsh --profile tg

不要把 token 写进 cordis.patch.yml。

适用场景与注意

适合需要在手机 Telegram 里延续 DSH 会话、处理工具审批与结构化提问的开发者。群组与频道对话必须在 Allowed chats 中显式放行;Allowed users 为空时,bot 仅在私聊中回复 setup 提示。

安全方面需知:同一 token 不要跑两个 poller,否则 Telegram 会返回 409 Conflict。DSH 插件与 Host 同进程运行,安装前应自行审阅源码与 MIT 许可证,只安装可信来源。Bot token 放在凭据存储,而非 profile patch。

结尾

dsh-telegram-bot 把 DSH session、流式回复、审批与 session 控制映射到 Telegram topic,与 Web 共用会话模型。插件目录页:https://www.skillhub.cn/plugins/Boobaw/dsh-telegram-bot;源码与完整说明:https://github.com/Boobaw/dsh-telegram-bot。

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

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

Xiaoye