给两台工业机械臂设计协作系统,最直觉的思路是先让它们互相商量。谁先抬哪头,谁后发力,顺序写进通信协议里,两台照章执行就行。可机械车间里根本没有这么干净的剧本,钢珠会在托盘上滑动。光源会让相机偏转,协议里写死的理想状态,一到真实环境就全部失效。
就在 2026 年 9 月 7 日,芝诺机器人拿出一个完全不同方向的答案,也就是 Zeno-1。它不再让机器人之间互发消息,而是让每一台自己预测我这一步会在物理世界引发什么后果。这个转向很关键,它把协作靠通信这种默认假设直接替换掉了。换成的是协作靠对物理因果的预判,这是根本性的思路反转。
Zeno-1 的定位值得先记住,它是当前公开资料里第一个专为去中心化多机器人协作设计的物理智能基础模型。总参数量只有 3B,却能以 30 赫兹的闭环频率完成从视觉到运动的完整推理。3B 放在大模型堆里不算大,但它跑在机器人本体上。它的单位是每秒完成多少轮感知、预判与调整,这才是最具分量的衡量。
先看那个 0.94 的数字是怎么算出来的
这篇拆解不想从架构图的某个模块讲起,而是想从一个被反复引用的数字倒着走。Zeno-1 在 200 次真实机器人实验里,对一个"0.5 秒之后会不会抓滑"的问题,给出的预测 AUC 达到了 0.94。AUC 衡量的是分类器把正样本排到负样本前面的能力。0.94 意味着它大多能分清"会失败"和"不会失败"的瞬间,这是排序能力的体现。
作为对照的一组模型只给当前观测,不看动作后果,在同一个问题上只能拿到 0.81。这 0.13 的差距,本质上就是"预判"和"观测"之间的距离。一个只回答"钢珠现在偏了吗",一个回答"我再这么夹,它大概率要滑走"。后者明显更贴近机械臂真正需要的答案,前者则停在表面描述。
真正有价值的不是这 0.13 的统计意义,而是它把"失败"从被动接受变成了主动触发。以前系统是出了问题再报错,现在它能在动作真正发生之前先判断这一步有多危险。然后它会决定要不要减速、换力或者停下,不再盲目执行到底。这种从"事后追"到"事前拦"的转变,才是这组数字背后最实在的东西。
Zeno-1 敢把预测式内省做成独立模块,是因为它内部塞了一个行动条件潜变量世界模型。这个模型不追求把整个车间的万事万物都显式建出来,只拟合对决策有用的那部分因果。它输入当前状态和拟执行的动作,推演下一步状态,并输出一个接触失败概率。抓取失误、滑动、抓握不稳、物体扰动,都属于这类能提前预判的物理事件。
模块内部的推理方式值得看清楚,它先输入的是我要施加一个多大力、往哪个方向推。再让世界模型推演这个动作之后共享物理状态会变成什么样。这样下来,机械臂得到的不是"钢珠偏了"这种静态描述,而是"我这样一夹必滑走"这种带因果的判断。前者描述环境现状,后者反推动作后果,两者含金量完全不同。
这也是它和单纯看图做决策的模型最大的分野,后者拿到的是环境当下的快照,只能描述现状。Zeno-1 拿到的是动作与后果之间的映射,能预判未来。车间控制系统真正稀缺的从来不是知道现状,而是知道我这么做会怎样。后者才是把机器人从执行器变成决策者的关键一步,这是根本性的能力跃迁。
0.5 秒这个时间窗也值得掰开算一下,人的平均反应时间大约在 0.2 到 0.3 秒。机械臂在 30 赫兹闭环里每个周期约 33 毫秒,0.5 秒足够它连续做 15 次纠偏动作。这样换算下来,Zeno-1 抢到的不是多看一眼,而是一段真正能用来执行补救动作的时间预算。它把已经滑脱再去追变成了在滑脱之前就调整抓取策略,这才是关键。
这段提前量才是 0.94 数字背后真正的工程价值所在。对一条运行中的产线来说,能提前半秒改变策略,和出事之后再补救,是完全不同的两种可靠性画像。前者允许系统主动避险,后者只能被动收拾残局。一个能主动避险的系统,会比只能事后救火的系统可靠得多,这是工程上的本质差距。
为什么"推演动作后果"比"看当前状态"更贴近失败
把这类预判和当下大模型领域的做法放在一起看,会发现它们本质上是同一件事。一个编程智能体在 CI 里先读代码再改代码,靠的是对修改后果的推断。Zeno-1 在真实世界里先预判接触再调整发力,靠的是对物理后果的推断。两者都把行动后果可预测当成可靠性的地基,只不过一个在代码层、一个在物理层。
正因如此,Zeno-1 才会有意把世界模型压成只回答决策问题的窄模型,而不是把它变成昂贵的全场景仿真器。一个能预测所有物理细节的通用仿真器,代价是天文数字般的算力。而一个只回答会不会滑的窄模型,训练和推理都便宜得多。它却恰好卡在机器人最需要的那个决策点上,这种取舍是成本可控的关键。
这种只算决策相关的因果的取舍,是它成本可控的根本原因。它承认世界模型不求全,也承认预测不必完美,只求在关键决策上给出足够可靠的指向。对机器人这种动作成本极高、稍一失误就损失惨重的场景来说,这点尤为关键。把有限的算力集中投在会不会出问题这个问题上,比均匀撒开要划算得多。
而它之所以敢这么做,是因为它的世界模型不是用来看懂世界,而是用来规避风险的。模型的价值被重新定义了,评价它好不好,不看它把多复杂的场景还原得多逼真。只看它能不能在关键时刻给出一个靠谱的风险信号,让机器人来得及把危险动作拦下来。这才是这套设计真正的高明之处,也是它区别于其他模型的关键。
去中心化的真正含义:把协调从通信层搬到物理层
过去二十年,多机器人协作的默认解法是加一层通信。装一台中央调度大脑,把任务拆成子任务,再用消息队列告诉每台机器人你先动、我等会动。这套方案的短板,在 Zeno-1 的定位里被点得很清楚。中央大脑一旦慢半拍,或者某台机器人断网,整条产线就得停,这就是它致命的结构性劣势。
而依赖显式通信,还等于把物理世界的因果翻译成网络里的字节,传输过程天然就会丢东西。一个我已经抬到半米的承诺,可以被网络延迟造假。也可以因为某帧丢包,让同伴错过关键信息。物理是刚性的,字节是可塑的,用可塑的东西约束刚性的协作,天然就埋着隐患。
Zeno-1 换掉的正是这一层,它不再给机器人之间开一条通信专线。而是让每一台机器人都有完整的感知、预测、决策闭环,然后依赖一个共享的事实。大家都生活在同一个物理环境里,你的一举一动会改变环境,而环境的变化又会恰好被同伴看得见。于是共享物理世界成了最硬、最不被伪造的协调接口,这是它的核心创举。
这才值得停下来理解清楚,不是不用通信这么简单,而是把通信的内容整个换成了物理本身。两台机器人不需要互相承诺我会抬到多高,因为那个承诺可以撒谎、可以延迟。它们改看钢珠现在的真实位置和受力,因为这条信息无法被任何一方篡改。这条信息只能由物理定律精确决定,可信度完全不同。
去中心化因此带来两个直接收益,其一是省掉了中央大脑这套重资产。机器人从两台加到十台,不需要为一台新增的机器扩容调度集群,只要保证每台自己的闭环足够可靠就行。其二是容错结构变了,任何一台掉线都不会牵连整个系统失去大脑。因为决策从来不集中在某一个单一节点上,这让整个系统更安全。
这套思路把机器人基础模型的核心命题从模型要更大扭转到闭环要更稳。每一台都背着完整模型,独立就能干活,这让聪明不再是一台中央大脑的特权。而是平均分到了每一台本体上,对预算和功耗的要求自然更高。但换来的是断网也能继续、加机器也不用扩容单一大脑的稳健性,这笔账算得过来。
四阶段课程训练:从看世界到成为伙伴再接受校准
Zeno-1 的训练被拆成四段,每一段都在补上一段留下的缺口。第一段是大规模视频预训练,让模型先学会物理世界的基本规律。比如物体在力的作用下怎么移动、接触发生时会怎样形变、液体倾倒时如何流动。这一步产出的是一种通用的物理直觉,跟具体的机器人本体还没有绑定。
这段预训练的价值在于,它让模型先建立对世界运作方式的整体认知,而不是一上来就教具体动作。就像人要先懂重力再学走路一样,机器人也要先理解摩擦、惯性和形变这些底层规律。这样后续才能把抽象的动作序列稳稳落到真实的物理交互上。就不至于一发力就乱套,这是打好地基的一步。
第二段是单体具身训练,把上一段获得的通用物理先验落到一台具体的机器人本体上。单台机器人在真实环境里反复练习,把视觉感知和本体状态的特征,映射成一套连贯的全身动作序列。到这一步,模型已经能从自己的眼睛和关节状态里读任务、做决策、出动作了。这是从看世界到亲手干活的过渡阶段。
不过到这里它还是一个人在干活,没学会和同伴相处。于是第三段成了 Zeno-1 最核心的创新,也就是闭环伙伴交互,简称 CPi。它让两台独立运行的机器人互为训练伙伴,每台完全按自己的观测独立决策。而它的一个动作会改变共享物理环境,进而改变另一台机器人下一步看到的输入和做出的判断。
这个训练阶段最关键的一点是,两机器人之间没有显式通信,也没有共享的动作标签。它们唯一的纽带,是那个被共同改变的物理世界。研究人员观察到,经过这一段训练,模型自发涌现出一批协作行为。比如减速、等待、让步、维持接触,以及重新校准时序,然后在交互重新变得兼容时恢复节奏。
这些行为不是被代码写死的,而是从闭环里长出来的,这也是它和规则编排最不一样的地方。规则要人工枚举每一种可能出现的情况,而协作行为是从交互过程中自己浮现的。面对没见过的配合方式,模型也更有可能给出一个合理反应。而不是直接卡住报错,这是从人工规则到自学习的关键跨越。
第四段是协作失败的针对性纠正,具体做法是把部署时观察到的协作过程录下来。专门挑出那些出了问题、也就是协作最容易崩的时刻,再让操作员对这些关键点给出纠正性演示。把这些演示补回训练数据,这一步把真实世界最稀罕的资源变成可训练的监督信号。这个资源就是"我们到底错在哪",它终于不再白白丢失在错误日志里。
这样的训练闭环,意味着模型策略不是一次训完就固定下来,而会随着部署中暴露的真实问题不断被校准。它承认现实里总会有规则写不到的情况,与其追求一次完美,不如建立一套能吸收真实反馈、持续改进的机制。让模型在一次次纠偏里慢慢逼近能稳定协作的边界。这才是它能够长期稳定运行、而不是一次到位的设计思路。
持久交互记忆:让协作不依赖"每帧重新认识"
去中心化协作还有一个天然障碍,机器人每做一步,环境就变一次。上一刻的上下文如果不留住,下一刻就得全部重猜。Zeno-1 用一个可学习的记忆模块来兜住这件事,它在每个时间步更新。它维护一份被压缩的交互历史表征,编码三类信息,也就是自己刚做过什么、同伴此刻在做什么、任务推进到哪一步。
没有这份记忆,去中心化协作几乎是不可行的。你设想两台机器人抬一根长杆,甲先调整了高度,乙如果不记得甲刚动过。下一拍乙就会按旧高度去接,杆子当场脱手。有了持久交互记忆,乙在每一帧都知道甲刚让了半厘米、我该跟着他的节奏。协作由此变成了有上下文的持续过程,而不是一堆彼此孤立的反应。
而且这个记忆模块和工作记忆是分开的,它刻意做成压缩的长期表征。而不是把整段历史原样塞进上下文,原因很实际。物理世界的反馈是按毫秒算的,如果每次决策都要重读一整段时序历史。30 赫兹的闭环根本撑不住,唯有把历史压成一个固定大小的状态向量,才可能跟得上节奏。

于是 Zeno-1 内部形成了一种清晰的分工,记忆模块负责我记得协作走到哪了。行动条件世界模型负责我下一步这么做会不会出问题,一个保历史、一个看未来。两者互为补充,这也是它区别于普通视觉语言动作模型的地方。大多数端到端模型只从当前帧映射动作,而它把历史与因果预判都变成了显式的一等公民。
下面这段代码直接给出一个可运行的行动条件世界模型骨架,它演示了最核心的那一步。也就是输入当前状态和拟执行的动作,推演下一步状态,并输出一个接触失败风险。为了避免几十行就淹没关键逻辑,我用 PyTorch 把状态编码、动作编码、状态转移、风险头四个部件拆开写。你把这个结构补上数据,就能直接开始训练。
# action-conditioned world model for cooperative embodied agents
# state: joint position + object pose (dim = state_dim)
# action: target joint velocity (dim = act_dim)
# risk_head: probability that this action causes a contact failure
import torch, torch.nn as nn
TORCH = 1.0
class ActionWorldModel(nn.Module):
def __init__(self, state_dim=32, act_dim=8, latent_dim=64):
super().__init__()
self.state_enc = nn.Sequential(nn.Linear(state_dim, 128), nn.GELU(), nn.Linear(128, latent_dim))
self.action_enc = nn.Sequential(nn.Linear(act_dim, 64), nn.GELU(), nn.Linear(64, latent_dim))
self.gru = nn.GRUCell(latent_dim * 2, latent_dim) # carries cross-step memory
self.state_pred = nn.Linear(latent_dim, state_dim)
self.risk_head = nn.Linear(latent_dim, 1) # logit -> sigmoid later
def forward(self, state, action, h=None):
s = self.state_enc(state)
a = self.action_enc(action)
if h is None:
h = torch.zeros(state.size(0), self.gru.input_size)
inp = torch.cat([s, a], dim=1)
h = self.gru(inp, h)
next_state = self.state_pred(h)
risk = torch.sigmoid(self.risk_head(h))
return next_state, risk, h
def train(model, states, actions, next_states, failures, epochs=200, lr=3e-4):
opt = torch.optim.AdamW(model.parameters(), lr=lr)
loss_mse = nn.MSELoss()
loss_bce = nn.BCEWithLogitsLoss()
for ep in range(epochs):
next_pred, risk_logit, _ = model(states, actions)
mse = loss_mse(next_pred, next_states)
bce = loss_bce(risk_logit, failures)
loss = mse + bce
opt.zero_grad(); loss.backward(); opt.step()
if ep % 50 == 0:
print(f"epoch {ep} mse={mse.item():.4f} bce={bce.item():.4f}")
return model
def preempt(model, state, candidate_actions, h, threshold=0.6):
"""given candidate actions, pick the one least likely to cause failure."""
best_idx, best_risk = -1, 1.0
for i, act in enumerate(candidate_actions):
_, risk, _ = model(state.unsqueeze(0), act.unsqueeze(0), h)
r = risk.item()
if r < best_risk:
best_risk, best_idx = r, i
return best_idx, best_risk, best_risk < threshold
def main():
torch.manual_seed(0)
n = 6000
states = torch.randn(n, 32)
actions = torch.randn(n, 8)
next_states = states + 0.1 * actions + torch.randn(n, 32) * 0.01
failures = torch.sigmoid(actions[:, 0:1] * 2.0).clamp(0, 1).round().float()
model = ActionWorldModel()
model = train(model, states, actions, next_states, failures)
# deployment: choose the safest of two candidate forces
cand = torch.randn(2, 8)
idx, risk, ok = preempt(model, states[0], cand, None)
print(f"chose action {idx} with risk {risk:.3f}, within threshold: {ok}")
if __name__ == "__main__":
main()
这不是孤例:协作正在成为机器人基础模型的共同科目
把 Zeno-1 放在行业里看会更清楚,学术界早就有同方向的路标。今年 6 月,斯坦福的 Chelsea Finn 和 Jeannette Bohg 课题组提出 CHORUS。也是基于单一视觉语言动作策略做去中心化的多机器人协作,思路和 Zeno-1 是同一族。而产业侧的动作更大,Figure 的 Helix 02 和 Google DeepMind 的 Gemini Robotics 2,都在发布里展示了多机器人协同作业的场面。
所以说,协作这件事正在被从头部的机器人基础模型集体写进能力清单。它不是某个小厂的孤例,而是整个赛道都在往同一个方向使劲。这也侧面说明,业界对机器人能不能在真实环境里稳定协作这件事,已经有了相当一致的判断。那就是光会干活还不够,还得会配合干活,这正在成为一种行业共识。
表面看大家在赶同一个风口,内里走的路径差异其实很关键。像 RoboOS 这类方案走的是云端大脑加本地小脑,把复杂的规划理解放到云端统一大脑。端侧只做低延迟的精准执行,它的好处是单机可以很轻,机器人本体不用背那么大一个模型。代价是依赖通信同步,一旦网络波动,端侧的聪明就断了。
Zeno-1 则做了相反的选择,它把完整的感知、预判、决策闭环整个放进每一台机器人的本体里。让它独立就能干活,然后用共享物理世界做隐式的协作纽带。这么做的代价,是每一台都要背一个 3B 模型,对算力和功耗的要求更高。但换来的是断网也能继续、加机器也不用扩容单一大脑的稳健性,这是它的核心权衡。
反过来看,这种设计对硬件和功耗要求不低。每一台都要背一个 3B 模型,跑 30 赫兹闭环。这对算力和散热,都是不小的考验。所以它更适合可靠性要求高、能接受较高成本的高端协作场景。
所以这两条路线不是谁替代谁,而是按场景分工。对精度要求极高、环境受控的产线,中央调度依然有它的价值。而对环境多变、强调抗扰和持续在线的应用,去中心化这种把聪明平均分配到每个本体的做法,会显现出明显的鲁棒性优势。Zeno-1 抢的正是后者这块还没被填满的地,定位非常清晰。
工程边界:0.94 不是"永不滑脱"的保证
把数字读得实在一点,0.94 的 AUC 说的是排序能力,不是零失败的承诺。它意味着在世界模型的排序里,真正会失败的瞬间通常会被排在不会失败的瞬间前面。但并不是每次高风险都必然出事,也不是每次都赶得上预警窗口。真实产线里,50 毫秒的通信抖动,都可能让好不容易攒下的时间预算被瞬间抽干。
所以 Zeno-1 的设计哲学不是我预测得准所以不会出错,而是我知道自己可能在哪出错。然后在出错前留出一段可执行的缓冲区,这个思路和当下编程智能体的做法高度一致。它们也从不承诺一次就写对,而是用测试反馈把可能翻车提前暴露在 CI 里。让问题在真正上线之前被拦住,这是同一套逻辑在物理世界的呼应。
这也解释了它为什么执着于行动条件的世界模型,而不是泛化的世界模拟器。一个能预测所有物理细节的通用仿真器,代价是天文数字般的算力。而一个只回答我这次这么做会不会滑的窄模型,训练和推理都便宜得多,却恰恰卡在机器人最需要的那个决策点上。这种取舍是它成本可控的关键,也让这套方案更可落地。
当然,去中心化协作也远没有到成熟的阶段。两台机器人能学会等待和让步,不代表五台、十台在复杂车间里还能维持同样的稳定性。而用共享物理世界当接口这个漂亮论断,在真实产线上要先能稳住长时间不发散。才算真正成立,它更像是一个方向被验证可行,而不是一套已打磨到能无脑落地的成品。
换句话说,Zeno-1 最大的贡献,是证明了协作可以不靠通信、而靠对物理因果的预判这条路是走得通的。至于它能不能在更大规模、更复杂的环境里稳定发挥,还需要更多真实产线的检验。作为一个 2026 年 9 月刚发布的模型,它现在更像个路标,指明了机器人协作应该往哪个方向走。而不是一个就此定稿的终点,这才是它眼下最合适的定位。