Telegram 值班网关:手机消息任务闭环(专属值班会话)、值守模式全局审批转发(内联同意/拒绝按钮)、telegram_ask 选项提问、值守/本地切换与网页横幅、中英双语消息、空闲零 token。
Telegram duty gateway: phone-message task loop on a dedicated duty session, global approval forwarding with inline approve/reject buttons, telegram_ask choice questions, duty/local toggle with a web duty banner, zh/en messages, zero idle tokens.
安装
dsh plugin --profile web add github:luzhengyangtx/dsh-telegram-dutyGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
把 DeepSeek Harness(DSH)变成随身值班室:手机 Telegram 发消息 → 值班智能体干活 → 结果回复到手机。空闲时零 token(长轮询 getUpdates,消息到达才唤醒智能体)。
快速开始(约 10 分钟)
创建机器人:在 Telegram 里找 @BotFather,发送
/newbot,按提示取名,拿到 token(形如123456:ABC...)。查自己的 chat id:给 @userinfobot(或你刚建的机器人)发任意消息,它会回复你的数字 id。
安装插件:在 DeepSeek Harness checkout 目录里执行:
dsh plugin --profile web add @luzhengyangtx/dsh-telegram-duty填写配置:在
C:\Users\<你>\.dsh\profiles\web\cordis.patch.yml中加上:- id: telegram-duty config: token: '123456:你的机器人token' # 第 1 步 chatId: 123456789 # 第 2 步(白名单) language: zh # 或 en重启
dsh web,用手机给你的机器人发条消息——搞定,值班智能体开始回话。
进入值守后,网页顶部会出现横幅提示"审批已转到手机",点一下即可切回本地。
功能
- 📱 任务闭环:Telegram 消息 → 专属"值班会话"(带标准工具集)→ 最终回复回传手机;长回复自动分段。
- ⏳ 即时反馈:任务消息立即收到"📨 收到,正在生成…",处理期间手机持续显示"正在输入…"动画,出结果自动消失;出错补发"⚠️ 处理出错"。
- 🎯 定向会话:
/sessions列出你工作区的会话(在线 + 离线,与网页侧边栏一致,空壳草稿不显示)并带编号按钮——点编号后后续消息都发给该会话;消息前加#编号只单发这一条;/duty回默认值班路由;离线会话在第一条定向消息时自动唤醒。 - 🔐 白名单:只服务你自己的 chat id,其他人仅记日志。
- ✅ 全局审批转发:值守模式下,所有会话的审批都发到手机,带 [✅ 同意] [⛔ 拒绝] 按钮(点按钮即答,打字
3 同意 / 3 拒绝仍兼容);超时(默认 10 分钟)按拒绝处理(保守安全)。/away会提醒网页上还挂着的审批,/unblock可取消被审批卡住的回合。 - ❓ telegram_ask 提问工具:智能体需要您选择方案、确认事项或补充信息时,把问题推送到手机(每个选项一个按钮,点选即答);值班智能体已被提示优先使用它。
- 📣 telegram_notify 推送工具:任何会话的智能体都能主动把消息推到你手机(汇报、提醒、通知),不用你发消息。
- 🔀 值守/本地切换:手机发任意消息或
/away进入值守;网页任意会话发消息或/back回到本地(本地模式审批走网页弹窗)。 - 🚩 值守横幅:值守期间网页顶部显示"审批已转到手机"横幅,一键切回本地(v0.4.0 起加大一档)。
- 📱 侧边栏"值班"按钮:网页左下角 Settings 旁一键打开值班会话(不存在时自动创建/唤醒),并带实时状态点(值守=橙色,本地=灰色)。
- 🗂 持久化:消息游标与值守状态跨重启保持;仅首次运行跳过历史积压。
- 🌐 中英双语:所有手机消息跟随
language配置(zh|en,默认en)。 - 🌍 直连友好:默认直连 Telegram;仅当网络封锁 Telegram(如中国大陆)时才需配置
proxy。
配置(telegram-duty 命名空间)
网页设置页可见可改,也可写在补丁行的 config: 下。
| 字段 | 默认 | 说明 |
|---|---|---|
| token | — | 机器人 token(secret,界面不展示);也可用 credentialsFile 提供 |
| chatId | — | 白名单 chat id |
| proxy | (空) | Bot API 代理地址。⚠ Telegram 可直连的网络请保持留空(默认直连);仅当网络封锁 Telegram(如中国大陆)时才填本地代理(如 Clash 的 http://127.0.0.1:7890),并保持代理软件开着 |
| sessionId | telegram-duty | 值班会话 id,首次消息自动创建 |
| dutyCwd | 进程 cwd | 值班会话工作目录 |
| approvalTimeoutMinutes | 10 | 审批超时(分钟),超时按拒绝 |
| watchMode | local | local / duty |
| language | en | 手机消息语言:en / zh |
| dataDir | /storages/telegram-duty | 游标持久化目录 |
| credentialsFile | — | 可选凭据 JSON 文件 {token, chat_id, proxy} |
| replyChunkChars | 3800 | 长回复分段阈值 |
手机命令
/help— 使用说明/sessions— 列出工作区会话(在线 + 离线)带编号按钮,点编号后消息定向到该会话#编号 消息— 只把这一条消息发给指定会话(编号以最近一次 /sessions 为准,30 分钟有效)/duty— 回到默认值班会话路由/away— 进入值守模式(审批转到手机);若网页还挂着未处理审批会提醒你/unblock— 取消被审批卡住的回合(之后重发任务即可,审批会正确推到手机)/back— 回到本地模式3 同意 / 3 拒绝— 回答第 3 条审批;仅一条待批时直接回"同意/拒绝";提问点选项按钮或直接回复选项文字。
常见问题(FAQ)
- 机器人不回消息? 按顺序排查:① token、chatId 是否填对;② 是否给机器人发过
/start(机器人不能主动发起对话);③ DSH 日志里有没有 telegram-duty 报错;④ 消息是否被当作命令(/away等不产生回复)。 - chat id 怎么查? 给 @userinfobot 发任意消息,它会回复你的数字 id。
- 需要代理吗? 默认不需要,直连 Telegram。国内网络才填
proxy(如 Clash 的http://127.0.0.1:7890),并且 DSH 运行期间代理软件要一直开着。 - 空闲时耗 token 吗? 不耗。插件只做长轮询,消息到达才唤醒智能体。
- 电脑关机还能用吗? 不能,插件随 DSH 一起运行;但重启不丢消息(游标持久化到磁盘)。
- 手机上能收到什么? 任务结果(含即时"收到"提示与输入中动画)、任意会话的审批请求(值守模式下)、智能体的提问(telegram_ask)、智能体主动推送的消息(telegram_notify)。
- 为什么 /sessions 没列出我所有会话? 它只列你工作区的会话(和网页侧边栏一致):空壳草稿隐藏;在线显示空闲/忙碌,离线显示"💤 离线"(首条定向消息自动唤醒)。内部值班会话永不出现——默认路由本来就是它。
- 机器人在群里会回话吗? 不会,白名单只服务你自己的 chat id,群消息一律忽略。
- 怎么更新插件? 执行
dsh plugin --profile web add @luzhengyangtx/dsh-telegram-duty@<版本号>,或在 profile 的package.json里改依赖版本。
路线图(Roadmap)
| 状态 | 内容 | 版本性质 |
|---|---|---|
| ✅ 已发布(v0.4.0) | 定向会话(/sessions、#编号、/duty)· 即时收到提示 + 输入中动画 · telegram_notify 主动推送 · /unblock 审批自救 · 侧边栏值班按钮 · 横幅加大 · 中英双语 | 免费 |
| 🚧 计划中(v1.x) | 语音消息笔记、更多实用小功能 | 免费 |
| 🔭 仅预告 | 多平台接入(飞书/WhatsApp 等)、团队/多用户模式、云托管、优先支持 | 专业版(未来) |
永远免费:Telegram 值班、全局审批转发、值守/本地切换、网页横幅、中英双语。专业版一行只是预告,目前没有任何专业版代码——它标记的是未来商业版的方向。
定制服务
需要接入帮助、配置指导、接入其它平台或定制功能?发邮件到 dsh-telegram-duty@outlook.com。常规接入起步价 500 元/单(接入 + 配置 + 答疑),复杂功能按工作量单独报价;开工前会先明确交付范围(跑通 + 文档 + 基础答疑)。
社区与支持
- 💬 Telegram 用户群:https://t.me/+w8w7kAnGniRhZTJk
- 💝 Ko-fi 打赏:https://ko-fi.com/luzhengyangtx
- 💝 爱发电打赏:https://afdian.com/a/luzhengyangtx
- ⭐ GitHub 仓库:https://github.com/luzhengyangtx/dsh-telegram-duty
开发
pnpm --filter "@luzhengyangtx/dsh-telegram-duty" run typecheck
node_modules\.bin\vitest.cmd run packages/interaction/telegram-duty/tests
# 通道自检:$env:TG_CREDS='配置文件路径'; node --import tsx/esm packages/interaction/telegram-duty/scripts/check-telegram.ts
许可证
MIT。会话驱动模式(resume/create + summarize)参考 @kriskwok/dsh-feishu-gateway(MIT),见 LICENSE。
原始 README: https://github.com/luzhengyangtx/dsh-telegram-duty/blob/master/README.zh.md ↗
同类插件
查看全部 →
dsh
将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。

dsh-qqbot
让 QQ Bot 接入 DeepSeek Harness(dsh)的官方插件

dsh-open-in-vscode
从 Web GUI 一键在 VS Code 中打开工作区目录。

dsh-notification
回合完成桌面通知,按结果分控 + 关键词过滤。

dsh-notifier
DSH 统一通知推送与远程控制:一个 `notify()` API 打通 25+ 渠道(Telegram / 钉钉 / 飞书 / 企业微信 / QQ 机器人 / WxPusher / PushPlus / Server 酱 / Bark / Discord / Slack / ntfy / webhook 等),timeSensitive / active / passive 分级路由并重试;五通道反向审批(Telegram 按钮 / 飞书卡片 / QQ / WxPusher / 微信 iLink);QQ/钉钉/飞书官方扫码登录;本地 Web 管理台;多 agent 路由;系统桌面通知——以及**手机指挥中心**:在手机上发 `!status` / `!stop` / `!retry` 遥控 agent,通知带可操作按钮(查看结果 / 重试 / 日志,点击回调 agent)。密钥脱敏、工具限流、零运行时依赖。

chatccc
飞书(Lark)或微信(WeChat)聊天控制 DeepSeek Harness / Claude Code / Cursor / Codex / CCC Agent