节点

把执行能力延伸到客户机器,无需开放 SSH、无需分发 SSH Key。节点主动拨向平台,浏览器终端、host exec、文件与节点 HTTP 代理都复用这条受控连接。

解决的核心问题传统远程执行需开放 SSH 端口、分发 SSH Key、维护 Key 轮换与撤销;节点可能在 NAT 或受控内网后,不便于中心平台主动拨入。平台让节点主动拨号、命令沿既有连接下发,日常使用链路不依赖 SSH。

特色:三种角色

角色是否运行客户端职责
execution是(独立 Go 二进制)执行 provider CLI 会话、任务、工作区、终端、文件与节点代理;只有它参与会话调度
management是(独立 Go 二进制)管理 execution 节点并在宿主机创建/删除它们;自身也支持 host terminal 与 exec
passive_management纯分组与授权容器,创建后直接 approved,不连接、不执行、不提供终端

一台接进来的机器可同时是五类用途:浏览器 PTY 终端跑 provider CLI 的编程子端host exec 单条命令工作区与文件读写HTTP 代理出口。普通任务不独占节点,容量交给节点侧 max_sessions 控制。

特色:无需 SSH 的四步链路

1

节点主动拨号

节点使用自身 ID 与 TOTP 凭据连接控制服务;断线后指数退避重连。

2

平台批准与调度

只有 approved、在线、具备能力且满足容量的 execution 节点参与会话调度。

3

帧式命令通道

终端 open/input/resize、host exec、工作区配置与 HTTP 代理通过 NodeConnect 帧下发。

4

输出与状态回传

PTY 输出、命令结果、会话事件与隧道响应通过同一连接流式返回。

无需 SSH 的准确边界日常平台使用链路不依赖 SSH 端口与 SSH Key;客户仍需在目标机器安装节点、赋予合适的操作系统权限,并允许节点主动访问控制服务。

特色:终端、exec、文件与代理出口

  • 浏览器 PTY 终端:浏览器 WebSocket → 数据服务 → 控制服务 → NodeConnect 帧 → 节点本机 PTY(Unix pty / Windows ConPTY);终端默认从节点用户 home 目录启动,连接断开时节点关闭残留 shell。
  • host exec:在节点宿主机执行单条命令并结构化返回 stdout/stderr/exit_code,受超时(默认 2 分钟、上限 10 分钟)和输出上限(默认 1 MiB、上限 16 MiB)保护,需节点声明 host_exec=true
  • execution 节点跑 provider CLI:在工作区内运行 claude/codex/gemini/opencode 等 CLI 会话,输出/结果/事件流式回传,会话配置以带版本号的帧下发并确认。
  • 工作区与文件:通过平台浏览、创建、编辑、移动和获取节点上的工作区文件,无需单独 SCP/SFTP。
  • 节点 HTTP 代理:请求可通过节点自身网络出口发起(用节点 IP、NAT 后网络或内网资源),响应以隧道帧回传——即 代理方案里的 node 模式。

特色:身份加密封存与审批

  • 节点身份 AES-256-GCM 封存:onboard 时获得唯一 node_id 与 TOTP secret,服务端用 AES-256-GCM 封存 secret;认证使用服务端时钟并带重放缓存,同一验证码不能复用。
  • 未知/撤销/错误/重放统一返回 permission_denied:避免身份枚举。
  • 必须审批:未 approved 的节点即使连上也不参与调度,可随时撤销。
  • 主密钥不可随意轮换:node_server_master_key 加密既有 TOTP 凭据,丢失/更换会让节点身份无法解密;必须备份并限制读取。迁移控制面时先停旧实例、同步数据库和主密钥,再启新实例,禁止双 Registry。

Go 客户端已迁入 nodes/

agent-compose 客户端 Go 代码已迁入 ai-lubricant/nodes,独立 go.mod;execution/management 拆成两个二进制(不再有 --role),common 共享 connect 层。进程内 NodeService 服务端已用 Python 重写进 monkeycode_compat/nodeserver(h2c 需 Hypercorn),由 node_server_enabled 开关控制。

/manager/nodes
截图加载失败
请检查静态资源路径
nodes/nodes-list.png
节点治理:execution、management 与 passive_management 角色分工清晰,连接和容量可见。

节点管理员操作手册 → · TOTP 认证、帧协议与代理实现 →