ZIWU AI
EVIDENCE-FIRST · CLOUD GPU SIMULATION EVALUATION & DIAGNOSTICS

ZIWU 文档

ZIWU 当前展示的是 GPU 仿真评测与运行诊断:它把一次具身策略运行从「一段视频 + 一个 success 布尔值」,变成规范任务图上可回放、可定位、可追溯的执行证据。已验证能力、局部验证能力与规划项在文档中分别标注。

PRD · TASK-GRAPH DIGITAL TWIN

任务图数字孪生 · 产品说明(PRD)

/workflow/fill-pen-holder/execution-graph 现有功能的完整梳理:目标、信息架构、功能清单、非功能要求与已知缺口。

1. 定位与目标#

页面
/workflow/fill-pen-holder/execution-graph
一句话
把七条已录制的 GPU 仿真 Episode trajectory 投影到同一张 Canonical Task Graph,并把路径锚点绑定到可复核证据。
要解决的问题
长程操作任务的失败无法被一个 success 布尔值描述;需要把失败定位到任务图的具体边上,并且每个结论都能点回原始帧。
成功判据
一个不熟悉该任务的人能在 3 分钟内指出轨迹卡在哪一步、证据在哪里,并把原因表述为下一次运行可证伪的诊断假设。

目标用户与其核心任务

用户核心任务页面上对应的能力
策略研发者定位失败位置、比较策略间的卡点差异轨迹选择器 + 任务图投影 + 「经过 ×N」停滞徽章
基准 / 评测维护者核对聚合数字与单条轨迹是否自洽群体证据带(官方 150 条 P0–P4)与单轨迹分层显示
仿真 / 物理工程师区分策略问题与物理问题实跑面板的物理穿模检测;公差阶梯的最大穿透列
评审 / 决策者在有限时间内建立可信判断三路同步视频 + 锚点详情 + 证据边界声明

2. 信息架构#

Hero 与裁决卡之后,是六个编号区块(括号内为锚点 id):

  1. Hero + 本集裁决卡:任务标题、七条轨迹的一句话说明,右侧是当前选中轨迹的裁决(SUCCESS / FAIL / LIVE、轨迹角色、原生终局明细)。
  2. 01 规范任务图#digital-twin):任务定义、Episode path 与 Cohort Profile 分层显示。
  3. 02 三路同步证据#evidence):轨迹选择器、播放控制、step 滑杆与三路录制相机。
  4. 03 GPU 云端仿真#gpu-live):流水线 / 头部相机 / 双臂轨迹 / 物理侧写;评审副本不连接生产触发服务。
  5. 04 离线运行#offline-demos):5 个 RunBundle 的视频与任务图同轴回放。
  6. 05 公差扫描#tol-ladder):9 条运行的 8 / 4 / 2 mm 公差结果。
  7. 06 证据边界#evidence-boundary):明确能证明什么、不能证明什么。

3. 功能清单 · F1 轨迹选择器#

七条录制轨迹共用同一套播放、定位与孪生图;当页面上存在一次 fill_pen_holder 的实时运行时,会额外出现第八条 LIVE 轨迹并自动选中。

轨迹角色终局规模锚点来源
ACT · seed 0评测单元轨迹fail · score=0 · reward=01100 steps / 44.04 s12 锚点 · 三代理独立审阅(视觉判读)
Xiaomi_R1 · ep5官方策略代表轨迹原生 success604 steps / 24.2 s13 锚点 · 单代理抽样(每 ~50 帧)
Pi_05 · ep5对照策略代表轨迹原生 fail1100 steps / 44.04 s12 锚点 · 单代理抽样(每 100 帧)
Pi_05 · ep8对照策略 · 10 条中唯一成功原生 success · score=1.01029 steps / 41.16 s12 锚点 · 单代理抽样;终局取自 pod 上的 _result.json
XR1·trace s0e0原生逐步真值score=0.4 · 3/4 入筒,第 4 支横卡筒口(TIP_DOWN=假)1100 steps谓词 / 里程碑逐步真值
XR1·trace s0e2原生逐步真值score=0.25 · 2/4 后开爪打翻笔筒(is_axis_up=假)1100 steps谓词 / 里程碑逐步真值
XR1·trace s1e2原生逐步真值 · 成功原生 success · score=0.9 · 四次锁存 173/293/417/549 · FINAL_ACCEPTANCE@615615 steps / 24.64 s谓词 / 里程碑逐步真值

切换轨迹会重置播放器与 step 游标。选择器带意图预取:指针悬停或键盘聚焦到某条轨迹时,延迟 220 ms 后预热它的三路视频——但仅在当前轨迹已完全缓冲且没有在播放时才真正发起请求,否则会与正在播放的视频抢带宽(实例公网出口观测上限约 10 Mbps)。

4. 功能清单 · F2 三路同步播放#

  • 头部 / 左腕 / 右腕三路 640×480 视频由同一个播放引擎驱动,共享时间源;step 与秒数按 25 FPS 互转。
  • 播放控制:播放 / 暂停(缓冲期间显示「缓冲中 · n/3 路就绪」并置 aria-busy)、倍速 0.5× / 1× / 2× / 4×、step 滑杆与秒数读数。
  • 锚点详情面板里的主视角画面用 canvas 镜像 CAM 01,而不是再挂一个 <video>——后者会导致每条轨迹把 head.mp4 下载两次。
  • 演示预载:一次性把本页 42 个视频 / 海报写入 Cache Storage,由 Service Worker(支持 Range 请求)接管 /evidence/*,已在无头 Chrome 断网条件下验证可完整播放。

5. 功能清单 · F3 任务图画布#

灰色骨架是 fill_pen_holder 的规范任务图(canonical task graph v6 简化布局),对所有轨迹保持不变。彩色轨迹随播放逐段生长。

轨迹段的五种状态

状态颜色语义
推进 progress绿任务进展实际前进(含锁存、回正、归位)
抓取 / 对准尝试 attempt正在尝试,尚未确证成功
回退 / 进展丢失 regress琥珀已获得的进展被丢失(脱手、打翻、谓词翻假)
停滞循环 stall在同一处重复动作而无净进展
超时终局 terminal步数上限终止

节点的三种状态

  • 已到达:描边点亮,可点击 / 回车跳转到该节点的首次到达 step。
  • 未到达:虚线描边 + 「未到达」标签——本轨迹原生确证从未进入。
  • 无逐步观测:本节点的状态不在谓词词表内(例如「具体抓的是哪一支笔」),因此既不能说到达也不能说未到达。这一区分只对原生真值轨迹有意义,也是页面最容易被忽略但最重要的诚实性设计。
  • 同一节点被经过 ≥3 次时,会出现「经过 ×N」徽章——这是长程任务里停滞循环最直观的指纹。

其它画布元素

  • 游标:沿当前段的路径按 step 比例移动(getPointAtLength),实时显示 STEP n,颜色取当前段状态色。
  • 两种显示模式:「跟随播放生长」只画已走过的部分;「预览全程轨迹」把未来段以幽灵线预告。
  • 群体证据带:画布右下角固定显示官方 150 条 rollout 在 P0–P4 里程碑的观测计数与逐级通过率,并在 SCORE_GATE / FINAL_ACCEPTANCE / SUCCESS 三个节点上以蓝色徽章标注群体数字,与单条轨迹分层。

6. 功能清单 · F4 锚点详情与时间轴#

右侧详情面板随游标更新,是「从图回到证据」的主要入口:

  • 当前锚点状态点 + 轨迹名 + STEP n + t = x.xx s + 状态文案(实时运行时显示「实时 · 最近锚点 STEP n」)。
  • CAM 01 同步画面(canvas 镜像;实时运行时改为头部相机最新帧)。
  • 任务图节点映射:命中的节点标题 + 该锚点的阶段名 + 映射来源(原生事件映射 / 视觉判读映射)。
  • 观察 OBSERVATION:该步实际观察到的状态描述。
  • 诊断假设 HYPOTHESIS:可能的阻塞原因,以及「下一次验证」应当做什么——刻意与观察分开,避免把推测写成事实。
  • 上一 / 下一锚点跳转;底部固定显示证据等级(原生真值 / 视觉判读)、置信度与该轨迹的标注说明。

下方是锚点时间轴:进度条 + 播放头,以及一条由关键帧缩略图组成的胶片带(step-0000.jpg 命名),点击任一帧直接定位。已到达的锚点标签会点亮。

7. 功能清单 · F5 GPU 实跑面板#

同一个组件同时被首页与本页引用(改一处两页同步)。它把「评测」变成页面上的一个可交互对象:

  • 三个正交旋钮 + 口令触发:任务 / 平台 / 模型 / 步数上限;可选值由 catalog_v2 在运行时下发,内置表仅作离线兜底。不兼容的组合(模型未安装在该平台)会被划掉并解释原因。
  • 流水线可视化:阶段只有在真正开始之后才会出现——manifest 从第一次轮询就带着后续所有阶段的 pending,直接渲染会把整条流水线提前画完,甚至让一个还没跑的阶段显示为完成。过滤 pending / skipped 才是「图会生长」的原因。
  • 仿真实时帧:生产版运行中推送头部相机帧;录制完成后回放进度可驱动任务图回退 / 前进。
  • 双臂末端轨迹:x(左右伸展)–z(抬起高度)剖面,每 50 个 policy tick 一个点,实心点表示夹爪闭合;坐标窗口固定在 ARX X5 的可达范围,避免点流入时画面反复缩放。
  • 物理穿模检测:正常 / 警告 / 异常 / 未采集 / 监测中,附事件数与最大穿透深度(毫米)。
  • 互斥与容错:409 区分「本平台被另一次页面发起的评测占用」与「被非本页面发起的外部运行占用」;SSE 连续失败 4 次后停止重连并给出明确错误。

8. 功能清单 · F6 LIVE 轨迹编译器#

录制轨迹的线段是人工放置的;实时运行没有这个条件——它只提供 (step, k) 序列、原生谓词翻转与终局。编译器用一套镜像规范任务图的规则把这个流变成同样形状的线段:

  • 第 r 轮(r = k+1)画成 抓取 → 对准 → 插入,随 step 推进逐段生长;
  • 第 k 个里程碑在第 s 步锁存 → 本轮收束到 SCORE_GATE,下一轮从 GRASP 重新开始(即 i+1 循环边);
  • 终局成功 → FINAL_ACCEPTANCE → SUCCESS;终局失败 → 从当前位置直接连到 TIMEOUT_FAIL。
  • 谓词事件被直接翻译成锚点:闭爪抓取、开爪释放、target_i 对准筒口、target_i 入筒(XY ∧ 深度)、笔筒倾倒 / 回正。

9. 功能清单 · F7 离线实跑示例与公差阶梯#

离线实跑示例(5 条真实 RunBundle)

首张是 RoboFlex(RoboDojo-Pro · 柔性)T0 的第一个 RunBundle(2026-08-23,插充电器,8 mm 公差,400 步,物理穿模 0 事件,原生 score=0);其余四条为 2026-08-19 的 GPU 彩排(RunPod 4090 / Modal L40S × Xiaomi_Robotics_1 / π0.5)。视频进度直接换算成 policy tick 驱动任务图,拖动进度条时节点与双臂轨迹会回退或长出。

π0.5 输出关节空间动作,trace 里没有 ee_pose,画不出轨迹剖面——这类运行改用 Agent 事件时间轴替代,并在卡片里明确写出替代的原因。宁可换一种呈现,也不画一条来源不明的曲线。

公差阶梯扫描(9 条 run)

把 RoboFlex 插接任务的横向对准公差从 8 mm 收紧到 4 mm、2 mm(ANCHOR_FLEX_TOL_MM,每档 3 个 seed,共 9 条 anchor 实跑,全部 400/400 tick、物理侧写 ok、零 PhysX 错误),RoboDojo 后训练过的 Xiaomi_Robotics_1 在最宽的 8 mm 档也是 0/3——「公差—成功率」曲线是一条平零线。

图上可以展开 9 条运行明细表(run id / 公差 / seed / score / 成功 / 物理状态 / 最大穿透);每个点悬停显示其 run id 与穿透深度;右侧是最有说服力的一条代表性失败视频(最宽档 seed 0)。规则化基线(flex_expert 脚本专家)以虚线占位,上线后将在同图叠加对照线。

10. 非功能要求#

性能
播放期间页面每秒重渲染约 25 次。相机网格、胶片带、实跑面板与轨迹图均做了记忆化;SVG 线段用 pathLength=1 + strokeDashoffset 生长;进度条用 transform 而非 width(避免每 tick 触发布局);投影几何按点数组身份缓存。
带宽
预取节流 220 ms,且仅在当前轨迹完全缓冲、未在播放、网络条件允许时进行;播放开始立即取消进行中的预取。
可访问性
画布提供 role="img" 与描述性 aria-label;已到达节点可 Tab 聚焦并用 Enter / Space 跳转;选择器使用 aria-pressed;流水线区域 aria-live="polite";尊重 prefers-reduced-motion。
离线
演示预载 + Service Worker,可在完全断网时演示全部录制轨迹。
缓存正确性
evidence 视频 URL 带版本号;原地替换素材必须同时改版本号,否则旧缓存客户端会收到 416。

11. 证据边界(页面对外承诺)#

页面底部有一段固定的证据边界声明,它是这个产品最重要的部分之一。要点:

  • 灰色骨架来自规范任务图 v6(简化布局),不是从某条轨迹反推出来的。
  • 七条 GPU 仿真轨迹的证据等级不同:ACT 为 12 锚点三代理视觉审阅;Xiaomi ep5、Pi_05 ep5/ep8 为单代理抽样视觉标注(±25–50 帧);三条 XR1·trace 轨迹为逐步谓词 / 里程碑原生真值。
  • 「夹爪开合」是抓取 / 释放的原生代理信号,不区分具体是哪一支笔。
  • LIVE 轨迹只携带 policy-tick 进度、头部相机帧与流水线阶段;原生 success / score 以 RunBundle 为准。
  • 右下角蓝色群体数字来自官方 150 条的 P0–P4 里程碑观测计数,与单条轨迹分层且不可互换
  • 页面确认失败位置和可观测路径;原因只作为可被下一次实验推翻的诊断假设。当前没有实体机器人或 Sim-to-Real 配对证据。

12. 已知缺口与下一步#

缺口影响建议动作
评审副本的 LIVE 触发已隔离不能在副本直接启动生产 GPU 任务正式开放前建立独立认证、配额、队列与运行后端
页面 UI 全中文国际社区无法参与抽取文案层,提供 zh/en 双语(本文档站已先行)
触发口令为 window.prompt,无账号体系无法开放公众实跑,无配额与排队可见性引入令牌 / 配额 / 队列位置展示
LIVE 只有头部相机实时观感弱于录制轨迹后端补三路推流或降采样多路
公差阶梯只有一条 VLA 曲线结论缺少对照,说服力受限补规则化基线 flex_expert 曲线
群体证据仅覆盖 fill_pen_holder无法回答跨任务的普遍性把 P0–P4 契约推广到更多任务
示例数据以 TS 模块内联(离线示例数据文件约 1800 行)新增运行必须改代码并重新发布改为从 RunBundle 索引拉取

文档修订 · 2026-08-26 · 文档源码位于 app/documents/;公开仓库链接待上线。