Skild S1 上下文机器人学习架构#

Skild S1 是一个以示范视频作为任务提示的机器人基础模型:用户不必为每个新任务重新采集数百条轨迹并微调权重,而是把一段人类或机器人示范放进上下文,模型在推理时理解任务意图、场景对应关系与执行进度,再将它翻译成当前机器人身体上的动作。它关注的不是普通 VLA 的“用语言选择已学技能”,而是机器人能否从一次演示中执行训练时未见的新技能和最长约十分钟的任务组合。

主要来源: Skild AI, Introducing S1: In-Context Learning for Robotics, 2026-08。

资料边界: 官方首篇文章没有公开 S1 的参数规模、视觉/动作 backbone、上下文长度、动作表示、控制频率、训练损失、机器人型号或权重。本文的“输入—上下文—动作”结构是根据官方描述整理的功能架构,不是官方网络层图;所有结果均为 Skild 内部评测,尚不能独立复现。

相关页面: Dyna 部署飞轮解释模型进入生产现场后的数据、评估和运维闭环;Helix展示语言条件、双时间尺度 VLA 的另一种路线。


1. 一张图看懂 S1#

S1 把“任务是什么”从语言字符串换成了一段视频。视频不需要与执行现场、相机视角或机器人 embodiment 完全相同,因此模型不能逐像素或逐关节照抄,而必须抽取示范背后的功能关系。

flowchart LR subgraph Prompt["任务提示 · 一段示范视频"] DEMO["人类或机器人示范<br/>步骤 · 顺序 · 偏好 · 目标"] end subgraph Context["S1 · 上下文推断"] INTENT["任务意图<br/>最终要达到什么状态"] CORR["功能对应<br/>示范物体 ↔ 当前物体<br/>示范身体 ↔ 机器人身体"] PROGRESS["进度跟踪<br/>当前处于哪一步"] PLAN["动作组织与恢复<br/>下一步该做什么"] INTENT --> CORR --> PROGRESS --> PLAN end subgraph Runtime["当前机器人现场"] OBS["实时视觉 + 机器人状态"] ACT["机器人动作"] WORLD["环境变化 / 执行结果"] OBS --> ACT --> WORLD --> OBS end DEMO --> INTENT OBS --> CORR PLAN --> ACT style Prompt fill:#e3f2fd,stroke:#2196F3 style Context fill:#f3e5f5,stroke:#9C27B0 style Runtime fill:#e8f5e9,stroke:#4CAF50

这里最关键的约束是:推理时模型权重不更新。不同任务使用同一组权重,变化的是放进上下文的视频提示。


2. 它与普通语言 VLA 有什么不同#

语言适合表达目标类别和简单命令,例如“把杯子递给我”;但面对“如何打一个结”“以什么手法翻煎饼”或一串此前从未组合过的步骤,语言往往太粗。示范视频同时给出物体关系、动作风格、执行顺序和终止条件。

路线 任务条件 新任务如何适配 优势 主要限制
语言条件 VLA 一句语言指令 依靠预训练技能,必要时后训练 提示紧凑,适合已知原子技能 很难精确描述新动作和新组合
任务专属策略 固定任务 ID 或单一数据集 为新任务采集数据并微调 充分数据下成功率可以很高 每个任务都产生采集、训练和验证成本
S1 式 ICL 一段示范视频 推理时从上下文学习,不改权重 显式展示动作模式、步骤和偏好 需要理解跨场景、跨视角和跨身体对应关系
flowchart TB NEW["出现一个新任务"] --> ROUTE{"如何告诉机器人?"} ROUTE --> LANG["语言 VLA<br/>描述任务"] LANG --> KNOWN{"预训练中已有<br/>足够接近的技能?"} KNOWN -->|是| ZERO["直接执行"] KNOWN -->|否| FT["收集轨迹 + 后训练"] ROUTE --> VIDEO["S1 式 ICL<br/>录制一次示范"] VIDEO --> CONTEXT["示范进入上下文"] CONTEXT --> EXEC["同一组权重直接执行"] style FT fill:#ffebee,stroke:#E57373 style EXEC fill:#e8f5e9,stroke:#4CAF50 style CONTEXT fill:#f3e5f5,stroke:#9C27B0

这并不意味着视频永远优于语言。原子任务、训练分布内任务和容易命名的目标,语言提示通常更便宜;S1 的价值主要出现在动作本身难以描述、执行模式有歧义,或者任务由许多步骤组成的时候。


3. 外循环与内循环:为什么它属于元学习#

S1 的训练可以用 meta-learning 的两层结构理解:

flowchart TB subgraph Outer["外循环 · 预训练"] EP1["示范 d"] EP2["执行观测 o₁…oₜ"] EP3["监督动作 aₜ"] EP1 & EP2 --> POLICY["共享策略 πθ"] POLICY --> PRED["预测动作 âₜ"] EP3 --> LOSS["训练误差"] PRED --> LOSS LOSS -.->|"更新 θ"| POLICY end subgraph Inner["内循环 · 新任务推理"] NEWDEMO["一段未见任务示范 d*"] NEWOBS["当前现场观测 o*₁…o*ₜ"] NEWDEMO & NEWOBS --> FIXED["同一个 πθ<br/>θ 保持不变"] FIXED --> NEWACT["当前机器人动作 a*ₜ"] end POLICY --> FIXED style Outer fill:#e3f2fd,stroke:#2196F3 style Inner fill:#e8f5e9,stroke:#4CAF50

用抽象概率关系表示,它希望学习:

$$ a_t \sim \pi_\theta\!\left(a_t \mid o_{\le t}, d\right) $$

其中 $d$ 是任务示范视频,$o_{\le t}$ 是执行到当前时刻的观测。新任务到来时改变的是 $d$,而不是参数 $\theta$:

$$ \theta_{\text{after prompt}} = \theta_{\text{before prompt}} $$

这两个式子只是对官方范式的抽象,不代表 Skild 已经公开了真实损失或动作分布实现。


4. 为什么跨场景与跨 embodiment 很难#

如果示范来自另一个房间、相机视角或人类身体,机器人不能复现示范中的绝对像素轨迹。它需要把表面差异压缩为“哪些对象承担相同功能、步骤是否完成、当前身体怎样实现同一效果”。

graph LR subgraph DemoWorld["示范世界"] HV["第一人称视频"] HH["人手 / 另一种机器人"] HO["示范中的杯子、滤纸、工具"] HS["示范步骤与结果"] end subgraph Bridge["必须学习的对应关系"] AFF["功能 / affordance"] GOAL["目标状态"] ORDER["步骤依赖"] BODY["身体可执行映射"] end subgraph RobotWorld["执行世界"] RV["机器人相机"] RH["当前机械臂 / 夹爪"] RO["位置或外观不同的对象"] RA["可执行动作"] end HV & HH & HO & HS --> Bridge Bridge --> RV & RH & RO & RA style DemoWorld fill:#fff3e0,stroke:#FF9800 style Bridge fill:#f3e5f5,stroke:#9C27B0 style RobotWorld fill:#e8f5e9,stroke:#4CAF50

官方描述明确要求策略隐式学习三件事:

  1. 示范者意图:不是复刻每一个偶然动作,而是完成示范表达的任务
  2. 功能对应关系:外观和位置变化后,仍找到承担相同作用的对象和动作
  3. 任务进度:长程执行时知道已经完成什么、下一步是什么

“示范纠错”是这种目标理解的一个迹象:官方展示中,人类示范者提前掉落鸡蛋,S1 没有照抄失误,而是用更受控的动作完成对应步骤。但这仍是定性案例,不能据此断言模型拥有一般性的因果理解。


5. 数据引擎:四类数据为什么必须混合#

Skild 用三个维度衡量机器人数据:

没有一种来源同时占优,因此 S1 混合扩展机器人遥操作、UMI、第一人称视频和仿真。

数据来源 硬件接近度 多样性 可扩展性 在体系中的作用
机器人遥操作 提供真实动作和硬件动力学监督
UMI 连接人类操作多样性与机器人可执行表示
第一人称视频 扩展任务、场景和长程行为覆盖
仿真 廉价扩展身体、环境与可控变化
flowchart TB TELE["机器人遥操作<br/>最贴近硬件"] UMI["UMI<br/>三项居中"] EGO["第一人称视频<br/>任务多样、容易扩展"] SIM["仿真<br/>便宜、可控、可扩展"] TELE --> MIX["统一的 episodic<br/>上下文训练混合"] UMI --> MIX EGO --> MIX SIM --> MIX MIX --> PRESSURE["同一任务可跨场景、视角和身体出现"] PRESSURE --> LEARN["迫使策略利用上下文<br/>而不是记住任务 ID"] LEARN --> ICL["形成测试时 ICL 能力"] style TELE fill:#e3f2fd,stroke:#2196F3 style UMI fill:#fff3e0,stroke:#FF9800 style EGO fill:#f3e5f5,stroke:#9C27B0 style SIM fill:#e8f5e9,stroke:#4CAF50 style ICL fill:#fff9c4,stroke:#FFC107

这里的核心不是简单把四种数据拼接,而是让训练集具有足够的任务歧义:只看当前场景无法唯一确定下一动作,模型必须查看上下文示范才能解除歧义。官方没有公开不同数据的比例、统一表示方式或跨 embodiment 对齐方法。


6. S1 重点评估的两个轴#

Skild 认为,仅展示短时、训练分布内的 pick-and-place 不能充分证明 ICL。评估至少需要同时区分:

  1. 任务或技能在预训练中是否出现
  2. 任务是短时原子动作,还是需要组合、记忆和恢复的长程过程
quadrantChart title S1 所强调的 ICL 评估空间 x-axis 训练分布内 --> 训练时未见 y-axis 短时原子技能 --> 长程多步骤任务 quadrant-1 最强 ICL 证据 quadrant-2 已知技能的新组合 quadrant-3 常规 VLA 擅长区 quadrant-4 新原子技能 "常规 pick-and-place": [0.22, 0.20] "陌生原子动作": [0.80, 0.30] "已知技能重排": [0.38, 0.76] "盆栽 / 煎饼 / 咖啡 / 组装": [0.86, 0.88]

官方展示的四个训练时未见任务是:

任务最长约十分钟。长时程不只是“动作更多”,还会同时放大几个问题:

flowchart LR H["任务时长增加"] --> C1["步骤组合数量增加"] H --> C2["必须持续追踪进度"] H --> C3["误差累积概率上升"] H --> C4["需要从中间失败恢复"] C1 & C2 & C3 & C4 --> E["一次短任务成功率<br/>不再足以预测整体能力"] style H fill:#e3f2fd,stroke:#2196F3 style E fill:#ffebee,stroke:#E57373

7. 从示范到执行:11 分钟意味着什么#

盆栽实验给出了一个具体时间线:录制一段第一人称人类示范后,机器人在 11 分钟内开始自主执行。这里的 11 分钟是“示范录完到开始执行”,不是完成整个盆栽任务的时长。

timeline title 盆栽任务设置时间线 20 时 54 分 : 材料到达办公室 21 时 16 分 : 场景完成设置,开始录制 21 时 22 分 : 一次第一人称人类示范录制完成 21 时 27 分 : S1 在机器人硬件上开始自主执行

传统任务后训练通常是:

$$ T_{deploy}^{SFT} = T_{collect} + T_{train} + T_{validate} + T_{iterate} $$

S1 希望把首轮部署压缩为:

$$ T_{deploy}^{ICL} \approx T_{record} + T_{load\ context} + T_{run} $$

但是这个结果不能被理解为“11 分钟得到一个生产级策略”。场景搭建、安全验证、失败处理、吞吐、稳定性和硬件维护仍然存在;它只展示了首次任务适配不再必然经过模型权重更新


8. 官方量化结果怎样解读#

8.1 预训练规模:语言提示与视频上下文#

Skild 在 1,000 到 100,000 小时的受控数据规模上比较了 ICL 策略与语言条件 VLA;除 prompt embedding 外,两者使用相同数据、架构和算力。报告指标是所有任务的平均逐步骤成功率。

评测条件 语言 VLA S1 式 ICL 读法
已见任务,1k 小时 53% 43% 小数据时,紧凑语言条件反而更容易学习
已见任务,扩大到 100k 小时 未披露精确终点 96% ICL 随数据规模提升并反超
未见任务,100k 小时 9% 66% 官方概括为约 7×,差距集中在新技能和新组合
graph LR subgraph Small["1k 小时 · 已见任务"] L1["语言 VLA<br/>53%"] I1["ICL<br/>43%"] end SCALE["训练数据扩大<br/>1k → 100k 小时"] subgraph Large["100k 小时 · 未见任务"] L2["语言 VLA<br/>9%"] I2["ICL<br/>66%"] end L1 --> SCALE --> L2 I1 --> SCALE --> I2 style L1 fill:#e3f2fd,stroke:#2196F3 style L2 fill:#e3f2fd,stroke:#2196F3 style I1 fill:#f3e5f5,stroke:#9C27B0 style I2 fill:#e8f5e9,stroke:#4CAF50

这些数字不能直接横向比较其他论文:任务集、成功标准和数据都不是公共 benchmark,而且长 rollout 中使用人工干预把失败步骤恢复后继续评后续步骤,以确保每一步都能被评分。

8.2 一次上下文示范约等于多少后训练数据#

在未见任务上,一次上下文示范的 S1 达到 66%;语言 VLA 经过任务后训练,大约需要 380 个 episode 才与它相交。对于超过四分钟的任务,这些数据需要约 50–100 小时遥操作。继续增加到 2,000 个 episode 后,后训练策略达到 86%,超过单示范 ICL。

flowchart LR ONE["1 个上下文示范"] --> ICL66["ICL · 66%<br/>不更新权重"] D380["约 380 个后训练 episode<br/>约 50–100 小时遥操作"] --> SFT66["SFT · 约 66%"] D2000["2,000 个后训练 episode"] --> SFT86["SFT · 86%"] ICL66 -.->|"大致相当"| SFT66 SFT66 -->|"继续采集与训练"| SFT86 style ONE fill:#f3e5f5,stroke:#9C27B0 style ICL66 fill:#e8f5e9,stroke:#4CAF50 style D380 fill:#fff3e0,stroke:#FF9800 style D2000 fill:#fff3e0,stroke:#FF9800

正确结论不是“一个 demo 永远胜过 SFT”,而是:ICL 显著降低了获得第一个可用策略的边际成本;当任务值得持续优化时,足够多的后训练数据仍能提高上限。


9. 鲁棒性、恢复与两种分布偏移#

S1 的部署条件可能同时远离两个参照物:训练数据和上下文示范。官方分别测试了这两个轴,并把扰动从 L1 增加到 L5。

等级 变化
L1 与训练分布或示范相同的物体和摆放
L2 所有物体随机平移 15 cm、旋转 30°
L3 所有物体随机平移 30 cm、旋转 45°
L4 换成功能相同但外观不同的物体,并加入约 15 cm 垂直位移
L5 重新摆放,使一半动作必须换另一只手执行
flowchart TB TRAIN["距离预训练分布"] --> T1["位置变化"] --> T2["等功能物体替换"] --> T3["执行计划 / 手臂发生变化"] PROMPT["距离上下文示范"] --> P1["位置变化"] --> P2["等功能物体替换"] --> P3["示范暗示的计划不再合适"] T3 --> HARD["真正困难点:<br/>不只是感知变化,而是需要新运动方案"] P3 --> HARD style TRAIN fill:#e3f2fd,stroke:#2196F3 style PROMPT fill:#f3e5f5,stroke:#9C27B0 style HARD fill:#ffebee,stroke:#E57373

官方称,在 L5 下语言 VLA 的性能下降幅度最高可达 ICL 的三倍。文章还展示了推开物体、替换物体、改变照明、失败重试、使用具有相同用途的替代容器,以及根据当前状态省略不必要动作等案例。

这些现象支持“策略不是逐帧复刻示范”,但仍需注意:公开视频中的成功案例不能替代跨任务的失败率、置信区间和独立测试。


10. S1 与生产部署飞轮怎样连接#

S1 解决的是新任务冷启动,Dyna 文章解决的是生产系统长期运行。两者可以组成一条从客户示范到舰队持续学习的完整链路。

sequenceDiagram participant C as 客户 / 现场专家 participant S as S1 式 ICL 策略 participant R as 机器人 runtime participant O as 语义可观测系统 participant F as 训练数据飞轮 C->>S: 录制一个新任务示范 S->>R: 不微调,直接生成任务行为 loop 每个生产 episode R->>O: 视频、状态、动作、事件、硬件 telemetry O->>O: 标记步骤、结果、失败模式与置信度 end O->>F: 筛选新技能、长尾失败和分布偏移 F->>S: 回流下一轮通用预训练 F->>R: 改进工具、恢复逻辑和现场配置
层级 S1 主要减少的成本 仍然需要的系统
任务定义 把复杂 SOP 的一部分变成可观看的视频提示 权限、安全边界、任务验收标准
首次适配 减少专门采集和任务微调 现场标定、工具、动作约束与回退
日常运行 可用新示范快速纠正任务意图 episode 记录、故障归因、硬件维护
长期改进 新任务可以更快产生真实交互数据 数据筛选、预训练、回归测试与舰队发布

因此,ICL 不是部署飞轮的替代品。更准确的关系是:它让飞轮的入口从“先采集几百条训练轨迹”缩短为“先给一个示范开始运行”,再由真实生产数据决定哪些能力值得进入下一轮权重更新。


11. 公开材料仍没有回答的问题#

这些缺口意味着,目前最可靠的定位是:S1 展示了一种很有前景的视频提示机器人策略范式和一组内部 scaling 证据,而不是一套已经公开、可复现的网络实现。


12. 一句话总结#

S1 试图让机器人从“每个新任务都要重新训练”跨到“给我看一次,我就在当前身体和场景中尝试完成”:大规模、多来源 episodic 预训练是外循环,一段新示范是推理时内循环;它显著压缩首次任务适配成本,但生产可靠性、失败归因、硬件健康和持续训练仍需要完整的部署飞轮。


13. 参考资料#

  1. Skild AI. Introducing S1: In-Context Learning for Robotics. 2026-08.
  2. Brown et al. Language Models are Few-Shot Learners. NeurIPS 2020.
  3. Liu et al. LocoFormer: Generalist Locomotion via Long-context Adaptation. 2025.
  4. Jiang et al. RoboTTT: Context Scaling for Robot Policies. 2026.
  5. Oh et al. FACTR 2: Learning External Force Sensing for Commodity Robot Arms Improves Policy Learning. 2026.