dsh-remote-bridge: Remotely Control a DSH Host via an Outbound WSS Connection

DeepSeek Harness(DSH)的设计理念是“一切皆插件”。在本地运行 Agent 时,通过手机进行交互、发送消息或处理审批是常见需求。dsh-remote-bridge 插件解决了这个问题:它将运行 DSH 的宿主机通过一条出站 WSS 连接到中继,使手机端 App 能够远程列会话、发送消息并处理审批。

核心概念

插件安装在运行 DSH 的宿主机上(非中继服务器),由 DSH 加载为插件。它是链路中的主动拨号方。

架构路径为:手机 App → 中继 → 插件 → DSH。由于采用出站连接,宿主机不需要在防火墙上开放任何入站端口,这使得拥有公网 IP 或家庭 NAT 的用户也能使用。插件零运行时依赖。

前置条件

  1. 环境要求:宿主机已安装 Node.js,版本要求 >=22.19。DSH 需提供 dsh plugin 命令。
  2. 中继服务:已部署 DSH-Remote-backend 中继服务。
  3. 凭证:中继已签发连接器令牌(connectorToken)。
  4. 权限:持有手机令牌的人等价于能在这台机器上执行命令,需按同等敏感级别对待。

安装与启用

在宿主机上执行以下步骤:

  1. 创建目录并克隆代码:
    sudo mkdir -p /opt/dsh-remote-bridge
    sudo chown "$USER" /opt/dsh-remote-bridge
    git clone https://github.com/AKHYui/DSH-Remote-plugin.git /opt/dsh-remote-bridge
  1. 在 DSH 中注册插件:
    dsh plugin --profile desktop add link:/opt/dsh-remote-bridge

配置

插件会在 profile desktop 中自动插入一条 remote-bridge 条目。需在 ~/.dsh/profiles/desktop/cordis.patch.yml 中配置以下键:

  • serverUrl:必填。中继的 attach 端点,格式为 wss://<host>:<port>/api/v1/attach。
  • connectorToken:必填。中继签发的令牌,也可通过环境变量 DSH_REMOTE_BRIDGE_TOKEN 设置。
  • deviceId:必填。宿主机的唯一标识符,用于手机寻址。
  • tlsCaFile:可选。如果中继使用自建 CA 签发证书,需指定 CA 文件路径(PEM 格式)。
  • autoConnect:是否加载后立即拨号,默认 true。

配置修改后通常几秒内生效,无需重启 DSH;但源码改动必须重启 DSH。

核心功能

插件提供了以下能力:

  • 会话管理:列会话,跟随实时事件流。
  • 消息交互:发送消息(文本、内嵌图片、上传文件换取 receiptId)。
  • 模型控制:切换模型、中止回合。
  • 审批与提问:代答审批、处理 ask_user_question 提问。

注意事项

  • 安全边界:持有手机令牌即拥有宿主机命令执行权限,需妥善保管。
  • 网络拓扑:仅依赖出站连接,宿主机无需配置防火墙入站规则。
  • 版本要求:确保宿主机 Node.js 版本满足 >=22.19。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye