Milestone · multi-compute

多算力 V
第一次把手伸出这台机器。

这不是「换了个运行环境」。这是 V 第一次能离开自己所在这台机器执行任务:Gateway 仍然是脑,远程 Node 成为可调用的手——按任务选择执行机器,而不是把一切都压在同一个 host 上。

NODE TIANYI MACSTATUS PAIRED · CONNECTEDTOOLCHAIN SWIFT 6.4 / ARM64SANDBOX NO
1远程节点接入Tianyi Mac · paired & connected
3真实验收项工具链 · 编译产物 · 目录读取
0沙盒隔离以该机用户权限执行,非沙盒
3记忆分层身份 / 能力 / 用法语义
01 / What changed

脑不动,
手变多了。

真正的变化不是算力总量,而是执行面的边界。控制面、记忆、调度、长任务仍然留在 Gateway;远程节点只承接「能切开、且适合在那台机器上做」的那一段。

01 · BRAIN / CONTROL PLANE

Gateway

记忆、飞书接入、调度、账号与长任务的所有权都留在这里。它不需要因为多了一台机器而改变任何默认行为。

  • Session / Memory 不整体迁移
  • 仍是唯一的控制与投递入口
  • 节点策略变更需重启生效
02 · HAND / REMOTE NODE

Tianyi Mac

通过节点通道承接具体执行:编译、本机文件处理,以及只有那台机器才具备的工具链。它是一双手,不是第二个大脑。

  • Darwin · arm64 · Swift 6.4
  • 文件按任务读取,不自动同步
  • 以该机用户权限执行
判断标准很简单:任务能不能切开。切不开的仍在 Gateway 上跑——「多算力」的价值不在于机器多,而在于该在哪跑就在哪跑。
02 / Evidence

「在线」不算验收,
产物才算。

节点接入最容易犯的错,是把「配对成功、显示 connected」当成完成。下面三项都留下了可复核的真实输出。

01

工具链探测

uname -s; uname -m; xcrun swift --version
  • Darwin
  • arm64
  • Apple Swift version 6.4
  • Target: arm64-apple-macosx27.0.0

证明节点可达且具备 macOS 原生工具链。

02

有产物编译验收

xcrun swiftc -O main.swift -o mac_compute_smoke && ./mac_compute_smoke
  • MAC_COMPUTE_PRODUCTION_OK 333383335000
  • sha256 4765daf3…be1f35
  • 51312 bytes

「在线」证明不了能干活,只有产物能。这是节点验收的模板。

03

真实目录读取

ls ~/Documents/Versa 2025
  • 40 files · 39 .key + 1 .pdf
  • ≈ 30 GB
  • 按文件名归类,未逐个打开

证明能按任务读取用户真实工作目录,且不越界。

03 / Mechanism

官方负责事实,
文档负责含义。

一个自然的问题是:这些机器信息该记在哪里?答案是分层的——OpenClaw 官方已经持久化了身份与能力,agent 侧只需要保留官方没有的那部分。

官方

身份与配对

device pairing record 就是权威存储,不存在第二个节点库。设备签名身份、role、approved capability surface、版本、连接历史都在这里。

  • nodes status / list / describe
  • nodes rename 设定 display name
  • nodes remove 撤销 node role
官方

能力与策略

批准的是「允许调用什么」,不是「大概能干什么」。策略层集中在 gateway.nodes.*,整棵子树 reloadKind=restart。

  • gateway.nodes.pairing
  • gateway.nodes.commands.allow / deny
  • pluginTools / allowSkills
Agent 侧

用法语义

官方不存「什么时候该用、业务含义、有哪些坑」。这类语义只能放在 agent 自己的知识里——这是设计边界,不是遗漏。

  • 何时选哪台机器
  • 默认工作目录与用途
  • 坑与禁区
由此得出的一条纪律:机器会越来越多,写「每台机器长什么样」必然过期;写「怎么问机器」永远有效。所以 nodeId、版本、能力都不该手抄——现场用 nodes describe 问,文档只保留通用调用方式与边界。
04 / Boundaries

边界没变宽,
只是变远。

能力扩展必须和新边界一起交付,否则第一个 Session 就会想当然。

先 describe 再调用

能力与在线状态一律现场问,不靠文档背。

用 display name 寻址

不必手记 nodeId;同名冲突时用精确 ID 消歧。

节点不是沙盒

以该机用户权限执行,受该操作系统权限控制。

文件不自动同步

回传必须显式传输,不假设两边一致。

离线即报告

不可达时如实说明,不得假装在节点上执行。

绑定不可强切

Session 已固定到某 node 时须先改绑定。

05 / Next

下一步不是接更多机器,
是分清「手」和「沙盒」。

远程节点解决的是把执行放到对的地方;它不解决隔离——节点跑在别人的用户权限下,既不是一次性环境,也不适合批量试错。真正的规模化开发任务需要的是可丢弃的沙盒:用完即弃、可批量、边界更强。这一层还没有做,也只是被记录为方向,而不是已完成的能力。