阅读,与值得关注的内容Readance

浙大等提出EmbodiedSkills,用闭环AgentLoop组织VLA长任务执行

图片

高层模型负责决定下一步做什么,低层 VLA 负责完成当前子任务,运行时负责检查,验证模块负责确认动作是否真的产生了进展。


视觉-语言-动作模型正在成为机器人控制的重要基础模型。给定相机画面和自然语言指令,VLA 可以直接预测机械臂动作,完成抓取、移动、放置等操作。模型的动作能力不断提高,长任务执行却依然容易出错。


一个完整任务往往包含多个连续阶段。机器人需要先理解场景,再确定当前子目标,执行一段动作,检查动作结果,然后决定继续、推进还是重新规划。


动作只完成一半时,系统需要保留当前子目标;视觉证据过期时,系统需要重新获取观察。


EmbodiedSkills 研究的是 VLA 系统层的长任务执行问题。




论文题目:

EmbodiedSkills: A Unified Framework for Orchestrating, Training, and Deploying VLA Agents

作者机构:

浙江大学、南京航空航天大学、Cornell University、新加坡国立大学、宇泛智能(UNIUBI AI)、云深处科技(DEEP Robotics)

论文链接:

https://arxiv.org/abs/2609.01281

代码链接:

https://github.com/DCDmllm/EmbodiedSkills

相关基准:

RoboTwin 2.0(https://arxiv.org/abs/2506.18088)

RMBench(https://arxiv.org/abs/2603.01229)

OpenPI(https://github.com/Physical-Intelligence/openpi)


浙江大学等单位将高层视觉语言模型、低层 VLA 策略和机器人环境放入一个闭环 AgentLoop。每次动作调用都经过运行时检查,动作结束后重新获取证据,后续决策继续使用更新后的状态。


论文将长任务执行概括为一个系统性问题:动作生成之外,系统还需要管理子目标、执行边界和物理反馈。EmbodiedSkills 将每次动作放入可回溯的执行链路,并在动作前后分别检查条件和读取结果。



为什么 VLA 需要一层 AgentLoop?

在短时操作中,动作预测可以写成“观察加指令,输出动作”。


一旦任务由多个动作组成,模型还要回答几个连续问题:现在正在完成哪个目标?上一步动作是否已经完成?动作是否满足执行条件?下一步应该继续当前尝试,还是切换到新的子目标?


以“把容器放到盘子上”为例,机器人至少要经历目标识别、接近、抓取、移动和放置。抓取不稳定时,移动动作没有可靠起点;容器已经移动到盘子附近但姿态不对时,任务也不能被判定为完成。


真实环境中的偏差会让问题更复杂。机械臂可能遮挡相机,动作块可能在接触阶段提前停止,物体可能只移动了一部分,上一轮观察也可能因为场景变化而失效。


下一轮决策需要同时参考当前画面、原始计划、活动子目标和此前的执行记录。


这也是 VLA model 与 VLA agent 的区别。VLA model 主要学习观察到动作的映射,VLA agent 还需要管理任务阶段、动作边界、执行结果和失败后的恢复。



EmbodiedSkills 的整体框架

EmbodiedSkills 将每次模型输出视为一项待执行的操作提议。模型提出下一步要做什么,运行时检查这项提议是否能在当前状态下落地。


检查内容包括输入是否齐全、观察是否新鲜、活动子目标是否仍然有效、机器人和动作后端是否就绪,以及当前阶段是否允许调用这项技能。提议通过以后,低层 VLA 才会生成动作块。


动作块执行结束以后,环境返回新的视觉证据和执行结果。系统把这些信息写回任务状态,再交给下一轮决策。


局部目标已经完成时,AgentLoop 推进到下一个目标;局部目标仍未完成时,保留当前目标并继续尝试;证据不足时重新观察;计划失效时重新规划或恢复。


在这个过程中,模型输出先作为待验证的操作提议进入运行时,经过技能契约和前置条件检查后才会执行。被拒绝的提议会连同原因和证据写入轨迹。



一次 Skill Call 如何进入执行链

每个 embodied skill 都包含输入、输出、前置条件、执行过程、状态更新和失败证据。不同技能可以使用不同的模型或确定性程序,但它们通过同一套接口加入 AgentLoop。


以“执行当前子目标”为例,高层模型给出子目标和动作预算,运行时先确认任务状态和观察满足要求,低层 VLA 再生成有限长度的动作块。动作结束后,系统采集新的画面,产生执行报告和局部验证结果。


验证结果会决定下一步路径。当前动作只完成了部分目标,系统继续使用原子目标;当前目标已经完成,系统切换到后续目标;画面无法支持判断,系统请求新的观察;原计划已经被环境状态改变,系统重新建立执行上下文。


观察、计划、动作和验证结果还带有来源和新鲜度信息。当关键证据发生变化时,依赖它的旧结果会被标记为需要刷新,仍然有效的上下文可以继续使用。



六个阶段如何运行

EmbodiedSkills 使用 Observe、Plan、Preflight、Execute、Verify 和 Recover 六个阶段描述一次任务。


它们构成 AgentLoop 的主要语义,但运行时可以根据当前状态回到前面的阶段。

Observe 阶段只使用部署时可见的图像和机器人状态,模拟器隐藏状态不作为策略输入。Plan 阶段保留完整任务计划,同时明确当前要完成的子目标。Preflight 阶段在物理动作发出前检查缺失输入、过期观察和非法阶段转移。


Execute 阶段使用动作预算限制单次尝试的长度,一个子目标可以对应多个动作块。


Verify 阶段读取动作之后的场景变化,控制继续、推进、重新观察或重新规划。


Recover 处理当前尝试无法继续的情况,恢复后的操作重新经过执行前检查。


六个阶段组成可回溯的执行循环。一次动作结束后,系统可以继续当前子目标,也可以推进到下一个目标;新的证据还可以触发重新观察或计划重建。



历史上下文怎样保存

EmbodiedSkills 使用有界的部署一致上下文管理历史记录:完整计划和活动子目标始终保留,最近的决策、技能结果、执行报告和错误证据按顺序加入上下文,较早记录按照固定预算压缩或删除。


历史记录来自实际 AgentLoop 轨迹,包含阶段、已调用技能、返回结果和状态变化。训练样本沿用同一套上下文边界,模型在训练和正式运行时接收相同类型的信息。


如果任务执行到一半仍未完成,当前子目标、此前动作块和验证结果会继续留在上下文中。下一轮模型可以据此选择继续执行,不需要重新猜测已经完成的阶段。



Qwen3-VL、π₀.₅ 和训练数据

高层 Qwen3-VL 组件负责理解任务、生成计划、选择子目标,并根据执行结果决定继续、推进、重新观察或恢复。它的输入是结构化任务状态和视觉证据,输出是下一项待执行操作。


低层 OpenPI/π₀.₅ 负责完成当前子目标。它接收当前图像、机器人状态、自然语言子任务和动作预算,输出有限长度的动作块。低层策略不需要在每个动作块中重新解释整项长任务,当前阶段的语义由子目标提供。


训练数据同样按上述接口组织。高层样本包含任务指令、当前图像、阶段、完整计划、活动子目标、近期历史和上一轮执行结果。低层样本使用子任务级专家轨迹,将观察、机器人状态、简洁子任务和对应动作绑定在一起。


一个子任务可能需要一个或多个动作块,实际数量由动作后的进展决定。动作前的上下文、动作后的观察、运行时拒绝信息和局部完成结果可以从同一条结构化轨迹中提取,供规划器、动作策略、验证器和恢复模块分别使用。



RoboTwin 2.0:50 类任务平均 86.20%

论文在 RoboTwin 2.0 的 50 类任务上评测任务适配后的低层 π₀.₅。每类任务使用 100 个 episode,最终成功只按照 RoboTwin 提供的环境终局评测器计算。


EmbodiedSkills 的平均成功率为 86.20%,LingBot-VA 报告的 π₀.₅ 参考结果为 82.74%,提升 3.46 个百分点。

任务级结果中,EmbodiedSkills 在 50 个任务中的 39 个超过参考 π₀.₅,1 个持平,10 个略低。


Hanging Mug、Blocks Ranking Size、Open Microwave、Move Can Pot 和 Move Stapler Pad 的提升较大,这些任务包含较长动作链或更敏感的接触过程。


86.20% 对应任务适配低层 VLA 的执行性能;高层 AgentLoop 的验证、历史和恢复机制由独立消融实验评估。



LIBERO:Long 套件提升更明显

在 LIBERO-Spatial、LIBERO-Object、LIBERO-Goal 和 LIBERO-Long 四套评测上,EmbodiedSkills 的平均成功率为 97.40%,OpenPI 官方参考结果为 96.85%。

Spatial、Object 和 Goal 的参考结果已经接近饱和,绝对提升较小。LIBERO-Long 从 92.4% 提升到 93.6%,是四套评测中最大的提升。


这个结果显示,子目标和动作边界在更长的任务序列中更容易体现作用。



RMBench:记忆依赖任务仍然困难

RMBench 的任务要求系统保留此前的交互信息。下一步动作可能取决于已经尝试过哪些方块排列、哪块电池已经失败,或者某个按钮已经按过几次。当前画面本身不一定包含完成决策所需的全部信息。


在 Battery Try、Blocks Ranking Try、Cover Blocks 和 Press Button 四个任务上,EmbodiedSkills 的结果如下:

四个任务的平均成功率为 12.5%。统一接口可以承载带历史的子任务调用,但长期尝试记录、状态记忆和依赖历史的高层决策仍然构成主要难点。



消融实验:去掉 Verify 会发生什么?

为了分析 AgentLoop 的作用,论文在相同的 50 类 RoboTwin 2.0 任务上进行了三组消融,每类任务 100 个 episode,共 5,000 个 episode。所有配置使用相同的任务、初始条件、低层策略和终局评测器。

去掉 Verify 后,系统仍然保留完整动作预算,却无法根据真实进度调整动作次数。动作尚未完成时,系统可能提前进入下一阶段;动作已经完成时,系统可能继续发出无效动作,后续阶段会继承前面的错误状态。


去掉语义子任务后,低层策略每个动作块都要从完整指令中重新判断当前阶段和目标,平均成功率降到 34.4%。


每个子任务只执行一个动作块时,结果为 19.5%,说明相同语义目标所需的动作长度会随初始状态和接触过程变化,单一固定块无法覆盖所有情况。


三组结果对应三项不同作用:子任务明确当前目标,动作预算提供完成目标的执行空间,Verify 根据真实进度决定下一步如何走。


三个执行样本

论文展示了三个随机选取的 RoboTwin 2.0 成功执行样本,分别涉及物体重新摆正、多方块堆叠和开关交互。


在物体摆正任务中,系统先获取初始场景,再围绕目标物体生成子任务。动作块结束后,新的画面和执行报告写回上下文,后续动作使用更新后的状态。


在多方块堆叠任务中,物体位置随着每次放置发生变化。高层计划保留整体顺序,低层 VLA 只接收当前局部目标,验证结果决定是否进入下一次放置。


在开关交互任务中,动作结果与接触状态相关。系统根据新观察判断开关是否发生改变,动作输出与状态验证分别记录。


这篇工作在回答什么问题?

VLA 模型可以根据图像和语言生成动作,长任务执行还需要一个能够管理中间状态的系统。


EmbodiedSkills 把一次动作调用放回闭环 AgentLoop:先观察,再规划;动作发出前检查条件;动作完成后读取结果;子目标未完成时继续,计划失效时恢复。


RoboTwin 2.0 的 86.20%、LIBERO 的 97.40% 和 RMBench 的 12.5% 展示了同一套接口在不同任务类型下的表现。动作后端在常规操作任务上具有较强能力,记忆依赖任务仍需要更稳定的历史建模和高层决策。


EmbodiedSkills 将 VLA 动作预测接入一条可检查、可验证、可继续和可恢复的执行链路。


高层模型决定下一步操作,低层策略完成当前子目标,运行时确认操作条件,验证模块读取真实进展,恢复流程处理无法继续的尝试。


对于需要连续操作多个物体、跨越多个阶段的机器人任务,动作模型需要与这层执行组织共同工作,才能持续利用环境反馈推进任务。



更多阅读







·


前往微信阅读全文

内容来自公众号,可前往微信查看原文。

查看作者的更多文章 →