前言¶
这是 DeepSeek Harness (DSH) 的一个 host 插件。它通过 Telegram 机器人推送会话通知,并支持用户在 Telegram 上回复消息以继续推进会话,解决了在移动端或通过即时通讯工具获取 DSH 会话状态的需求。
安装与启用¶
插件已收录在官方目录。安装时使用以下命令:
dsh plugin --profile web add dsh-telegram-bridge
dsh --profile web --dump-config
# 重启 dsh web 进程
初始化配置¶
首次使用需完成以下步骤:
- 在 Telegram 找 @BotFather 创建机器人,获取 token。
- 配置 token。可在
data/config.json中设置botToken,或设置环境变量DSH_TELEGRAM_BOT_TOKEN。环境变量需对 dsh web 进程可见。 - 重启 dsh web。
- 在 Telegram 给机器人发送
/start(未配置授权列表时自动注册当前 chat)。 - 发送
/status确认桥接状态。
核心功能¶
插件提供以下能力:
- 会话完成通知:当会话回到 idle 状态时,向 Telegram 发送通知。通知包含侧边栏 icon 名称、会话 id、会话名、通知类型、内容概要。回复该消息即可继续会话。
- 需要确认通知:当模型请求确认(ask_user_question)或需要权限审批(sandbox approval)时,推送问题或审批请求。回复选项编号、文字或
/approve命令即可处理。 - 消息路由:
1. 回复通知消息:直达对应会话。
2. 消息正文带#sess:<会话id>:直达该会话。
3. 全局恰好只有一个待回答的确认问题:该消息视为对它的回答。
4. 应用路由:消息未携带 sessionId 时,按关键词识别应用。日历相关(日程/待办/提醒等)发送到dsh-calendar-todo,其他消息默认为dsh-chat-app并新建会话。
Telegram 命令¶
/start:注册当前 chat。/list:列出会话(编号)。/s <编号|会话id> <内容>:向指定会话发送消息。/q <编号> <答案>:回答指定会话的待确认问题。/approve <编号> allow|deny|ask:设置会话自动审批策略。/status:桥接状态。/help:帮助。
审批策略与数据持久化¶
- 审批策略:只有通过
/approve命令设置的审批策略会落盘到data/state。网页提权卡“本会话都允许”的策略仅存活于内存,重启即失效。 - 环境变量:支持
DSH_TELEGRAM_BOT_TOKEN、DSH_TELEGRAM_ALLOWED_CHATS、DSH_TELEGRAM_APPROVAL_DEFAULT、DSH_TELEGRAM_PREFIX。 - 配置文件:支持
data/config.json设置botToken、allowedChats(空表示不限制)、calendarKeywords。