前言¶
DeepSeek Harness (DSH) 是一个基于插件的架构。在本地运行 DSH 进程时,通过手机进行远程控制是一个常见需求。dsh-telegram-control 插件在 DSH 进程内部运行一个 Telegram Bot,通过长轮询与 Telegram Bot API 通信,允许用户通过 Telegram 发送消息控制代理、管理会话和后台任务。
插件介绍¶
dsh-telegram-control 是 DeepSeek Harness 的客户端插件,由 jackControls 维护。它将 Telegram Bot 集成到 Harness 进程中,通过 / 命令和内联按钮实现远程交互。该插件不依赖外部运行时,仅作为 Cordis 函数插件运行,需与 DSH 核心依赖配合。
核心功能¶
该插件提供以下核心能力:
- 远程代理控制:纯文本消息作为对话的跟进发送到选定的会话,回复(包含思考块 💭)会通过 Telegram 实时回传。
- 命令界面:通过
/status、/agents、/jobs等命令查看状态和管理资源。 - 手机端审批:Harnes 的权限请求(如沙盒升级)通过 Telegram 送达,提供
✅ Allow once/❌ Reject内联按钮进行审批。 - 命令菜单自动补全:Bot 通过
setMyCommands注册命令,支持输入时自动补全。 - 实时会话推送:通过
/watch命令将指定会话的实时输出推送到聊天窗口。 - 基于白名单的认证:仅允许配置列表中的聊天 ID 访问,未知聊天仅显示提示。
- 输出安全:所有动态文本在发送前经过 HTML 转义,防止注入。
安装与启用¶
安装前请确保环境满足以下要求:
* Node.js 版本 >= 22
* 已安装 DSH 并运行
* 拥有一个有效的 Telegram Bot Token(可通过 @BotFather 获取)
执行以下命令安装插件:
dsh plugin --profile web add github:jackControls/dsh-telegram-control
安装后,需在运行 DSH 的进程中配置环境变量:
export DSH_TELEGRAM_TOKEN='123456:ABC-DEF...'
export DSH_TELEGRAM_ALLOWED_CHATS='123456789,987654321'
重启 DSH 进程,与 Bot 私聊并发送 /help 即可开始使用。
命令使用¶
插件提供以下命令用于交互:
/help或/start:显示命令列表。/status:查看运行状态、会话数和后台任务数。/agents:列出所有会话(包含运行中和已暂停的会话),显示状态、模型和当前选择标记。/agent <number>:根据编号选择会话。/agent <name>:根据会话标题或 ID 的子串选择会话。/agent <session id>:根据精确会话 ID 选择。/jobs:列出后台任务。/kill <job id>:停止指定的后台任务。/cancel:取消当前选中的会话的当前回合。/watch//unwatch:开启或关闭实时输出推送。/chatid:获取当前聊天的 ID(用于配置白名单)。
配置项¶
除了环境变量,插件支持以下配置项(可在代码中配置或通过环境变量回退):
| 配置项 | 环境变量回退 | 默认值 | 说明 |
|---|---|---|---|
token |
DSH_TELEGRAM_TOKEN |
必填 | Telegram Bot Token。 |
allowedChatIds |
DSH_TELEGRAM_ALLOWED_CHATS |
[] |
允许的聊天 ID 列表,空列表将拒绝所有人。 |
apiBase |
— | https://api.telegram.org |
Bot API 基础地址。 |
defaultAgentId |
— | 无 | 当会话未选择时,消息默认发送的目标会话 ID。 |
pollTimeoutSec |
— | 50 |
长轮询超时时间(秒)。 |
replyTimeoutMs |
— | 600000 |
等待代理回复的最大超时时间(毫秒)。 |
showToolCalls |
— | false |
是否在回复等待期间显示工具调用通知。 |
maxMessageChars |
— | 4000 |
单条消息最大字符数,超长会自动拆分。 |
注意事项¶
- 安全策略:插件采用白名单机制,
allowedChatIds为空时将拒绝所有请求。请务必在配置中添加受信任的聊天 ID。 - 输出处理:所有动态文本在发送前均经过 HTML 转义,确保安全性。
- 会话管理:已暂停的会话在首次发送消息时会自动恢复,并保留原有的会话预设和历史记录。
- 依赖要求:需要 Node.js >= 22 版本,且 DSH 进程需要拥有访问 Telegram API 的网络环境。
总结¶
dsh-telegram-control 解决了在移动端远程控制 DeepSeek Harness 会话和任务的需求。通过简单的命令和内联按钮交互,开发者可以在手机上管理复杂的 Agent 流程和后台任务。该插件代码开源,可直接通过 dsh plugin 安装,适合需要在移动场景下维护 DSH 进程的用户。