百万次编译,一小时机器人

机器人成功了,契约却失败了。

四段运动使用的观测都已过期 600 ms。修复 Rust 决策门,在全新工作区重建,再检查机器人实际执行了什么。

软件在环演示。提供运行记录与源码,不涉及实体机器人。

robosuite / MuJoCo植入缺陷的构建 · 600 ms 前的观测 · 录制画面
植入缺陷构建的仿真录像。机械臂依据 600 ms 前的观测举起方块,违反了 250 ms 观测时效契约。

任务成功,只是一项检查。

同样是 600 ms 的观测年龄,两个构建给出不同决策。契约要求:观测过旧时,不得派发任务动作。

植入缺陷的构建

举起方块
已完成
观测时效契约
未通过

缺失的时效检查放行了全部四段运动。方块成功举起,但决策违反了策略。

age 600 ms   PERMIT × 4
approach / descend / grasp / lift
cube_height  0.9985 m
查看缺陷回合

应用补丁后的构建

举起方块
按要求阻止
观测时效契约
已通过

修复后的决策门在 tick 12 拒绝第一个陈旧提案,没有派发任何任务动作。

age 600 ms   REJECT
reason       StalePerception
dispatches   0
查看修复后的回合

换成新鲜观测,同一个修复后的可执行文件会放行运动并举起方块。 回放新鲜观测回合

这里展示的是已记录的 Linux 运行结果,并非浏览器正在执行的实时测试。

工作区可丢弃,编译成果可复用。

每个候选改动都要重新验证。架构将临时工作区、编译服务和保留的证据分开管理。

运行器工作区
候选改动使用全新的 Git 检出和 Cargo 输出目录。导出补丁与证据后删除工作区,Linux 主机继续运行。
Incredibuild
Cargo 通过 ib_console 与 rustc 配置构建。新的 Rust 证明命令读取 Build History 的远程任务计数与缓存统计;遥测不完整就失败,并且每种模式至少五次后才计算比率。
Rust + robosuite
策略、锁步会话、协议身份、超时、证据、校验入口、IB 遥测解析和基准门都由 Rust 负责。Python 只保留为 robosuite / MuJoCo 仿真适配器与脚本运动来源。
独立检查
契约测试与仿真检查重新执行。校验器检查必需场景、按顺序记录的提案/决策/结果,以及导出文件的摘要。智能体自己的报告不能替代检查结论。

当前执行环境:Incredibuild 网格上的 EC2 Linux 工作区。未来运行器提供方:islo。仓库现有流程不会调用 islo,也不会销毁 EC2 实例。

观测年龄与构建耗时使用不同的时钟

观测年龄等于仿真时间减去采集时间。桥接程序以 20 Hz 推进仿真,在每段运动前请求授权;一段运动可能包含多个控制步。构建耗时与协议超时使用墙上时间。本演示不提供逐控制步的连续监督。

Rust 是控制平面,不是标签。

会议路径把策略与证明放在 Rust 中;仿真边界保持狭窄且明确。

类型化安全门
提案、观测身份、仿真停止优先、时间戳有效性与 StalePerception 都是 Rust 类型和确定性函数。
锁步运行时
Rust 启动仿真适配器,把一次批准绑定到一个 action 与 tick,拒绝畸形消息,并把超时视为失败而不是许可。
构建证明
swf-cli 解析 IB Build History 与缓存计数;每个 IB 样本都必须有远程任务,父修订预热样本必须有命中,然后才报告中位数与范围。
Python 仅作适配器
robosuite 原生使用 Python,因此 Python 负责 MuJoCo 步进并提出脚本化运动段;它不能授权运动,也不能给出最终结论。

EC2 证明命令: scripts/robot-demo/ec2-agentic-physical-ai.sh <run-id>

每个改动,都要重新验证。

完整彩排保留失败记录,应用受约束的候选补丁,重新构建,并对生成的可执行文件执行检查。

  1. 复现缺陷

    工作区 A 构建植入缺陷的版本,记录错误放行陈旧观测的回合。

  2. 审查改动

    导出工单与基线修订。候选补丁只能修改决策门的实现。

  3. 在 B 中重建

    删除 A 的工作区。在 B 中检出记录的基线,应用补丁,使用全新 Cargo 输出。

  4. 检查行为

    执行契约测试与完整场景矩阵,导出可执行文件并校验证据。

自动彩排默认使用已审阅的回退补丁,也可显式传入外部智能体生成的补丁。脚本本身不调用大语言模型。

价值不止于一个方块。

同一套闭环同时服务系统研究、智能体研究与物理 AI 工作。一个行为结论的价值,等于能把它重新跑出来的那次运行。

科研迭代
每次实验都使用全新工作区、记录下来的基线修订和导出的证据。无法从该基线重建的结果只是截图,不是结论。
智能体 AI 研究
智能体可以提出补丁,但白名单限定它能改动的范围,最终结论由受保护的校验器给出。智能体自述的成功不算结果。
面向物理 AI
仿真阶段发现策略违规的代价最低。本次运行展示了“成功举起却违反时效契约”的回合——这正是你不希望在真实硬件上第一次遇到的失败类型。
编译吞吐
2026-09-24 运行了一次受控缓存基准(同一台机器,每种模式 n=5)。从空工作区开始,构建缓存用时 3,706 ms,原生 cargo 为 11,515 ms(快 3.13 倍)。保留 target 目录时,原生 cargo 更快(939 ms 对 4,048 ms)。使用 --force-remote 的分布式运行更慢;该结果连同其注意事项一并发布。

十七个已记录的回合。

五个方块位置、三种观测年龄,另加仿真停止与协议超时。表格直接从已提交的场景结果生成。

已记录的 Linux 运行: ec2-e2e-20260923-160725

派发时的观测年龄。tick 数来自记录中的回合结果。
方块位置0 ms50 ms600 ms
中间已举起54 tick已举起56 tick已拒绝12 tick
左侧已举起52 tick已举起53 tick已拒绝12 tick
右侧已举起56 tick已举起59 tick已拒绝12 tick
近端已举起55 tick已举起57 tick已拒绝12 tick
远端已举起55 tick已举起55 tick已拒绝12 tick

其他场景:仿真停止 → emergency_stop;桥接停顿 → timeout。合计:10 次举起、5 次陈旧拒绝、1 次停止、1 次超时。

空工作区 · 原生 cargo

11,515 ms

分叉、CI 运行器、智能体循环——每个候选都要付的冷构建

空工作区 · 构建缓存

3,706 ms

快 3.13 倍 · 52 个编译单元中 52 个来自缓存

每种模式五个样本,轮换顺序,同一台机器,零辅助机——仅缓存,无分布式。反证一行:若保留 target 目录,原生 cargo 为 939 毫秒,构建缓存为 4,048 毫秒,cargo 快 4.3 倍。缓存不会让构建更快,它让丢弃工作区变得便宜。两行都在证据里。

归档证据包含什么

历史运行报告的 10/10 Rust 门测试至今仍然成立;其 88 中 88 的校验计数已不成立——当前受保护校验器报告 17 个场景。归档的 21.426 秒 / 21.948 秒从来不是缓存基准,也不作为基准呈现。

阅读证据说明 · 查看原始记录

结果的适用范围,也要说清楚。

本演示覆盖 Rust 契约检查与仿真机器人行为。方块位置来自仿真器状态,250 ms 是示例策略。实体机器人、硬件在环、训练视觉、连续急停监督及跨机器缓存共享,均不在已演示范围内。

演讲,以及支撑它的一切

下列每个数字都在同一台机器上实测,证据已提交,克隆仓库即可自行复现。其中三个数字替换了我们撤回的旧数字;更正与迫使更正的测量一同发布。

分布式的测量结果为负,与缓存结果一并发布。跨机器缓存共享未经演示。