DeepSeek Harness Hub
← 返回列表

ben7am1n/dsh-telegram

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
⚠ 装前注意

DeepSeek Harness 的 Telegram 运行时适配器 —— 直接从 Telegram 与你的 dsh…

基本兼容但装前注意:npm 同名包「dsh-telegram」归属 gum97/dsh-telegram,装到的可能不是本插件 · 最近上游提交 2026/8/13 · 已提供中文文档
综合分
35.2
GitHub 分
35.2
用户评分
★ Stars
3
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ben7am1n/dsh-telegram
npm 同名包「dsh-telegram」归属 gum97/dsh-telegram,装到的可能不是本插件,改用 GitHub 源安装
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-telegram @ 0.2.0
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

npm 同名包「dsh-telegram」归属 gum97/dsh-telegram,装到的可能不是本插件

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 19:16:35

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-session
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-telegram

DeepSeek Harness 的 Telegram 运行时适配器 —— 直接从 Telegram 与你的 dsh 智能体对话。每个被允许的聊天映射到一个智能体会话;消息通过 followup() 流入,已提交的助手文本会流式返回聊天。零运行时依赖(基于 Node 内置 fetch 的纯 HTTP)。

概述

dsh-telegram 将 DeepSeek Harness 智能体变成一个 Telegram 机器人。它是 dsh 扩展模型中的协议驱动:它将外部通信对端(Telegram)适配到 ctx.agents,与官方 ACP/JSON-RPC 桥接所扮演的角色相同——只不过面向的是人类聊天而非自动化。

它适合谁?

- 任何想从手机上查询自己的 DeepSeek 智能体、而不想打开 Web UI 的人。
- 希望在 harness 前面拥有一个共享、可审计的聊天界面的团队(Telegram 历史记录由 Telegram 保存)。
- 想要一个极简、可读的协议驱动插件编写参考的开发者。

它能做什么

- 长轮询 Telegram Bot API(getUpdates),无需服务器、无需 webhook、无需框架。
- 在收到第一条消息时,为每个被允许的聊天创建一个 dsh 智能体会话;后续消息通过 followup() 进入同一会话,从而保留对话历史。
- 将每条已提交的助手消息流式返回聊天;长回复会按 Telegram 的 4096 字符上限拆分。
- 支持 /start、/new(全新会话)、/status。
- 直接拒绝未授权用户(可配置允许列表)。

它(目前)不能做什么

- 没有 webhook 模式(需要公网 HTTPS 端点)。
- 没有内联键盘、媒体、语音或富文本消息——纯文本输入,纯文本输出。
- 聊天→会话映射没有跨重启持久化(见兼容性)。

兼容性

- 需要 Node.js ≥ 22.19(使用全局 fetch)。
- 基于 @deepseek-ai/dsh@0.1.0-rc.6 / @deepseek-ai/cordis@^4.0.1 构建并验证。
- 最后验证时间: 2026-08-13,针对当日主线提交(dsh 仓库 master)。
- dsh 处于开发者预览阶段,迭代迅速。请固定你的 dsh 版本,并在更新后重新验证;该插件的对等依赖(@deepseek-ai/dsh-agent、dsh-llm、dsh-session)在不同 RC 版本之间形态可能变化。
- 聊天→会话映射保存在内存中:重启 dsh 会丢失已打开的会话(使用 /new 开启新会话)。

安装 / 卸载

安装到 dsh profile(本地检出;无需构建权限):

cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-telegram

从 GitHub 安装(源码安装——pnpm 会运行 prepare 脚本,因此需要允许一次):

pnpm dsh plugin --profile web add github:/dsh-telegram
pnpm ≥10 会在首次安装时阻止构建脚本;将打印出的包键
复制到 /pnpm-workspace.yaml 的 allowBuilds 下,然后重新运行。

从 npm 安装(发布后):

pnpm dsh plugin --profile web add dsh-telegram

卸载:

pnpm dsh plugin --profile web remove dsh-telegram

快速开始

1. 通过 @BotFather 创建一个机器人并复制 token。
2. 找到你的 Telegram 用户 id(例如给 @userinfobot 发消息)。
3. 在配置文件的 cordis.patch.yml 中设置 token 和你的用户 id(或导出 DSH_TELEGRAM_BOT_TOKEN):

- id: dsh-telegram
name: dsh-telegram
config:
botToken: '123456:ABC-DEF...'
allowedUserIds: [123456789]
provider: deepseek-official
model: deepseek-v4-flash

4. 启动 dsh,在 Telegram 中打开你的机器人,发送 /start,然后发送任意消息。

配置

所有键都位于 dsh-telegram 行的 config 下(补丁层;后面的层按行覆盖前面的层)。

| 键 | 类型 | 默认值 | 含义 |
|---|---|---|---|
| botToken | string | 环境变量 DSH_TELEGRAM_BOT_TOKEN | 来自 @BotFather 的 Telegram 机器人 token。为空则禁用发送。 |
| allowedUserIds | number[] | [] | 允许聊天的 Telegram 用户 id。为空 = 拒绝所有人。 |
| provider | string | — | 创建的 agent 使用的 provider 路由(回退到配置文件默认值)。 |
| model | string | — | 创建的 agent 使用的模型(回退到配置文件默认值)。 |
| cwd | string | process.cwd() | 创建的 agent 会话的工作目录。 |
| pollTimeoutSeconds | number | 25 | getUpdates 的长轮询超时时间(Telegram 最大为 50)。 |

权限与数据

- 授权: 允许列表是唯一的关卡。未授权的用户会收到 ⛔ You are not authorized,并且永远不会获得 agent 会话。机器人 token 本身是让任何人能够调用你的机器人的密钥;允许列表决定谁可以获得会话。
- 网络: 该插件仅与 api.telegram.org(机器人 API)通信。Agent 模型调用通过 harness 的正常 LLM provider 路径进行。
- 文件系统: 该插件不读取或写入任何文件;agent 会话继承 harness 工作区策略。
- 密钥: 切勿将 botToken 提交到仓库。使用随附补丁中的环境变量形式(process.env.DSH_TELEGRAM_BOT_TOKEN ?? '')。
- 对话记录: Telegram 在其服务器上保留聊天历史;dsh 会话还会根据 harness 会话持久化配置进行持久化。

故障排除

| 症状 | 原因 | 修复方法 |
|---|---|---|
| 机器人从不回复,出现 botToken is empty 警告 | 未配置 token | 设置 DSH_TELEGRAM_BOT_TOKEN 或 config.botToken;重启 dsh |
| ⛔ You are not authorized | 你的用户 id 不在 allowedUserIds 中 | 添加你的 id;重启 dsh |
| poll error: telegram getUpdates: 401 | token 无效/已撤销 | 在 @BotFather 中重新创建 token |
| 对话中途回复停止 | Agent 错误 | 检查 dsh 日志;错误会以 ⚠️ Agent error: 转发到聊天中 |
| 日志中大量长轮询 | 到 api.telegram.org 的网络被阻止/不稳定 | 确保机器可以访问 api.telegram.org(Node fetch 会遵循代理环境变量);插件会自动退避 |
| cannot get property "agents" without inject | 插件在加载时缺少 inject 元数据(构建产物过期) | 重新构建:pnpm run build;确认安装的 lib/index.js 是最新的 |

开发

markdown
pnpm install
pnpm run typecheck     # tsc --noEmit
pnpm run build         # tsc → lib/

结构:

- src/index.ts — 插件入口(name/inject/Config/apply)、Telegram 客户端、长轮询循环、会话映射。
- cordis.patch.yml — 挂载插件行的 bundle 补丁层。

面向贡献者的设计说明:

- 零运行时依赖是一个目标:此处使用的 Bot API 接口刻意保持精简(getUpdates、sendMessage、sendChatAction)。在添加依赖之前,先问一问 Node 的内置模块能否覆盖它。
- 会话映射刻意保持简单(一个聊天 = 一个 agent,存于内存中)。未来版本可能会按 (chat, bot) 作为会话键,或将其持久化;参见兼容性。

许可证与安全

MIT。请通过仓库的安全公告私下报告安全问题(或在不包含机密信息的情况下提交 issue)。该插件使用操作者配置的 Telegram token 运行;它本身不执行任何模型代码——所有 agent 行为均由 harness 自身的权限与沙箱策略管控。

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

💬 加入 DPharness 群聊

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

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