跳到正文

Chinesezjc/dsh-interconnect

282最近提交 2026年8月14日

dsh-interconnect DSH 插件

dsh-interconnect 让一个 DSH 实例可以向同一实例、另一台机器或另一台机器上的其他 DSH 实例发送消息、探测活性,并实现双向实时事件推送。它包含一个 HTTP/WebSocket 宿主服务(`interconnect`)以及模型可见的工具(`tool-interconnect`),用于 agent 驱动的跨实例通信。

如何安装 dsh-interconnect DSH 插件

dsh plugin --profile <name> add dsh-interconnect

来源命令需要人工核对。复制不会执行命令。

dsh-interconnect DSH 插件数据来源

dsh-interconnect DSH 插件快照日期:2026年8月16日

discovered

dsh-interconnect DSH 插件能做什么

  • 通过 HTTP 端点(`/interconnect/send`、`/interconnect/ping`)发送消息和探测活性
  • 通过 WebSocket 端点 `/interconnect/link` 实现双向实时事件流,支持心跳与指数退避重连
  • 共享密钥鉴权(Bearer token `DSH_INTERCONNECT_TOKEN`),采用定时安全比较且默认拒绝未授权请求
  • 入站事件以 `interconnect/event` 形式发送给本地实例
  • 模型可用的工具:`interconnect_send`(向远程会话投递消息)和 `interconnect_ping`(探测远程实例活性与身份)

dsh-interconnect DSH 插件适合哪些场景

  • 在一个 DSH 实例和另一个实例之间传递消息,实现跨实例 agent 协作
  • 在发送敏感数据前探测远程实例是否存活并验证其身份
  • 通过 WebSocket 链路在实例间推送实时事件(如状态变更、告警)
  • 让一个实例上的 agent 使用 `interconnect_send` 工具向另一个实例的会话回发消息

dsh-interconnect DSH 插件适合谁

  • 需要连接多个 DSH 实例以构建分布式 agent 工作流的用户
  • 开发多实例或多机器 agent 系统,需要可靠跨实例消息传递和事件通知的开发者

dsh-interconnect DSH 插件的限制

  • 使用前需要两个实例设置相同的 `DSH_INTERCONNECT_TOKEN` 共享密钥
  • 两个插件都必须挂在 host composition 上,不能放在 agent preset isolate realm 中
  • 依赖 `ws` 库作为运行时依赖,由宿主 Node.js 环境提供
  • 通过 `interconnect_send` 发送的消息的 `source` 为 `{ kind: 'plugin', plugin: 'dsh-interconnect' }`(而非 `kind: 'user'`),接收方 agent 可能需要特殊处理

dsh-interconnect DSH 插件的仓库 README 摘录

以下文字摘自 dsh-interconnect DSH 插件的上游仓库 Chinesezjc/dsh-interconnect 的 README,版权归原作者,仅作引用。

跨实例消息互通与事件通知插件,用于 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH)。 让一个 DSH 实例能向同一个实例、另一台机器、或另一台机器上的别的 DSH 实例发送消息、探测活性,并在实例之间双向推送事件。 ## 包含两个插件 **`interconnect`** —— host 服务(`ctx.interconnect`): - `send` / `ping` HTTP 端点(`/interconnect/*`):跨实例、跨机器投递消息、探测活性 - `/interconnect/link` WebSocket 端点:双向实时事件推流,含心跳与指数退避重连 - 事件 fan-out(HTTP + WebSocket),入站事件以 `interconnect/event` 发出 - 共享密钥鉴权(`DSH_INTERCONNECT_TOKEN`,bearer,fail-closed,timing-safe 比较) **`tool-interconnect`** —— 模型可见工具: - `interconnect_send`:向对端实例的指定 session 投递消息 - `interconnect_ping`:探测对端实例活性与身份 ## 安装 本包已发布到 npm:[`dsh-interconnect`](https://www.npmjs.com/package/dsh-interconnect)。 本仓库是一个 DSH profile bundle(根 `package.json` 声明 `dsh.bundle.patch` 指向 根 `cordis.patch.yml`,后者 `insert` 两个插件行)。 ```bash # 从 npm dsh plugin --profile <name> add dsh-interconnect # 或从本地路径(已实测) dsh plugin --profile <name> add file:/path/to/dsh-interconnect ``` registry 上的 tarball 自带 `lib/*.js` 与 `lib/types/**/*.d.ts`,安装时不跑构建。 `dsh plugin add` 会把仓库识别为 bundle 并追加进 profile 的 `dsh.profile.bundles`。重启 web 服务使 host 侧生效。两端实例的 `.credentials.yaml`(或等价凭据源)设置相同的 `DSH_INTERCONNECT_TOKEN` 作为共享密钥。 ## 开发 依赖 [公开的 DeepSeek Harness monore

阅读完整 README仓库许可: MIT

dsh-interconnect DSH 插件常见问题

如何为两个 DSH 实例配置 dsh-interconnect?

首先在两个实例上都运行 `dsh plugin --profile <name> add dsh-interconnect` 安装插件。然后在每个实例的 `.credentials.yaml`(或等价凭据源)中设置相同的 `DSH_INTERCONNECT_TOKEN`。重启两端的 web 服务使宿主插件(`interconnect`)生效。实例将使用共享令牌进行通信。

可以不使用 WebSocket 连接吗?

可以,HTTP 端点(`/interconnect/send` 和 `/interconnect/ping`)不需要 WebSocket 即可工作。但是,要实现双向实时事件推送,你需要建立到 `/interconnect/link` 的 WebSocket 连接。WebSocket 连接包含自动心跳和指数退避重连机制,以保证可靠性。

如果两个实例的 `DSH_INTERCONNECT_TOKEN` 不同会怎样?

请求会被拒绝,返回 401 类似错误,因为插件使用 Bearer 令牌认证并采用定时安全比较。两个实例必须使用完全相同的令牌值。确保每个实例的凭据配置中设置了相同的令牌。

dsh-interconnect 能跨不同机器工作吗?

可以,它专为跨机器通信设计。HTTP 和 WebSocket 端点可通过网络访问。你需要确保两台宿主机之间网络互通(例如,防火墙未阻止 DSH web 服务使用的端口)。每个实例的 web 服务必须监听网络接口,而不仅仅是 localhost。

为什么不能把工具放在 agent preset isolate realm 中?

`tool-interconnect` 插件也必须放在 host composition 上,因为 `interconnect` 宿主服务未通过 TypeRT 的 `@Remote`/Gateway 模式绑定。如果将其移到 isolate realm,工具将无法注入 `interconnect` 服务。请始终按照说明将两个插件都挂在 host composition 上。