dsh-tg-bridge:在 Telegram 里驱动 DeepSeek Harness

前言

DeepSeek Harness(DSH)的智能体能力通常依赖桌面客户端或本地 CLI:改代码、跑工具、看进度,都要坐在电脑前打开应用。手机或外出时,常见做法是 SSH 进机器,或把任务丢到别的聊天机器人里,再由另一套脚本转发——会话、工作目录和 DSH 的 profile 往往对不上,进度也散在多处。

下面介绍 maintainer aleksvega 维护的 dsh-tg-bridge:通过 Telegram Bot 把文本、语音和图片交给本机已安装的 DSH 处理,并在群组「话题」(forum topic)里按项目隔离会话与工作目录,回复里带实时进度、Stop 按钮和可复制代码块,无需打开桌面应用。

这是什么

dsh-tg-bridge 是面向 DeepSeek Harness 的 Telegram 桥接插件。每个 Telegram 话题对应一个独立项目:自有 session、自有工作目录;一轮对话的进度会编辑在同一条消息里更新,而不是刷屏多条。

仓库:https://github.com/aleksvega/dsh-tg-bridge
社区目录页:https://www.skillhub.cn/plugins/aleksvega/dsh-tg-bridge

核心功能

以下能力均来自项目 README 与 package.json 说明,可按需选用。

消息与媒体

  • 文本:普通任务进入 agent,答案回到同一话题。
  • 语音:本地 faster-whisper 转写,转写文本会先展示再进入回答。
  • 图片:当前轮模型通过 read_image 读取,无需默认再挂第二个视觉模型;可选 vision.patch 覆盖配置。

话题级项目与会话

  • 按话题换目录:例如 /cd my-app,该话题后续轮次在对应目录执行。
  • 目标与清单:/goal、/task,重启后仍保留,并会 prepend 到每一轮上下文。
  • 按话题设置 crew:/crew use reviewer 可为单个话题指定模型、effort、权限、agent 预设和语言;/crew off 恢复全局 profile。内置四套只读配置可复制使用。

交互与可靠性

  • 实时进度:每轮一条可编辑消息,含步骤、计时、缓存命中率;模型 reasoning 与长轮次的工具调用折叠块可点开查看。
  • Stop / Retry、工具确认:在消息内按钮完成,不必手打命令。
  • 消息不丢:带确认与重放的 journal。
  • 配额耗尽 fail-fast:会尽快切到配置的免费模型(fallbackModels)。
  • 诊断:dsh-tg check 只报告状态,不改系统。
  • 语言:菜单与服务消息支持 en、ru、zh;/lang 固定话题语言;新话题还可根据消息字符(西里尔文 → ru,汉字 → zh)等规则推断。

环境与依赖

安装前请核对本机是否满足 README 中的要求:

  • Node.js ≥ 24(与 DSH 自带版本一致;session 使用 zstd 压缩)
  • DeepSeek Harness 0.2.1-rc.2 及以上、0.3.0 以下(>=0.2.1-rc.2 <0.3.0;兼容范围以包内 engines.dsh 为准)
  • DSH 已安装,且存在 headless profile(~/.dsh/profiles/headless)
  • 来自 @BotFather 的 Bot Token;你的 numeric user id 可通过 @userinfobot 获取

npm 包当前版本为 1.19.12,许可证 MIT(见仓库 package.json)。

安装与启用

独立安装(一条命令写入 token 与 user id)

在 Windows、macOS 或 Linux 上,init 与 bridge 均可运行;setup 的停服与自启动注册目前仅 Windows。macOS / Linux 请用 sh install.sh 注册 launchd 或 systemd --user。任意平台可用 node setup.mjs --check 查看状态。

npx dsh-tg-bridge@latest init --token 123456789:AA... --user 123456789
npx dsh-tg-bridge@latest setup

init 会把 bot token 写入 ~/.dsh/.credentials.yaml 的 refs.DSH_TELEGRAM_BOT_TOKEN;把你的 id 与工作目录写入 ~/.dsh/tg-bridge/config.json(已存在则不会覆盖);并检查 headless profile。可选 flag:--cwd <path>(默认 ~/Projects)、--voice、--dry-run。

setup 注册自启动并启动 bridge。

作为 DSH 插件

包内带有 dsh.bundle;目录收录仍在审核中。DSH 启动时会拉起一个 bridge,关闭 DSH 时停止;若已有 bridge 在跑(例如计划任务),则不会重复启动。须先执行上面的 init,保证配置存在。

dsh plugin --profile desktop add dsh-tg-bridge

全局 CLI 方式(需自行管控进程)

npm install -g dsh-tg-bridge
dsh-tg init --token 123456789:AA... --user 123456789
dsh-tg check
dsh-tg setup

Telegram 侧必做三项

群组里若不做下面设置,bot 可能收不到普通消息或无法按话题分项目:

  1. BotFather 中 Privacy mode → Disable(/setprivacy),否则群组里往往只能看到命令。
  2. 群组设置里 开启 Topics,否则所有对话挤在一个会话里。
  3. 给 bot Pin Messages 权限(用于固定话题首条消息;没有也能跑,只是不会 pin)。

init / setup 会安装俄/英/中三套命令菜单;若只重启 bridge 菜单不会刷新,新增命令后需执行 dsh-tg menu。更完整的权限与排错见仓库 docs/TELEGRAM-SETUP.md。

典型用法

  1. 完成 init 与自启动(或插件方式),在 Telegram 群组里对 bot 发文本任务。
  2. 切换项目目录:在该话题发送 /cd my-app,后续工具与 shell 相对该目录。
  3. 设定长期目标: /goal、 /task,重启 bridge 后仍生效。
  4. 单话题覆盖模型与 agent:/crew use reviewer,恢复用 /crew off。
  5. 固定界面语言:/lang zh(或 en、ru)。
  6. 排查环境:dsh-tg check 或 node setup.mjs --check。

可选 ~/.dsh/tg-bridge/config.json 字段(README 表格):providerKeys、pricesUrl、vision.patch、vision.enabled、fallbackModels 等;未写明的键不要臆测默认值以外的行为。

从未建过 bot 时,仓库 QUICKSTART.md 按步骤从注册到首条回复。

适用场景与注意

适合谁:需要在手机或 Telegram 里持续驱动本机 DSH、且希望按群组话题拆分项目与 session 的开发者;语音转写、图片进 turn、进度与 Stop 按钮都在 chat 里完成闭环的场景。

权限与安全:插件与 bridge 以当前 DSH / 本机用户权限执行 agent 与工具,安装前请阅读源码与 MIT 许可证,确认 token 与 ~/.dsh/.credentials.yaml 的存放方式可接受。不要把 bot 加进不可信群组,或把 token 提交到公开仓库。

平台差异:Windows 可用 dsh-tg setup 注册 DSH-TG-Bridge 计划任务;macOS / Linux 自启动走 install.sh,不要指望在非 Windows 上直接跑 setup 的 schtasks 逻辑。

生态说明:中文社区维护的插件目录与应用内市场(如 awesome-dsh-plugin、dsh-market)与 DeepSeek / 幻方无官方从属关系;本插件按社区打包规则发布,便于与目录并列安装。

结尾

dsh-tg-bridge 把 DSH 的文本、语音、图片与按话题的项目隔离搬到 Telegram,并在单条消息里汇总进度与控制按钮。若要从零配置 bot 与群组,优先跟仓库 QUICKSTART;已装 DSH 桌面 profile 的用户可用 dsh plugin --profile desktop add dsh-tg-bridge 与 init 组合启用。

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

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

小夜