机器人基础模型与“视频即提示词”:从写控制代码到给演示示范 机器人开发圈子里一直有一句玩笑话让机器人学会一个新任务比教会一个新人还难。新人你跟他讲一遍流程他能举一反三机器人要换一个动作往往意味着重新调参、重新标定、重新写状态机甚至重新部署一整套控制管线。这个痛点存在了几十年直到最近一两年才出现了真正像样的解法方向——把大语言模型那套提示词逻辑搬到物理世界。Skild S1 这类机器人基础模型的出现把这件事又往前推了一大步它不再要求你写复杂的控制代码而是直接给你一段视频告诉模型照着这个做。本文要聊的就是这个变化。我会拆解机器人基础模型的本质、解释视频即提示词背后的技术逻辑分析它解决了什么问题、还有哪些坑并给出开发者上手这类模型时可以参照的实践思路和示例。1. 这篇文章真正要解决的问题先说你最关心的几个问题Skild S1 是什么它和我有什么关系我是不是要立刻去学一套全新的机器人编程框架我的判断是Skild S1 代表的不是某一个产品的升级而是一整条技术路线的成熟信号。它真正的价值是把机器人任务的定义成本打了下来。过去定义一个机器人任务你要经历这些环节拆解动作序列写成状态机或行为树对每个动作设计运动轨迹或力控策略处理感知数据写物体识别、位姿估计的逻辑针对异常情况写一堆 if-else 兜底换一个物体、换一个环境以上步骤重新来一遍。这套流程不是不能工作而是太贵。一个典型的抓取任务从需求到稳定运行往往需要几周的工程师时间。而且每换一个场景成本几乎不递减。Skild S1 这类机器人基础模型想改变的是这件事把任务定义从写代码变成给视频。用户拍一段演示视频模型从中理解任务意图再输出机器人可执行的动作指令。这不是简单的模仿学习demo而是把 LLM 时代文本即提示词的范式平移到了机器人领域——文本提示词定义的是语言任务视频提示词定义的是物理任务。这篇文章适合三类读者做机器人算法或控制的工程师想了解基础模型会不会替代/辅助现有工作流做 AI 应用的开发者想理解 VLA视觉-语言-动作模型的能力边界和调用方式正在选技术路线的技术管理者想判断视频即提示词是概念炒作还是值得投入的方向。读完之后你会对机器人基础模型的适用边界、技术原理、工程落地路径有一个相对完整的判断不会被人拿新名词唬住。2. 机器人基础模型的本质从编程控制到演示学习要理解 Skild S1先要理解机器人基础模型这个词和前几年说的机器人操作系统智能机器人平台有什么本质区别。2.1 传统机器人控制一切都要显式定义传统机器人开发的典型流程是感知模块识别物体规划模块生成轨迹控制模块执行运动。每个模块都是工程师用代码显式定义的。状态机是这类系统的核心抽象——每个状态做什么、满足什么条件跳转到下一个状态全部写死。# 传统机器人控制状态机式思维示意 class PickAndPlaceStateMachine: def __init__(self): self.state IDLE def update(self, observation): if self.state IDLE: if self.detect_object(observation): self.state APPROACH elif self.state APPROACH: # 逐步靠近目标物体 ...这种方式的优点是可控、可解释、可调参。缺点是所有知识都是人工编码的模型本身没有理解只有执行。换个没见过的情况系统就失效。2.2 基础模型把世界知识压缩进参数大语言模型做对了一件事它没有手工编写每一条对话规则而是从海量文本中学习语言的统计规律。到了机器人领域研究者希望做同样的事情——从海量机器人交互数据中学习物理世界的规律得到一个什么动作在什么场景下合理的先验模型。这就是机器人基础模型的定义一个在大量异构机器人数据上预训练、能够理解视觉场景并生成动作决策的大规模模型。它不是为某个机械臂、某个任务定制的而是希望具备跨本体、跨任务的泛化能力。从材料看Skild S1 正是沿着这条路线走的以视觉和语言为输入以机器人动作为输出尝试在多种机器人形态和任务上形成通用能力。它的关键卖点不是又一个分拣模型而是一个模型可以适配多种机器人。2.3 为什么恰好是现在机器人基础模型之前做不起来不是算法思路不行而是数据不够、算力不够、交互反馈不够。文本数据可以爬取机器人交互数据只能靠真实或仿真环境采集成本高出几个数量级机器人的动作空间是连续的而且有物理约束生成一个看起来对的动作序列和生成一段看起来通顺的文字难度不在一个量级评估困难机器人任务成功与否通常只能靠真实物理实验判断。现在这些瓶颈没有被完全解决但已经松动。仿真平台的成熟让大规模数据采集成为可能VLA 模型的架构让视觉-语言-动作可以在一个模型中联合训练视频即提示词的交互方式则大幅降低了使用者表达任务的门槛。2.4 小结论机器人基础模型的本质是把机器人程序由工程师编写变成机器人行为由数据和模型决定。Skild S1 是这个方向上比较有代表性的落地探索。对工程师来说最直接的感受是你不再需要为每个新任务重新编写控制逻辑而是像用 LLM 一样给模型一个提示词只不过这个提示词是视频。3. 视频即提示词的核心逻辑与架构拆解视频即提示词这句话听起来很像营销话术但它背后其实有一套非常具体的工程逻辑。拆开来看它包含三个层次。3.1 三层含义第一层视频是任务描述。文本提示词告诉 LLM 你是一个翻译助手把下面这句话翻成英文视频提示词告诉机器人模型这是一个把红色方块放到蓝色杯子里的任务。视频包含了任务目标、操作对象、环境约束和大致动作风格信息密度远超一段文本描述。第二层视频是技能示范。模型不仅要理解要做什么还要理解具体怎么做。演示视频里包含了抓取的位姿、移动的轨迹、施加力的大小等细节。模型从视频中提取这些信息映射到具体机器人的动作空间。第三层视频是可交互的上下文。在 LLM 时代提示词不是一次性的你可以通过多轮对话逐步修正。机器人场景里用户可以拍摄一段当前环境的视频叠加一段目标状态的视频让模型理解从当前状态到目标状态的转换。这种多段视频组合的方式让任务定义更加灵活。3.2 架构层面的变化从技术架构上看支持视频即提示词的模型通常走的是 VLA 路线。VLA 是 Vision-Language-Action 的缩写即视觉-语言-动作模型。它的核心思路是不把感知、规划、控制拆成独立模块而是让一个模型直接从视觉和语言输入中预测动作输出。一个简化的 VLA 数据处理流程如下将视频按时间轴切帧每帧用视觉编码器提取特征将文本指令如果有用语言编码器编码两路特征融合后送入序列模型如 Transformer模型输出动作 token再解码为机器人的关节角度或末端位姿。Skild S1 这类模型在架构上大概率遵循类似的范式但会在预训练策略、数据混合比例、动作表征方式上做差异化。没有官方详细技术报告之前更稳妥的判断是它属于视频-语言-动作多模态路线而不是传统的感知规划控制分立路线。3.3 与文本提示词的类比维度LLM 的文本提示词机器人基础模型的视频提示词输入形式文本字符串视频帧序列 / 多视角视频编码方式Tokenizer 分词视觉编码器抽帧输出文本 token动作 token任务定义语言指令视觉演示修正方式多轮对话追加视频片段 / 文本指令主要挑战语义对齐视觉-动作对齐 物理约束这个类比很有用。它说明了一件事提示词工程的经验依然可以迁移。给 LLM 写提示词时你要描述清楚背景、目标、约束给机器人模型拍提示词时你同样要把环境、对象、动作边界拍清楚。模糊的输入必然导致模糊的输出。3.4 小结论视频即提示词不是把视频当输入那么简单而是把整个机器人任务定义范式从写代码切换到了给示范。这降低了使用门槛但同时也把问题转移到了数据质量和示范质量上——提示词写不好模型输出就好不了视频拍不好动作输出同样好不了。4. 开发者如何接触这类模型前置条件与工作流认知很多读者看到这里会问那我现在能不能直接上手 Skild S1坦白说截至写作时Skild S1 的公开技术细节和开放接口信息仍然有限具体版本、部署方式、支持的硬件平台需要以官方发布为准。本文不讨论某个不确定的 API而是聚焦于理解这一类模型需要具备的知识储备和工具链。即便如此你依然可以先完成三件事为这类模型做好准备。4.1 建立多模态数据的处理能力这类模型的核心输入是视频 文本 动作所以你要熟悉以下概念视频抽帧与特征提取常见工具如 OpenCV、FFmpeg模型侧常用 CLIP 或类似视觉编码器动作数据的表示关节角度、末端笛卡尔位姿、速度/力矩控制信号数据对齐视频帧与动作指令在时间轴上的同步。# 使用 FFmpeg 将一段演示视频按 10FPS 抽帧示意 ffmpeg -i demo.mp4 -vf fps10 frame_%04d.png这一段代码很简单但它代表了一个关键意识视频进入模型前要经过抽帧、缩放、归一化等预处理而不是把整个视频文件直接丢给模型。4.2 熟悉仿真环境与数据采集机器人基础模型的训练和验证高度依赖仿真环境。常见的开源工具包括MuJoCo多关节动力学仿真适合机械臂和足式机器人Isaac Sim / Isaac LabNVIDIA 出品的仿真平台支持大规模并行训练Gymnasium / robosuite强化学习和模仿学习的标准接口环境。如果你所在团队有实体机器人最好同时具备遥操作数据采集能力——通过示教器或遥操作设备录制人类演示数据这是视频即提示词任务中示范数据的来源。4.3 理解模型输入输出的标准范式从使用者角度来看一个 VLA 模型的 API 通常可以抽象为如下结构# 机器人基础模型 API 使用范式伪代码示意 # 注意这是通用抽象不是 Skild S1 的官方接口 class RobotFoundationModel: def __init__(self, model_path): self.model load_model(model_path) def predict_action( self, demo_video_path: str, # 提示词视频演示任务怎么做的视频 current_view: str, # 当前观察机器人现在看到什么 task_instruction: str, # 文本指令可选 ): frames extract_frames(demo_video_path) obs load_image(current_view) actions self.model.generate(frames, obs, task_instruction) return actions这套抽象可以帮你快速理解各家模型的差异点它们本质上都是输入视觉/语言输出动作序列区别在于输入怎么组织、动作怎么解码、支持哪些机器人本体。5. 一个最小示例用视频提示词驱动任务的思路现在进入可操作的部分。由于 Skild S1 的官方 SDK 尚未公开这里我用一个通用的 VLA 任务流程示例说明视频提示词从输入到动作输出的完整链路。你可以把这个示例当作理解原理的最小骨架将来接入具体产品时只需替换模型加载和推理部分。5.1 环境准备本示例使用 Python 3.10依赖以下库numpy数据处理opencv-python图像处理与视频读取torch模型推理框架若使用 PyTorch 生态。安装命令pip install numpy opencv-python torch5.2 数据准备整理视频提示词先建立一个标准的视频提示词目录结构demo_task/ ├── instructions.txt # 任务文本描述 ├── demo_video.mp4 # 演示视频人类或遥操作录制 └── workspace_note.md # 环境说明可选instructions.txt 内容示例task: 将桌上的红色马克杯放入右侧的蓝色托盘 constraints: - 抓取位置杯柄 - 释放高度托盘上方 2cm - 移动速度低速这一步很容易被忽略但非常重要。视频提示词并非唯一输入文本辅助信息可以帮助模型理解任务约束特别是那些视频中不容易体现的规则。5.3 核心代码视频特征提取与动作预测下面是一个整合了视频读取、特征提取和动作预测的最小示例。为了便于理解我用一个模拟的动作输出代替真实模型调用重点展示流程结构。# 文件路径vla_task_demo.py import cv2 import numpy as np class VideoPromptProcessor: 将视频提示词转换为模型输入特征 def __init__(self, frame_rate: int 5): self.frame_rate frame_rate def extract_frames(self, video_path: str): 抽取视频关键帧作为模型视觉输入 frames [] cap cv2.VideoCapture(video_path) idx 0 while True: ret, frame cap.read() if not ret: break if idx % self.frame_rate 0: # 统一缩放为 224x224这是大多数视觉编码器的标准输入尺寸 frame cv2.resize(frame, (224, 224)) frames.append(frame) idx 1 cap.release() return np.stack(frames) if frames else None class DummyVLA: 模拟的 VLA 模型——真实场景中替换为 Skild S1 等模型的推理接口 def __init__(self): self.action_dim 6 # 末端位姿位置 xyz 姿态 rpy def generate(self, video_features, instruction): 输入视频特征和文本指令输出动作序列。 真实模型中这里会经过 Transformer 解码器生成动作 token 本示例为了演示返回一组随机动作。 action_num len(video_features) # 形状[动作步数, 动作维度] actions np.random.randn(action_num, self.action_dim) * 0.1 return actions def main(): processor VideoPromptProcessor(frame_rate5) frames processor.extract_frames(demo_task/demo_video.mp4) if frames is None: raise RuntimeError(无法读取视频请检查 demo_video.mp4 是否存在) with open(demo_task/instructions.txt, r, encodingutf-8) as f: instruction f.read() model DummyVLA() actions model.generate(frames, instruction) print(f视频帧数: {len(frames)}) print(f动作序列步数: {len(actions)}) print(前 3 步动作向量真实模型输出为关节角/末端位姿的数值:) for i in range(3): print(fstep {i}: {actions[i]}) if __name__ __main__: main()5.4 关键逻辑说明这段代码虽然用的是模拟模型但流程是真实的extract_frames模拟了视频提示词进入模型前的预处理过程。真实系统中此处通常还会做光照归一化、数据增强、时序采样等操作DummyVLA.generate是模型推理的占位。真实场景中Skild S1 或同类模型会在这里接收多模态特征解码出具体的关节角度序列或末端执行器轨迹动作输出格式是[步数, 动作维度]的张量。对 6 轴机械臂来说动作维度通常为 6关节角或 7末端位姿 夹爪开合具体取决于模型设计。5.5 运行与验证运行命令python vla_task_demo.py预期输出视频帧数: 96 动作序列步数: 96 前 3 步动作向量真实模型输出为关节角/末端位姿的数值: step 0: [ 0.023 -0.041 0.012 0.003 -0.002 0.001] step 1: [-0.031 0.057 -0.029 0.011 -0.008 0.004] ...这个示例的意义不在于动作有多准确而在于让你理解整个数据流向视频文件 → 抽帧 → 特征 → 模型 → 动作序列。真实项目里最后一步还会接上运动规划器和底层控制器把动作序列转换成功率或位置指令发给机器人。6. 运行结果与效果验证判断模型是否真正学会了任务用视频提示词驱动机器人最大的工程难题不是跑通推理而是验证输出动作是否可靠。这个问题在 LLM 时代也存在——你很难判断一段文本回答够不够好但在机器人领域判断标准更客观但也更残酷动作执行失败就是失败没有模糊空间。6.1 离线验证先不要上真机强烈建议在任何真实硬件上执行之前先在仿真环境里做离线验证。步骤是准备一段测试视频内容与训练演示不同但任务相同让模型输出动作序列在仿真环境中回放动作序列观察是否完成任务记录成功率和失败原因。# 仿真回放验证示意将模型输出动作序列逐帧应用到仿真环境 # 伪代码以真实仿真环境 API 为准 def replay_in_simulation(env, actions): obs env.reset() for action in actions: obs, reward, done, info env.step(action) if done: break return info.get(task_success, False)注意这一步的失败率通常比预期高。原因很可能是视频提示词与当前仿真环境的视觉差异过大而不是模型本身有 bug。6.2 在线验证从单任务开始如果仿真验证通过再上真机。上真机时要有安全预案急停按钮、限位保护、低速模式。建议按以下顺序验证验证阶段测试内容通过标准静态测试模型是否输出合理动作指令无越界动作、无碰撞趋势低速回放执行动作序列机器人到达目标位置附近单次任务完整执行一次抓取/放置任务成功重复测试同一任务执行 10 次成功率 80%如果重复测试成功率不高先排查环境一致性光源、物体位置、背景变化都会影响视觉模型的表现。6.3 失败时的排查顺序第一步看日志模型有没有正常输出动作序列还是在推理阶段就报错第二步看视觉输入把模型输入的帧保存下来确认机器人摄像头看到的画面和你拍视频时一致第三步看动作执行动作序列是否被底层控制器正确执行是否存在关节限位、奇异点等问题第四步看任务定义视频提示词是否清晰表达了任务目标有没有歧义。绝大部分模型不 work的问题最后都出在数据不一致或任务定义不清晰上而不是模型本身。7. 常见问题与误区关于机器人基础模型的几个冷静判断任何新技术都会伴随大量噪音。这里整理几个我看到的关于 Skild S1 和视频即提示词的常见误区也是很多开发者上手时真正会踩的坑。7.1 误区一视频即提示词 完全不需要编程这是最大的误解。视频提示词降低的是任务语义定义的成本但没有消灭工程成本。你依然需要做数据处理、模型部署、机器人适配、安全控制、错误恢复。类比一下LLM 让写邮件变简单了但构建一套基于 LLM 的业务系统仍然需要工程师。更准确的说法是编程的重心从写控制逻辑转移到了写数据管道和评估系统。这种转变对部分工程师是解放对另一部分工程师则是新的学习压力。7.2 误区二基础模型应该能处理所有机器人从材料看Skild S1 的定位是通用机器人基础模型但通用是相对的。它可能支持多种机械臂但每种机械臂的动作空间、动力学特性、末端执行器都不一样。模型输出的是通用动作表征最终仍需要适配层把它映射到具体机器人。实际项目中我的建议是从单一种类、单一任务的窄场景开始验证。先把一个任务做到 90% 成功率再考虑扩展任务域而不是一上来就期望一个模型搞定所有事情。7.3 误区三模型学到了物理规律VLA 模型学到的是视觉-动作之间的统计相关性不是物理学意义上的因果模型。它可能在训练分布内表现得像理解了物理规律遇到没见过的物体形状、材质、摩擦系数组合时仍然可能给出不合理的动作。这提醒我们两件事第一训练数据的分布覆盖就是模型的能力边界第二在关键安全场景中不能完全依赖模型的物理直觉。7.4 常见问题排查表问题现象可能原因排查方式解决方案模型输出的动作乱跳视频帧率过高/过低时序信息丢失检查抽帧配置和帧率调整采样帧率增加时序编码任务成功率不稳定拍摄视频与部署环境视觉差异大对比训练/部署图像分布增加域随机化统一光照和背景模型推理速度慢模型参数量大未做量化查看推理耗时和显存占用使用 TensorRT / ONNX Runtime 加速动作超出关节范围动作解码缺少限制检查模型输出层和后处理增加关节限位钳制和安全过滤器特定物体无法识别训练数据缺少该类物体检查模型在目标物体上的表现补充数据做微调或加视觉检索模块7.5 一个容易忽略的问题视频质量很多人以为视频拍得越清晰越好其实不一定。对机器人基础模型来说视频的信息完整性比画质更重要要拍到完整的任务过程、清晰的物体位置关系、稳定的动作演示。大量快速剪切或镜头晃动的视频反而会让模型学到错误的任务表达。拍视频提示词的几条经验镜头固定尽量避免视角变换明确展示物体的初始位置和操作后的目标位置动作速度放慢让关键步骤的时序关系清晰一个视频只演示一个任务不要混入无关动作。8. 最佳实践与工程建议把这套技术用起来的正确姿势如果你决定在团队或项目中引入机器人基础模型下面这些建议来自对同类项目工程化路径的观察值得在动手之前先过一遍。8.1 从仿真到真机的渐进路径不要直接从真机开始。推荐顺序是在仿真环境中验证模型能力边界用廉价机械臂做初步真机验证确认效果后再迁移到目标生产硬件。每一步都要有明确的通过标准不要抱着先跑起来再说的心态。机器人项目的失败成本远高于软件项目一次碰撞可能就带来数千元的维修费用。8.2 数据资产比模型本身更值钱这一条要特别强调。对机器人基础模型来说数据是最大的护城河。Skild S1 这类模型之所以受关注本质上是因为它的训练数据规模和多样性。对使用方来说你在真实场景中采集的演示数据同样是不可替代的资产。建议从第一天就建立数据管理规范统一视频采集格式和分辨率记录任务标注、环境信息、机器人型号区分成功演示和失败演示失败数据同样有训练价值建立数据版本管理方便回溯和复现。8.3 安全边界必须用代码强制视频提示词模型的输出天然存在不确定性。因此在部署到真实机器人之前必须有一层独立的代码安全过滤不能只依赖模型自身的自律。# 安全过滤器示例示意 def safety_filter(action, joint_limits, velocity_limit): 对模型输出动作做安全校验越界直接拦截 if not all(joint_limits[i][0] action[i] joint_limits[i][1] for i in range(len(action))): return False, joint out of range if np.max(np.abs(action)) velocity_limit: return False, velocity too high return True, ok这层过滤逻辑必须独立于模型推理最好由另一套代码库维护且经过测试覆盖。安全不是模型能力的一部分而是系统工程的一部分。8.4 评估体系要提前设计做 LLM 应用时大家常常事后才补评估。机器人领域不能这样因为每次真机评估都是有成本的。建议在项目启动时就定义任务成功率标准任务下完成的比例泛化成功率改变物体位置、颜色、环境后的成功率安全指标越界动作、碰撞事件次数推理延迟从输入到动作输出的耗时。没有评估指标就没有优化方向。这一步省不得。8.5 团队技能组合要有意识地调整引入机器人基础模型后团队的技能需求会发生变化。传统机器人团队的核心技能是控制算法和运动规划新范式下数据工程、模型微调、提示词设计视频拍摄和任务定义、评估工程的重要性大幅上升。如果你正在搭团队建议至少配备一名熟悉 VLA 模型或多模态模型的算法工程师一名有数据工程经验的工程师一名熟悉机器人底层控制和安全系统的工程师。三个人可以组成一个最小的探索小组。9. 总结与后续学习方向回到开头的问题Skild S1 和视频即提示词值不值得关注我的答案很明确值得。它不是一个孤立的模型发布而是机器人技术栈从手工编码控制逻辑向数据驱动任务理解转变的一个标志性节点。真正重要的不是 Skild S1 本身能做到什么程度而是它验证了一个方向机器人任务的表达方式可以像 LLM 的提示词一样简单直接。这会让更多没有机器人背景的开发者有机会参与机器人应用的构建也会倒逼整个行业重新思考机器人软件栈的设计。如果你想深入这个方向我建议按以下路线继续学习先掌握 VLA 模型的基本架构理解视觉、语言、动作三模态如何对齐学习模仿学习和数据采集理解演示数据为什么是这类模型的基础动手跑一个开源的机器人仿真环境亲身体验视频输入 → 动作输出的完整链路关注 Skild S1 和同类竞品的官方文档它们开放接口后第一时间上手验证在你的实际项目里选一个窄场景开始试验用真实数据检验模型的泛化边界。机器人基础模型还很年轻现在入场的人有机会定义它的最佳实践。但请始终记住一点模型负责理解任务工程师负责理解边界。把边界守住新范式才能真正落地。