Skip to content

多机器管理 ​

Cloud 与自托管

账户关联的多机器管理(包括你自己网络之外的机器)在 Cloud 版本中提供。自托管版本也可以把能互相直接访问的多台机器(同一网络或 Tailscale)连在一起,无需账户 —— 参见下文“无需账户配对机器(自托管)”。

ADHDev Cloud 让一个账户从单个仪表板中跟踪多台开发机器。

它为你提供什么 ​

  • 面向你的笔记本、台式机、工作机或远程服务器的单一仪表板
  • 跨 IDE 和 CLI 工作流的机器感知会话可见性
  • 一个带有启动控件、提供方设置、日志和 session-host 恢复的机器详情页
  • 本地网络之外的云端访问

这是云端与自托管之间最清晰的差异之一。云端是账户关联的控制平面。自托管是主机上的本地仪表板,可以接纳处于可互通网络中的已配对机器。

工作原理 ​

每台机器都运行自己的 ADHDev 守护进程,认证到同一个云账户:

bash
npm install -g adhdev
adhdev setup
adhdev daemon

一旦机器在同一账户下连接,它们会一起显示在仪表板中。

Repo Mesh(守护进程间编排) ​

Repo Mesh 协调同一账户的多个守护进程,使一个协调者会话可以跨多台机器或 git 工作树驱动工作。它运行在直接的守护进程到守护进程 P2P DataChannel(通过 node-datachannel)之上;云服务器 WebSocket 仅中继 SDP offer/answer/ICE 信令,并授权两个守护进程属于同一账户。这是守护进程协调 —— 它不是仪表板命令的回退。仪表板命令/数据流量仍然只使用仪表板↔守护进程 P2P 通道。

云端仪表板在 Repo Mesh 页面(/mesh)中呈现 mesh。

核心概念:

  • Node —— 参与 mesh 的工作区:一个代理可以在其中运行的仓库检出或隔离的 git 工作树。
  • Mission —— 一个目标,把为其工作的任务分组在一起,并作为持久记录保留。
  • Task —— 节点上的代理执行的一个工作单元,经历 pending → assigned → completed/failed。
  • Queue —— 守护进程本地的等待任务列表,空闲节点自主认领。队列以本地为先且具有权威性;Cloud/D1 只保存轻量的成员/信令元数据。
  • Ledger —— 跨节点已发生事件的仅追加 mesh 审计日志(历史,而非待办列表)。通过有界的 P2P 账本切片在守护进程之间对齐。
  • Refinery —— 把工作树分支收敛回其基线的过程:验证 → 合并 → 推送 → 清理。

协调者守护进程持有聚合的 mesh_status 快照。工作会话由协调者分派,默认自动批准。完成是基于证据的(git 状态/检查点、账本事件),而非 LLM 自我报告。Repo Mesh 工具在 mesh 模式下通过 MCP 服务器暴露给协调者会话 —— 参见 MCP 服务器。

要了解完整图景 —— 基于拉取的编排、工作树隔离的仓库协作、Refinery 收敛,以及交叉验证 —— 请参见专门的 Repo Mesh 指南。

Machines ​

Machines 页面是机器级概览。它是你快速查看以下内容的地方:

  • 哪些机器在线
  • 某个会话属于哪台机器
  • 连接和运行时状态
  • 你想要打开详情的机器

机器详情 ​

打开一台机器会给你一个比主仪表板更具操作性的视图:

  • 面向当前 IDE 和 CLI 会话的 Workspace
  • 面向托管 CLI 运行时诊断与恢复的 Hosted Runtimes
  • 面向机器/提供方设置的 Providers
  • 面向机器健康的 System
  • 面向运行时和守护进程日志的 Logs

当高层仪表板告诉你出了问题,但你需要机器专属上下文时,就使用这个页面。

典型用途 ​

多机器云配置在你有以下需求时尤其有用:

  • 让一台机器专注于后台代理工作
  • 分开个人设备和工作设备
  • 想要对在其他地方运行的会话进行移动端批准
  • 需要在你未实际使用的机器上恢复某个 CLI 运行时

套餐限制 ​

套餐最大机器数
Free1
Pro2
Ultra5
Enterprise无限

当你达到机器上限时,额外的机器注册会被拒绝,直到你移除一台或升级。

自托管差异 ​

自托管不会把机器合并到账户关联的托管仪表板中。

当你想要仅本地的仪表板(需要时可包含可互通网络中的已配对机器)时,请使用自托管。当你想要跨设备和跨网络的账户关联机器可见性时,请使用云端。

无需账户配对机器(自托管) ​

自 1.0.76 起(1.0.77 修复为端到端可用),免费的 standalone 守护进程可以跨多台机器工作。能够互相直接访问的机器(同一网络或 Tailscale)可在 mesh 界面中通过地址和一次性代码完成配对。主机负责把任务分派给其他机器,并显示它们的会话。无需云端账户。

  1. 让主机监听其他机器能访问到的地址。 默认是 127.0.0.1(仅本机),其他机器无法连接。请使用 adhdev standalone --host 0.0.0.0 --token <some-secret>,或绑定局域网或 Tailscale 的 IP。如果守护进程仅监听回环地址,配对卡片会显示警告,提示用 --host 0.0.0.0(或局域网/Tailscale IP)重新启动。
  2. 在主机上生成配对码。 打开 mesh 界面,找到 连接另一台机器 卡片,停留在 主机 标签页,点击 创建配对码。卡片会显示 地址(本机的局域网或 Tailscale IP 加端口,默认 3847)和 配对码。配对码只显示一次并带有过期时间,可用 复制 复制。
  3. 在另一台机器上加入。 在该机器上为同一仓库创建(或打开)一个 mesh,在 mesh 界面的同一卡片中打开 成员 标签页,以 host:port 的形式输入主机地址(例如 100.64.0.2:3847)和配对码,然后点击 连接。卡片会确认配对完成,并在连接建立之前显示 等待连接。
  4. 在主机上管理。 已配对的机器列在 主机 标签页的 已连接的机器 下,可用 断开连接 移除。

配对之后,助手也可以把你的请求转交给托管在另一台机器上的项目,并把结果带回它的聊天中。

安全

Mesh 对等端不使用仪表板令牌。每台机器在 /ws/mesh 上使用自己的配对密钥进行认证(HMAC 握手)。在没有仪表板令牌或密码的情况下绑定 0.0.0.0,会让该网络上的任何人都能访问仪表板,服务器启动时会打印警告 —— 详见 Standalone。

仍然仅限 Cloud 的功能:

  • 访问你自己网络之外的机器(云端 P2P 加 TURN)
  • 推送通知
  • 托管的 REST API 与 API 密钥
  • 机器之间的项目文件传输(standalone 无法打开 WebRTC 文件链路)

命名机器 ​

一旦你连接了不止一台机器,友好的机器名称就变得重要。

机器昵称贯穿整个仪表板,有助于消歧某个会话实际运行在哪里。

后续步骤 ​

托管云端文档在此。开源与自托管文档位于 OSS 仓库。