ASPIRE:面向机器人的智体与技能发现

26年6月来自Nvidia、密歇根大学、UIUC、UC Berkeley和CMU的论文"ASPIRE: Agentic /Skills Discovery for Robotics"。

传统的机器人编程极具挑战性:它需要协调多模态感知、管理复杂的物理接触动力学,并应对多样的环境配置及执行失败情况。本文推出 ASPIRE(基于迭代机器人探索的智体技能编程),这是一个面向机器人的持续学习系统;它采用"代码即策略"(CaP)的范式,自主编写并优化机器人控制程序,同时将经验积累为可复用的技能库。ASPIRE 能够自动发现那些跨越多种任务、模拟与现实环境以及不同物理具身(embodiments)的可复用技能。ASPIRE不依赖于固定的人工设计流程,而是运行在一个开放式的学习循环中,该循环包含三个关键组件:(1) 一个闭环机器人执行引擎,它提供细粒度的多模态轨迹信息(如感知叠加、抓取候选、运动轨迹和碰撞反馈),使智体能够自主诊断故障、生成修复方案并验证结果;(2) 一个持续扩展的技能库,将经过验证的修复方案提炼为可复用、可迁移的机器人知识;以及 (3) 一个进化搜索过程,用于生成多样化的任务序列和控制程序,并对其进行系统性调试,从而实现超越单一轨迹优化的探索。随着 ASPIRE 接触的任务增多,其不断扩充的技能库使其适应速度日益加快。因此,ASPIRE 在受扰动操作任务(LIBERO-Pro)、Robosuite 双手交接任务以及长程家庭任务(BEHAVIOR-1K)上的表现分别超越了以往方法 77%、72% 和 32%。积累的技能库还实现了强大的零样本泛化能力:在具有代表性的未见过长程任务(LIBERO-Pro Long)中,ASPIRE达到了 31% 的成功率,远超以往方法 4% 的成功率------尽管后者严重依赖测试时的推理和重试机制。最后,在模拟环境中发现的技能为"从模拟-到-现实"(sim-to-real)的迁移提供了初步证据;尽管存在物理具身和机器人 API 的差异,这些技能仍能显著降低现实机器人编程的工作量。


软件工程智体领域的最新进展表明,语言模型能够自主检查执行轨迹、定位故障、修改实现,并通过与执行环境的反复交互实现自我改进 Anthropic, 2025, OpenAI, 2025, anomalyco, 2025, Wang et al., 2025, Yang et al., 2024。在机器人领域,这一范式催生"代码即策略"(code-as-policy)系统,该类系统将感知模块、规划 API 和控制原语组合成可执行的机器人程序 Liang et al., 2023, Singh et al., 2023, Ahn et al., 2022, Huang et al., 2023, Mu et al., 2024, Fu et al., 2026。由于机器人行为以程序形式显式表达,原则上可以通过交互反馈对其进行检查、编辑、调试和优化。

然而,现有的机器人编程智体在很大程度上受限于简陋的执行环境,这些环境仅提供粗粒度的任务级反馈。调试机器人程序本质上极具挑战性,因为故障可能源于多个相互作用的组件,包括多模态感知、运动规划、抓取生成、接触动力学以及长程任务协调。一次失败的执行过程(rollout)可能表明任务未成功,但无法揭示根本原因究竟是感知错误、抓取不稳定、规划失误,还是后续的恢复失败。若缺乏细粒度的诊断轨迹,智体便难以确定应检查何种证据、如何定位故障或尝试何种修复策略。

此外,现有系统无法跨任务积累经验。一旦任务完成,所发现的修复方案和恢复策略便会被丢弃,而不会被整合为可复用的技能。结果,智体在处理第一百个任务时,其经验水平实际上与处理第一个任务时并无二致。

人类机器人工程师则采取截然不同的方法。当机器人程序运行失败时,他们会回放执行过程,检查感知输出和运动轨迹,定位故障子系统,修改实现,并将可复用的恢复策略内化为自身经验。随着时间的推移,调试经验会累积成可迁移的知识,包括抓取恢复启发式规则、导航策略、提示词(prompting)技巧以及适用于多种任务的程序性修复方案。这种可复用知识的积累,正是人类机器人程序员工作效率随时间推移不断提升的关键原因。

本文介绍ASPIRE,这是一个具备自我改进能力的持续学习机器人系统。它采用"代码即策略"(code-as-policy)的范式,自主编写并优化机器人控制程序,同时将经验积累到可复用的技能库中。ASPIRE不再局限于固定的"感知-规划-执行"流程,而是运行在一个开放式的学习循环中;在该循环内,智体自主决定如何检查执行轨迹、诊断故障、合成修复方案、验证修正后的行为,并将成功的恢复模式整合为持久技能,以便在不同任务间进行迁移。

ASPIRE 的系统概览如图 1 所示,它由三个组件构成。首先,闭环机器人执行引擎用细粒度的"原语级"(per-primitive)执行轨迹取代粗略的"推演级"(rollout-level)反馈。针对每一次感知、规划、抓取和控制调用,执行引擎都会记录观测数据、输入、输出以及(条件允许时的)视觉证据。这些丰富的多模态轨迹使智体能够有选择地检查关键原语的日志,逐步定位故障,并通过重新执行来验证修复效果。

其次,ASPIRE 维护着一个不断扩充的技能库,将经由验证的修复方案提炼为可复用、可迁移的机器人知识;这些知识可在未来任务中被检索并作为上下文指导(in-context guidance)加以利用。

第三,ASPIRE 采用一种进化搜索机制来生成多样化的任务序列和控制程序,通过迭代调试和并行优化,实现超越单一轨迹自我改进的探索能力。这三个组件共同构建一个能够随经验积累提升性能的自我改进型机器人系统:ASPIRE 接触的任务越多,技能库就越丰富,从而能更有效地将经验迁移至新任务、长时程行为以及现实世界的机器人场景中------在这些场景下,即便机器人形态各异,也可能出现相似的故障与恢复模式。


ASPIRE 由三个组件构成,共同形成一个开放式的学习循环:(1) 机器人执行引擎,它针对每个原语(primitive)提供多模态轨迹以进行故障归因,并执行由智体编写的修复方案以进行闭环验证;(2) 技能库,用于将经由验证的修复方案积累为可复用的技能;以及 (3) 进化搜索过程,旨在将探索范围从单一轨迹的修复扩展至更广泛的场景。随着 ASPIRE 处理的任务增多,其技能库不断扩充,使得后续任务能够继承已积累的修复方案和可复用策略。

如图 1 所示,ASPIRE 采用一种"协调者-执行者"(coordinator--actor)架构。中央协调者负责管理共享技能库并将执行者(即负责编码的智体)指派给各项任务;与此同时,每个执行者在机器人执行引擎内负责编写、执行、诊断及修复机器人程序。执行者之间不交换完整的对话历史或原始的运行轨迹;相反,可迁移的经验被提炼并存入技能库,从而使每个执行者的上下文窗口能够专注于任务规范、当前程序以及与当前故障相关的结构化执行轨迹。

1. 机器人执行引擎

具身编程智体(Embodied coding agents)需要执行过程中的证据来调试机器人程序。以往的方法通过固定的人工设计接口来呈现这些证据,通常表现为人工整理的场景级摘要或一组预定义的观测数据。这带来了一个权衡难题:证据过少可能掩盖导致失败的基元动作(primitive),而过多的原始视觉上下文则可能分散智体的注意力,使其无法关注导致失败的因果链条。

ASPIRE将这种固定的反馈通道转变为一个开放式的调试环境。机器人执行引擎,记录针对每个基元动作调用的多模态轨迹数据(涵盖感知、规划和控制环节),向编程智体提供这些轨迹信息,并执行智体编写的修复代码以进行闭环验证。对于每一次基元动作调用,轨迹数据都会存储调用的 API、输入输出、返回状态以及相关的多模态证据,例如 RGB 关键帧、叠加(overlays)、抓取候选、物体位姿和运动规划结果。智体不会接收完整的视频帧序列;引擎仅保留基元动作调用前后的帧图像及其对应的叠加和返回值,从而让智体能够专注于与故障相关的调用环节及其证据。

图 2 详细展示 BEHAVIOR-1K 数据集中一次"导航并拾取收音机"任务的调试过程。第一人称视角(ego-view)的关键帧显示:机器人发现收音机,但在尝试靠近时多次失败,最终在改变接近方向后成功完成任务。基元动作轨迹数据定位故障所在:感知模块运行成功并返回收音机的位姿,但多次 navigate_to_pose(导航至姿态)调用均返回了 PLANNING_ERROR(规划错误)。通过检查导航调用的返回值及相关日志,智体发现生成的导航目标点过于靠近桌面边界(距桌沿约 20 厘米以内)。这触发避障机制,导致规划器失败。因此,故障并非源于收音机的检测或抓取环节,而是因为目标姿态在桌面的碰撞约束条件下是不可行的。

修复方案直接源于这一诊断结果。智体并未修改感知提示词(perception prompt)或抓取基元(grasp primitive),而是编写了一个多角度接近例程:在收音机周围采样备选导航目标,并执行一个能避开碰撞缓冲区的接近方向。执行引擎会展示相关证据并验证修正后的程序,使智体能够分析生成的日志、形成假设,并做出针对性的修复决策。

2. 技能库

程序故障在不同任务中反复出现,但可复用的知识往往并非完整的任务程序。ASPIRE的技能库存储了异构的修复知识,包括:定位启发式规则、感知提示、抓取约束、导航恢复策略、运动基元、场景理解例程以及调试工作流。其并未预先设定这种分类体系,技能是从已验证的修复方案中归纳得出的:编码智体根据执行轨迹诊断故障并修补程序,在调试配置下验证修复效果,随后由协调器将具有复用价值的模式纳入共享库。

每项技能都以紧凑的上下文引导形式存储,包含故障特征、适用条件、修复策略以及(在必要时)具有代表性的代码草图。图 3 展示典型的技能条目及其涵盖的技能库广度。

针对图 2 中的收音机任务,被纳入库中的技能是一种导航恢复模式,而非完整的收音机拾取程序:当规划器在障碍物边界附近反复出错(因采样的目标位姿落入碰撞缓冲区内)时,系统会在物体周围采样备选的接近方向,然后再重新尝试感知与抓取。这种表示方式使未来的智体能够复用已验证的修复方案,而无需在测试阶段通过推理重新探索;它支持向更复杂的模拟任务进行零样本迁移,并提供一种机制,使在模拟中发现的特定技能能够跨越不同的具身(embodiments)进行泛化,进而迁移到真实机器人上。

参与者(Actor)会报告结构化结果,总结故障模式、已验证的修复方案以及潜在可复用的修复模式。协调者(Coordinator)负责审核这些结果,验证其是否符合允许的 API 规范,并仅将那些通过调试验证且具备复用价值的修复方案纳入共享技能库。

3. 进化搜索

仅依靠轨迹引导的调试可能会陷入局部的修复循环:智体反复修补同一个失败的策略,却未能探索解决该任务的根本性不同方法。 ASPIRE 采用进化搜索来扩展对可执行机器人程序的探索,从而促进生成多样化的修复假设与任务策略。

在每一轮搜索中,编码智体(coding agent)会利用技能库,结合此前表现最优的程序及过往评估中的失败轨迹,生成包含 K 个候选程序的种群。每个候选程序均在机器人执行引擎中运行,产生任务结果及新的诊断轨迹。随后,下一轮搜索将基于表现最佳的程序及其尚未解决的失败模式进行,从而确保搜索过程能够探索不同的策略,而非仅仅反复优化同一解决方案。

搜索的目标对象即机器人程序本身。候选程序通过闭环执行进行筛选;搜索结束后,若经由验证的修复方案能够适应环境变化及不同任务,便会被纳入技能库。当某个候选程序成功解决调试配置中的问题,或搜索预算耗尽时,搜索过程即告终止。算法 1 概述了该演化搜索流程,


1. 实验设置

在所有仿真基准测试中,用搭载 Claude Opus 4.6 模型且具备 1M token 上下文窗口的 Claude Code Anthropic, 2025 作为编程智体(coding agent)。该智体基于 MuJoCo Playground Zakka et al., 2025 构建的开源"代码即策略"(code-as-policy)框架 CaP-X Fu et al., 2026 编写可执行的 Python 机器人程序,并调用涵盖感知、几何处理和运动规划功能的机器人编程 API。在所有实验中,智体、环境和 API 集合均保持不变。

针对真实机器人技能迁移研究,在双臂 YAM 操作平台上使用处于"超高推理能力"(reasoning-xhigh)模式的 OpenAI Codex GPT-5.5。选取三个由 ASPIRE 在基于 Franka 机器人的仿真环境中生成的技能:拾取易拉罐、将碗放置在盘子上以及推/拉抽屉。将这些技能作为上下文引导信息提供给真实机器人的编程智体。尽管真实机器人环境在物理具身(embodiment)和 API 方面与仿真环境不同,但系统会公开 ASPIRE 的多模态执行轨迹,使智体能够在调试循环中自主运行、检查和调试程序,而无需针对特定任务的人工指导。对比使用与不使用相应仿真习得技能的情况,并评估达到首次成功所需的 token 数量以及在未见过的真实机器人场景中的成功率。

2. 基准测试与基线方法

在三个基准测试系列上评估 ASPIRE:LIBERO-Pro Zhou et al., 2025(用于评估在物体、目标和空间扰动下的短时程鲁棒性);Robosuite Zhu et al., 2020(用于评估涉及丰富接触交互的单臂及双臂操作);以及 BEHAVIOR-1K Li et al., 2024(用于评估长时程家庭移动操作任务,具体包括"导航并拾取易拉罐"和"导航并拾取收音机")。主要编程智体基线是 CaP-Agent0 Fu et al., 2026,该方法利用视觉差异分析、预定义技能库以及针对每个回合(episode)的测试时重试机制。还将该方法与端到端 VLA 策略进行比较,包括 OpenVLA Kim et al., 2024、𝜋0 Black et al., 2025 和 𝜋0.5 Physical Intelligence et al., 2025。在零样本迁移方面,利用在 LIBERO-90 Liu et al., 2023 上积累的技能库,对未参与训练的 LIBERO-Pro Long 任务进行评估。

3. 评估方案

在所有基准测试中,环境随机种子(seed)用于固定每个任务实例,包括物体位姿、干扰物以及机器人与物体的初始状态。采用互不重叠的调试种子与评估种子:ASPIRE 在小规模调试集上进行学习,随后在规模更大的独立评估种子上报告成功率(针对每个 LIBERO-Pro/Robosuite 任务仅生成一个程序);相比之下,CaP-Agent0 则利用测试阶段的推理与重试机制,为每个种子单独生成程序。在 BEHAVIOR-1K 评估中,Aspire 采用增量式代码块执行策略,即根据当前的各种模态轨迹(multimodal trace)来生成后续的代码。


技能库详情如下。

把图3中展示的代表性条目扩展为技能库分类体系。每个条目均包含以下内容:(i) 从触发故障追踪中提取的问题;(ii) 编码情境化检索条件的"适用时机"守卫条件(guard);(iii) 经验证的修复代码片段;以及 (iv) 生成该条目的原始任务。

调试技能

定位技能

导航技能

策略抓取技能

其他还有运动基元技能和场景推理技能。


智体流水线技能如下。

1. 技能库提示词

执行智体(Actor agents)使用结构化的发现结果模式来报告候选修复方案,内容包括:观察到的故障模式、已验证的修复方案、可迁移的模式、特定任务的特殊情况,以及在调试配置下的验证成功率。随后,协调智体(Coordinator)的提示词会审查每个候选方案的可重用性,检查其是否符合 API 策略,并仅接纳那些已验证且有望迁移至原始任务之外的修复方案。并行执行的智体负责编写任务级的修复方案和发现结果,而协调智体则对技能接纳过程进行串行化处理,以避免写入技能库时发生冲突。

2. 智体系统提示词与持久化记忆

3. ASPIRE 修正环(Fix Loop)技能

4. ASPIRE 进化搜索技能

进化搜索维护一份跨轮次保留的持久化任务分析文档 A_i。A_i 包含:(i) 基于初始快照(物体形状、目标几何结构、障碍物、受阻的接近方向)一次性生成的各任务场景描述;(ii) 正在进行的假设及其对应的候选元数据(用于验证假设);以及 (iii) 记录已排除方向(经测试确认不可行)和受阻但未测试方向(因工作空间约束而失败)的清单。UpdateAnalysis 模块在每一轮根据新的轨迹记录、关键帧和库检索结果重写 A_i。正是这份文档使得后续轮次能够避免重复测试已被排除的分支,同时在掌握新技巧(例如手腕旋转)后,有机会重新尝试那些此前受阻的分支。

5. 初始技能库模板