节点
把执行能力延伸到你自己的机器,无需开放 SSH、无需分发 SSH Key。节点主动拨向平台,终端、exec、文件与代理都复用这条受控连接。
| 问题 | 传统 SSH 方案 | Ai Lubricant 节点 |
|---|---|---|
| 入网方向 | 平台主动拨入机器,需要公网 IP / 端口映射 | 节点主动出站连接,NAT 后可用 |
| 凭据管理 | 分发 SSH Key,手动轮换撤销 | onboard 发 TOTP secret,AES-256-GCM 封存,一键 Revoke |
| 端口暴露 | 开放 22 端口,暴露攻击面 | 不开任何入站端口 |
| 执行方式 | SSH 命令行,无统一审批 | 审批后才调度,容量/角色可控 |
| 附加能力 | 仅 shell | 同一连接复用:PTY 终端、host exec、文件、HTTP 代理出口 |
功能:三种角色
| 角色 | 是否运行客户端 | 职责 |
|---|---|---|
execution | 是(独立 Go 二进制) | 执行 provider CLI 会话、任务、工作区、终端、文件与节点代理;只有它参与会话调度 |
management | 是(独立 Go 二进制) | 管理 execution 节点并在宿主机创建/删除它们;自身也支持 host terminal 与 exec |
passive_management | 否 | 纯分组与授权容器,创建后直接 approved,不连接、不执行、不提供终端 |
一台接进来的机器可同时是五类用途:浏览器 PTY 终端、跑 provider CLI 的编程子端、host exec 单条命令、工作区与文件读写、HTTP 代理出口。
功能:无需 SSH 的四步链路
1
节点主动拨号
节点使用自身 ID 与 TOTP 凭据连接控制服务;断线后指数退避重连。
2
平台批准与调度
只有 approved、在线、具备能力且满足容量的 execution 节点参与会话调度。
3
帧式命令通道
终端 open/input/resize、host exec、工作区配置与 HTTP 代理通过 NodeConnect 帧下发。
4
输出与状态回传
PTY 输出、命令结果、会话事件与隧道响应通过同一连接流式返回。
准确边界平台日常链路不依赖 SSH 端口与 SSH Key;你仍需在目标机器安装节点、赋予合适的操作系统权限,并允许节点主动访问控制服务。
功能:终端、exec、文件与代理出口
| 能力 | 行为 |
|---|---|
| 浏览器 PTY 终端 | 浏览器 WebSocket → 数据服务 → 控制服务 → 节点本机 PTY(Unix pty / Windows ConPTY);断开时节点关闭残留 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 模式 |
功能:身份加密封存与审批
| 措施 | 行为 |
|---|---|
| TOTP AES-256-GCM 封存 | onboard 发唯一 node_id 与 TOTP secret,服务端封存;认证带重放缓存,同一验证码不能复用 |
| 统一 permission_denied | 未知/撤销/错误/重放统一返回,避免身份枚举 |
| 必须审批 | 未 approved 的节点即使连上也不参与调度,可随时撤销 |
| 主密钥不可随意轮换 | NODE_CREDENTIAL_ENCRYPTION_KEY 加密既有 TOTP 凭据,丢失即无法解密;迁移控制面先停旧实例再启新实例,禁止双 Registry |
功能:Agent 安全控制操作
节点上跑 Agent CLI 时,平台从配置、执行到结果全程设防,不让 Agent 拿到不该有的权限:
| 控制点 | 行为 |
|---|---|
| 目录边界 | Agent 配置 allowed_roots 与 denied_patterns;默认拒绝 /etc/、/var/、.env 等敏感路径 |
| 资源显式授权 | 技能、插件、MCP 与规则由用户/管理员授权后才注入;Agent 拿到的始终是被明确选择过的资源 |
| 身份隔离 | Agent 绑定用户后按当前发起用户校验 API Key 与 MCP token,跨用户 401;不从 token 集合任取 |
| 子 Key 收窄 | 任务级派生收窄的子 Key:模型、编辑器、策略与速率限制不越权 |
| Git 凭据托管 | 节点 clone 用服务端签名 proxy URL,真实 PAT 只在服务端内存;token 绑任务、只读、任务结束即失效 |
| 高危操作人工确认 | 高风险命令、删除、外部发布与对外发送保持人工确认 |
| 能力声明门槛 | 节点按 editor CLI 上报能力标签;review 等高权限任务要求对应标签齐全才参与调度 |
功能:一个指令连接 Agent
Onboard 后直接复制一条命令到目标机器:
curl <平台地址>/api/v1/public/nodes/<node_id>/install.sh | bash
| 脚本自动完成 | 行为 |
|---|---|
| 识别平台 | 运行时自动识别 Linux / macOS 与 amd64 / arm64,选择匹配版本;不支持的平台明确报错,不偷偷回退 |
| 下载节点 | 从发布目录下载 execution / management 对应二进制,校验 sha256 后安装为整机唯一 daemon |
| 安装 Agent 运行时 | 同时下载并解压匹配平台的 agent-compose-runtime,节点第一次注册就上报 runtime_version——不用先手工装 Agent 依赖 |
| 注入连接参数 | server / node_id / secret / role / proxy 配置都写进一次性脚本;secret 在响应 body,不放 URL/日志;凭据 30 分钟过期 |
| 自动启动与重连 | 安装后作为 daemon 启动并主动拨平台,断线指数退避重连;管理员核对身份后 Approve 即可接 Agent 任务 |
怎么接入
- 管理员在
/manager/nodes点 Onboard,选角色(execution 必须挂 management/passive_management 父节点)。 - 在目标机器执行安装命令(含 node_id 与 secret,30 分钟内有效;等价于节点身份凭据,不可外传)。
- 回管理端核对身份后 Approve。
- 开发者建任务时选该节点,或进浏览器终端直接操作。完整步骤见 节点管理员手册。
/manager/nodes
截图加载失败
请检查静态资源路径
请检查静态资源路径
nodes/nodes-list.png