前言¶
DeepSeek Harness (DSH) 采用插件化架构,旨在通过扩展点实现功能的灵活集成。dsh-telegram 是一个客户端插件,它为 DSH 提供了一个 Telegram 渠道。用户可以通过 Telegram 机器人与 Harness 代理对话,代理会使用相同的工具和会话日志响应。这个插件解决了在手机上远程访问代理的需求,无需在服务器上保持 Shell 打开,也不依赖 OpenClaw 或 Hermes 等现有中间件。
插件定位¶
这是一个由 sazzadurrahmaan 维护的插件。它的核心设计理念是将“通过聊天应用进行远程 Shell 访问”视为主要功能,而非边缘细节。
核心功能¶
- 默认拒绝白名单机制:这是安全的第一道防线。插件使用数字 Telegram 用户 ID 进行校验。空白的白名单意味着拒绝所有访问。只有被允许的用户 ID 才能将消息发送给代理。
- 破坏性工具的聊天内批准:对于
bash、pwsh、terminal、write、edit和str_replace_editor等危险工具,执行前会触发一个tools/pre-execute门控。系统会在聊天界面中弹出“允许/拒绝”按钮。只有发起请求的聊天窗口可以响应,且使用随机 UUID 作为回调令牌。未在超时时间内响应的请求将被拒绝。 - 会话隔离:每个聊天对应一个独立的代理实例。使用
/new命令会销毁当前代理并启动新会话。用户之间没有共享会话。 - 无依赖架构:插件不依赖额外的网络框架或 Bot 库。它直接使用
fetch调用 Bot API,并通过长轮询 (long polling) 获取更新。整个客户端代码包含在一个小文件中。
安装与配置¶
- 安装插件:
使用以下命令安装插件到web配置文件中:
dsh plugin --profile web add github:sazzadurrahmaan/dsh-telegram
- 配置环境变量:
安装后需要设置 Telegram Bot Token 和允许的用户 ID。
export DSH_TELEGRAM_TOKEN='123456:ABC...' # 从 @BotFather 获取
export DSH_TELEGRAM_ALLOWED_USER_IDS='123456789' # 你的数字用户 ID
- 配置文件方式:
也可以在~/.dsh/cordis.patch.yml中直接配置:
plugins:
dsh-telegram:
token: ${DSH_TELEGRAM_TOKEN}
allowedUserIds: [123456789]
cwd: /home/dsh/workspace
常用命令¶
在 Telegram 聊天中可以使用以下命令:
/start: 显示命令列表。/new: 销毁当前聊天的代理并开始一个全新的会话。/stop: 取消当前正在运行的回合。/status: 查看会话 ID 和代理状态。/whoami: 获取你的 Telegram 数字用户 ID。这是唯一一个无需白名单即可响应的命令,用于获取配置所需的 ID。
安全与使用注意¶
- 白名单是唯一防线:任何人都可以通过 Telegram 用户名找到你的机器人并尝试发送消息。确保
allowedUserIds准确无误,且不要从不受信任的来源设置此值。 - 破坏性工具配置:如果将配置项
allowDestructiveTools设置为true,将移除所有批准提示。此时,被允许的用户可以通过手机直接运行任何 Harness 能运行的命令,没有任何二次确认。 - 群组限制:插件不支持群组聊天。将机器人添加到群组会导致所有成员的消息到达,虽然只有白名单用户会被响应,但这扩大了攻击面。请使用私聊。
- Token 权限:Bot Token 意味着对机器人的完全控制权。请将 Token 存储在环境变量中,不要提交到代码仓库或配置文件中。
- 开发者预览:当前 Harness 版本为
0.1.x,处于开发者预览阶段,可能会出现破坏性变更。建议在使用前固定 Harness 版本。
结语¶
dsh-telegram 提供了在移动端安全访问 DeepSeek Harness 代理的能力。通过严格的默认拒绝策略和交互式批准流程,它在便利性与安全性之间做了平衡。对于需要在移动场景下使用 Harness 的开发者,这是一个实用的工具。