前言¶
DeepSeek Harness(DSH)把每个会话都当作一个独立的智能体运行,但会话之间的交互、协作和结果展示都局限在 DSH 界面内。对于需要在 Telegram 等外部渠道持续跟进会话、与同事协作,或者把会话变成可公开讨论的论坛主题的需求,直接在 DSH 里操作往往不够方便。
nergous/dsh-tg-bridge 插件把每一个 DSH 会话变成 Telegram 论坛的一个独立主题。你可以在 DSH 里写会话,也可以在 Telegram 的主题里写,两边消息完全同步。插件负责处理会话状态、工具调用、审批请求、文件和语音消息等细节,让一个会话像论坛帖子一样自然地被阅读和讨论。
插件定位¶
nergous/dsh-tg-bridge 是一个 DeepSeek Harness 客户端插件,维护者为 Nergous。它不改变 DSH 的核心能力,而是通过 Telegram 论坛主题来扩展会话的可见性和交互方式。
插件的核心价值是:一个 DSH 会话对应一个 Telegram 论坛主题,双向消息同步,支持审批、文件、语音和命令,让会话变成可以随时接入和讨论的“帖子”。
核心功能¶
1. 一会话一主题¶
每个根会话都会在指定的 Telegram 超级群组中创建一个独立主题。主题名称默认为 workspace · session title,会在 DSH 修改会话标题时自动更新;会话归档时主题关闭,恢复时重新打开。
2. 双向消息同步¶
- 在 DSH 中输入的消息会同步到对应主题。
- 在主题中发送的消息(文本、图片、文件、语音)会被当作在 DSH 里的消息发送到会话中,由模型正常处理。
- 语音消息会被转录为文本;如果未配置转录工具,则作为文件发送。
3. 智能输出展示¶
- 模型回答会以单条消息的形式流式编辑呈现,直到回答完成。
- 工具调用会折叠成可展开的块,每个工具运行结束生成一个块。
- 主题在模型工作时显示“typing…”;一轮结束时会收到一条
✅ Done通知。
4. 子会话展示¶
子会话不会创建独立主题,而是在父主题中以单行状态展示:working, waiting for result ⏳、done ✅ 或 failed ❌ / cancelled ⏹。
5. 审批与提问¶
- 审批请求和
ask_user_question提示会以内联按钮的形式出现在主题中。 - DSH 和 Telegram 同时接收提示,谁先回答谁生效,另一侧的提示会被撤回。
6. 主题内命令¶
在会话主题中可用:
/stop:停止当前运行中的轮次(排队消息保持排队)。/status:显示工作区、状态、模型、上下文使用和输出模式。/diff:显示会话目录的git diff --stat,完整补丁以文件形式发送。/compact:在会话空闲时压缩对话历史。/model [name]:以按钮显示可用模型,或通过名称切换。/permission [ro|write|full]或/access:显示访问级别(只读、工作区写、完全访问)按钮或切换。/verbosity full|tools|final:为该主题单独设置输出详细度。/mute//unmute:暂停或恢复该主题的模型输出(审批和提问仍然到达)。/steer <text>:与!text等效,接管当前轮次。/help:显示命令列表。
其他 DSH 斜杠命令(如 /goal)会通过 DSH 命令注册表像在编辑器里一样运行。未知的斜杠文本会被当作普通消息发送到会话。
7. 通用主题命令¶
在 General 主题中可用:
/sessions:显示最近的 DSH 会话按钮。🧵 打开会话主题;➕ 创建(或重新打开)会话主题并发布链接,让你可以从 Telegram 继续任意会话。/workspaces:显示已知的 DSH 工作区。/new:通过按钮选择工作区,然后发送第一条消息(文本、图片、文件或语音),或直接开始而不带提示。/new <workspace> [prompt]:直接在工作区中开始会话(按名称或路径)。不提供提示时,机器人会询问第一条消息。/cancel:取消正在等待选择或消息的/new。/help:显示命令列表。
8. 状态卡片与链接¶
- 每个主题的第一条消息会被固定,内容包括工作区、路径、会话 ID 和模型。
- DSH 编辑器的“Telegram”链接会打开当前会话的主题。
安装与启用¶
插件没有构建步骤和外部依赖。
- 打开 DSH 的 Plugins → Add plugin,输入:
-github:Nergous/dsh-tg-bridge(从 GitHub 获取最新版本),或
- 本地克隆的绝对路径,例如/home/me/projects/dsh-tg-bridge。 - 选择 Enable now,然后在 Plugins → Telegram bridge 打开插件。
修改宿主代码(index.js、lib/)后需要重启 DSH;client.js 会在打开的页面中自动重载。
配置与使用¶
前置要求¶
- 安装了插件管理器的 DeepSeek Harness(桌面应用或
dsh web)。 - Node.js 22 或更新版本(DSH 运行环境)。
- 从 @BotFather 创建的 Telegram 机器人。
- 启用了“主题”的 Telegram 超级群组。
- 可选:
ffmpeg用于语音消息转录。
创建机器人¶
- 在 Telegram 中找到 @BotFather。
- 发送
/newbot按照提示创建一个机器人。 - 复制机器人令牌。
配置群组¶
- 创建一个 Telegram 超级群组。
- 打开群组设置,启用 Topics 功能。
- 将机器人添加到群组,并授予它以下权限:
- Manage topics
- Pin messages - 把你自己(或其他需要写入会话的用户)添加为群组成员。
绑定群组¶
- 在插件的设置页面点击 Get bind code。
- 在群组中发送
/bind <code>,10 分钟内完成。 - 群组会被保存,并且你被加入允许写入会话的用户列表。
- 如需其他人也能写入会话,可在设置页面添加他们的 Telegram 用户 ID。
测试连接¶
在设置页面点击 Test connection。它会检查令牌、群组、主题功能和机器人的权限。
启用会话主题¶
- 默认情况下,每个根会话在第一次消息或轮次时会创建主题。旧会话在下次继续时会创建主题,或者通过 General 主题的
/sessions立即创建。 - 可在设置中把“Create topic”改为“As soon as a session opens”或“Never automatically”,从而控制主题创建时机。即使选择“Never automatically”,仍可通过
/sessions和/new在 General 中手动创建。 - 子会话不会创建主题。
在主题中与会话交互¶
- 在会话主题中直接发送消息即可与该会话交互。消息会排在正在进行的轮次之后。
- 以
!开头的消息会接管当前轮次。 - 模型等待问题答案时,你在主题中发送的文本会直接回答问题。
- 图片会作为图片附件(当模型接受图片时)发送,文档作为文件发送(最大下载大小由“Max download, MB”设置决定)。
- 文件通过
present工具呈现的,会以文档形式发送到主题;PNG、JPEG、WebP 会作为图片发送(Telegram 拒绝时以文档发送)。本地图片()会作为带 caption 的图片跟随回答,主题中显示🖼 caption。
主题命令使用示例¶
/status:查看当前会话的详细状态。/model:通过按钮切换模型。/permission write:将访问级别改为工作区写。/verbosity tools:在当前主题中展开工具调用。/sessions:在 General 中快速打开最近会话的主题。/new:在 General 中选择工作区并开始新会话。
适用场景与注意事项¶
该插件适合需要在 Telegram 中持续跟进 DSH 会话、让团队成员通过主题参与讨论、或者把会话作为可公开阅读的“帖子”来使用。
需要注意:
- 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
- 只有一个进程可以轮询同一个机器人,否则 Telegram 会返回
409 Conflict。如果同时运行 DSH 桌面和dsh web,请只使用其中一个,或者使用第二个机器人。 - 主题中的消息历史不会从 DSH 同步到 Telegram,主题历史仅从首次消息开始。
小结¶
nergous/dsh-tg-bridge 让每个 DSH 会话都成为一个 Telegram 论坛主题,实现了双向消息同步、审批、命令、文件和语音处理。它把 DSH 会话从封闭的编辑器扩展为可随时接入和讨论的“帖子”,适合需要协作和持续跟进的开发者。
- 目录页:https://www.skillhub.cn/plugins/Nergous/dsh-tg-bridge
- GitHub:https://github.com/Nergous/dsh-tg-bridge