DeepSeek Harness Hub
← 返回列表

Telegram 对话桥接JxaMe/dsh-telegram-bridge

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在 Telegram 私聊里直接与 Agent 对话并管理会话

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/19 · 已提供中文文档
综合分
27.9
GitHub 分
27.9
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add JxaMe/dsh-telegram-bridge
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-telegram-bridge

将 Telegram 私聊与 DeepSeek Harness(dsh)Agent 会话连接起来的桥接插件。在 Telegram 里直接和你的 dsh Agent 对话:发送消息、接收回复、切换模型与思考强度、选择 Agent preset、管理上下文与多会话。

当前版本:v1.2.0 · 本项目持续更新中

✨ 特性

对话体验
- 💬 私聊桥接:Telegram 与 dsh Agent 会话一对一对话。
- ⏱️ 实时状态行:显示真实活动(正在调用工具 / 正在执行命令),无真实信息时每 3 秒轮换中性文案;长任务不再“看起来像断连”。
- 🧵 队列与打断:消息顺序排队,带队列上限;/interrupt 打断当前任务并清空队列。
- 🔄 重新生成:在保留上下文的前提下,用同一 session 重发最后一条用户消息。
- 🔁 独立失败重试:每条失败消息都可单独回翻重试。

回复呈现
- 🎛️ 结构化渲染:支持 dsh-ui 的 keyvalue / callout / list / steps / table / todo / section。
- 📝 富文本:加粗、斜体、标题、列表、引用、行内代码与链接。
- 📐 智能切分:长消息按段落/句子边界分段;代码块按行切分并自动截断;结构化内容保持完整。

会话与设置
- 📂 轻量多会话:每个聊天保留最近 N 个会话,/sessions 一键切换;每个会话独立保存模型/思考强度/Preset。
- 🧠 模型与思考强度控制:动态列出并切换模型、推理强度。
- 🎛️ Agent preset 切换:仅限空白会话。
- 🖥️ dsh Web UI 设置面板:管理 Token、Owner、代理、默认模型/Preset、队列上限、状态行开关等。

稳定性
- 🗂️ 队列持久化:排队消息(含正在处理的消息)写入 queue.json,重启后自动恢复(at-least-once)。
- 📄 文件日志:logs/dsh-telegram-bridge.log,超过 5MB 自动轮转;Token 自动脱敏。
- 💾 状态备份:state.json.bak / settings.json.bak,损坏时自动回退恢复。
- 🛡️ 全局兜底:未捕获 rejection / 异常写入日志并尽量不中断运行。
- 🚀 启动自检:启动时检查 Telegram API 与 dsh API。
- 🩺 健康检查:/health 查看运行时长、消息数、回复数、错误数。
- 🚦 限流保护:Telegram 429 自动按 retry_after 等待后重试。

🖥️ 设置面板

dsh Web UI 设置页提供 Telegram Bridge 独立分区,可在页面中管理连接、默认模型/Preset 与行为选项。

注意:保存配置后需要重启 dsh-telegram-bridge 插件才能生效。

🛡️ 写入防护:Web 设置端点仅监听回环地址,且 POST /dsh-telegram-bridge/settings 现在需要 CSRF token(由 GET .../settings 签发、5 分钟窗口(兼容前一窗口,最长约 10 分钟),随 x-csrf-token 请求头或请求体 csrfToken 字段提交)。token 由进程级随机密钥与当前 botToken 派生,跨站/本地脚本无法伪造,防止未授权改写 botToken 等配置。

dsh-telegram-bridge settings

🔧 工作原理

Telegram Bot API
│ 长轮询(grammY)
▼
dsh-telegram-bridge(dsh profile 插件)
│
├── dsh apiProxy(session、模型、preset)
├── dsh agents(取消任务)
└── dsh session 事件(Agent 回复 / 状态)
│
▼
dsh Agent 会话

插件运行在 dsh profile 内部(通常是 web),直接使用 dsh 原生服务,无需独立服务器或 Webhook。

📦 环境要求

- 已安装 DeepSeek Harness(dsh)
- 已安装 pnpm
- Telegram Bot Token(来自 @BotFather)
- 你的 Telegram 数字 User ID

🚀 安装

从 GitHub 安装:

dsh plugin --profile web add github:JxaMe/dsh-telegram-bridge

本地开发安装:

bash
cd ~/Projects/dsh-telegram-bridge
pnpm install
pnpm build
dsh plugin --profile web add /home/los/Projects/dsh-telegram-bridge

验证注册:
bash
dsh --profile web --dump-config | grep dsh-telegram-bridge

然后重启 dsh web。

⚙️ 配置

配置文件位于 ~/.dsh/dsh-telegram-bridge/config.json(首次启动自动生成示例)。

注意:通过 Web 设置面板修改配置后,需要重启 dsh-telegram-bridge 插件才能生效。
json
{
"botToken": "123456:ABC-YOUR-REAL-BOT-TOKEN",
"ownerId": 123456789,
"projectRoot": "/home/you"
}

| 字段 | 说明 | 默认 |
| --- | --- | --- |
| botToken | Telegram Bot Token | — |
| ownerId | 允许使用的 Telegram 用户 ID | — |
| projectRoot | 新会话工作目录 | process.cwd() |
| proxyEnabled / proxyUrl | 代理开关与地址 | false / http://127.0.0.1:7890 |
| defaultProvider / defaultModel / defaultReasoningEffort | 默认模型设置 | '' |
| defaultAgentPreset | 默认 Agent preset | '' |
| errorDisplayMode | 错误显示:raw / friendly | raw |
| htmlFormatting | Telegram HTML 格式化 | true |
| typingIndicator | 打字指示器 | true |
| statusLine | 实时状态行 | true |
| queueLimit | 每个聊天最多排队消息数 | 20 |
| maxSessionsPerChat | 保留的最近会话数 | 5 |
| debugLogging | 调试日志 | false |

📟 命令

| 命令 | 说明 |
| --- | --- |
| /start | 显示主菜单 |
| /new | 开始新对话(需确认) |
| /interrupt | 打断当前任务并清空队列(/cancel 同义) |
| /status | 查看会话、队列、模型、Token 与运行统计 |
| /health | 查看运行时长、消息/回复/错误计数 |
| /sessions | 查看和切换最近会话 |
| /menu | 打开设置面板 |
| /compact | 压缩上下文 |
| /commands | 打开聊天内命令菜单 |
| /version | 查看当前版本与更新 |
| /help | 显示命令帮助 |

🧱 项目结构
text
dsh-telegram-bridge/
├── src/
│   ├── index.ts           # dsh 插件入口 + 全局兜底
│   ├── telegram.ts        # Telegram bot、命令、按钮
│   ├── session.ts         # 多会话管理
│   ├── queue.ts           # 消息队列 + 持久化
│   ├── forwarder.ts       # 事件转发、格式化、切分
│   ├── pending-status.ts  # 实时状态行
│   ├── state.ts           # 状态持久化 + 备份恢复
│   ├── config.ts          # 配置加载
│   ├── logger.ts          # 文件日志 + 轮转
│   ├── metrics.ts         # 运行指标
│   └── ...
├── client/                # dsh Web UI 设置面板
├── test/                  # 单元测试
├── docs/aegis/            # Aegis 设计与计划文档
└── .github/workflows/     # CI / Release 自动化

🧪 开发
bash
pnpm install
pnpm typecheck
pnpm build
pnpm test

项目使用 TypeScript 严格模式。修改源码后需 pnpm build(生成 lib/),再重启 dsh web 生效。

🛣️ Roadmap

- [x] V1 对话桥接(消息、队列、取消、压缩、状态持久化)
- [x] V2 dsh Web UI 全量设置面板
- [x] UX 打磨(实时状态行、富文本、快捷操作、多会话)
- [x] 稳定性(日志、备份、队列持久化、自检、限流、健康检查)

📄 License

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(JxaMe)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群