abc小站

2026-10-17

机器人的"训练",可以不是梯度下降:NVIDIA ASPIRE 怎么让编码 Agent 攒技能库

NVIDIA ASPIRE 让编码 Agent 通过写程序、调试、存技能来学机器人任务,不靠梯度更新。

一个问题

如果现在做一个问卷调查,问大家"怎么教会机器人一个新动作?"

我相信,大多数人的回答是:收集大量数据,训练一个神经网络。

这是过去十年的主流做法,也确实有效。

但是,最近 NVIDIA 的 GEAR 实验室开源了一个项目,给出了另一种答案:不训练神经网络,而是让编码 Agent 给机器人写程序,自己调 bug,再把调好的程序攒成技能库。

这个项目叫 ASPIRE。

它的意思是,"训练"不一定是梯度下降,也可以是一遍遍地打磨技能;"训练好的模型"也不一定是一堆权重,也可以是一个装满传感-运动技能的代码仓库。

我觉得这个思路很有意思,下面就来介绍一下。

基本情况

先说事实。

ASPIRE 的代码放在 GitHub 的 NVlabs/ASPIRE 仓库,采用 Apache 2.0 许可证(仓库里的第三方材料保留原来的条款)。据 10 月 17 日凌晨 3 点 20 分(北京时间)通过 GitHub API 读取,有 320 个 star、20 个 fork,这个数字还在变化。

配套的论文是 arXiv 2607.00272(论文页面),一共 43 页。作者里面有 Yuke Zhu、Linxi "Jim" Fan、Guanzhi Wang 等人,是 NVIDIA 与密歇根大学、伊利诺伊大学香槟分校、加州大学伯克利分校、卡内基梅隆大学合作的成果。

三个组件

ASPIRE 由三部分组成。

(1)闭环执行引擎。

机器人每做一次感知、规划、抓取、控制,引擎都会记录下这次调用的输入、输出和可视化证据。

这有什么用呢?

用处在于,Agent 写的程序跑失败了,它可以回头翻记录,找到到底是哪一步出了问题。

这就像程序员调试代码时看日志。没有日志,你只知道"程序崩了";有了日志,你才知道"第 37 行传进来一个空值"。

(2)持续扩张的技能库。

一个修复一旦被验证有效,就会沉淀成一个技能,存进技能库,以后的任务可以直接调用。

(3)对程序的进化搜索。

Agent 不是只写一个版本的程序,而是在多个版本之间搜索、比较、改进,留下表现好的。

把这三件事连起来,就是一个循环:

写程序 ----> 执行并留痕 ----> 诊断修复 ----> 存入技能库 ----> 下一个任务复用。

技能长什么样

这个项目最好玩的地方,是它的项目页上展示了一些 Agent 生成的技能代码片段。

其中有两条代码注释,大意是:

大家看出来了吗?

这其实就是调试经验。

人类工程师踩了坑,会在代码里写一行注释,提醒后来的人。ASPIRE 里的 Agent 做的是同一件事:它在真实任务里发现视觉模型分不清红绿,发现夹爪合得太紧说明没抓到东西,就把这些发现写进代码,变成一条规则。

下一次遇到类似的任务,这条规则就已经在那里了,不需要重新踩坑。

据项目页的展示,技能库里有 90 多个技能,覆盖 150 多个任务。

成绩怎么样

下面的数字都来自官方论文和项目页,是 NVIDIA 团队自己报告的结果,不是第三方复现。

我觉得,最值得注意的是那个零样本的数字,31% 对 4%。

这说明技能库确实在起作用:没见过的任务,可以用以前攒下的技能拼出来。

真机解魔方

除了仿真,团队还做了真机实验。

他们用的是一台 YAM 双臂机器人,让它在线学习解魔方,包括扫描魔方、规划步骤、执行每一层的转动。项目页提到的 Agent 是 GPT-6 Astra。

据项目页,随着回合增加,每完成一次面转动所消耗的 token 和时间都在下降。

这正好印证了技能库的作用:越练越熟,越熟越省。

真机任务还有拧瓶盖、把药片放进瓶子再拧上、把杯子倒扣叠起来、收拾桌子等等。

跟具体 Agent 无关

ASPIRE 不绑定某一个编码 Agent。

据仓库说明,仿真流程是按 Claude Code 加 Opus 4.6 1M 打包复现的,真机实验用的是 Codex。所有 Agent 都遵循同一份 AGENTS.md 文件。

真机操作通过一组 CaP MCP 工具完成,比如 cap_localize_object(定位物体)、cap_move_to_pose(移动到某个姿态)、cap_set_gripper(设置夹爪)。

底层的视觉定位用 SAM3 加 RGB-D 相机,运动规划用 cuRobo。

这里有一条规定我很欣赏:禁止关掉碰撞检测硬闯过去。

写过代码的人都知道,遇到报错,最省事的办法是把检查关掉。Agent 也会这么想。所以要明确告诉它,这条路不许走。

局限与警告

官方也很坦率地列出了局限。

(1)它还不是完全自主的真实世界学习者,需要成功检测、安全复位、人工监控和标定。

(2)它依赖冻结的前沿大模型,还没验证小模型能不能撑住这个调试循环。

(3)它受限于预先定义的原语 API。

(4)技能库越来越大以后,长期记忆怎么管理,还没解决。

(5)搜索循环非常消耗大模型调用。

最后一条,跟大家的钱包直接相关。一个能自己调 bug 的 Agent,意味着它会反复调用大模型,Token 账单不会便宜。

还有一条安全警告,大意是:ASPIRE 会执行拥有完整 import 权限的、由 AI 生成的 Python 代码,它的试运行和 watchdog 机制并不是安全沙箱。官方建议,在没有任何凭证的隔离主机上运行,而且不要让仿真用的 Agent 接触实体机器人。

这一点非常重要。AI 生成的代码,可能做任何事情。

我的看法

ASPIRE 让我想到一个老概念:code as policy,也就是用代码来表达机器人的策略。

这个想法以前就有,但是以前的瓶颈是,写代码需要人。现在编码 Agent 足够强了,写代码、看日志、改 bug 都可以交给它。

于是,机器人学习的形态就变了。知识不再藏在神经网络的权重里,而是写在人类读得懂的代码和注释里。

这有一个很大的好处:可以审查。

你打开技能库,能看到"SAM3 会混淆红绿"这样的注释,知道它为什么这么做。神经网络的权重,你是看不懂的。

当然,它也有代价:要花很多 Token,要有安全隔离,要依赖强大的前沿模型。

那么,一个让人好奇的问题就来了:如果将来本地模型足够强,每个人都能在家里跑这样一个调试循环,机器人的技能库会不会像开源软件一样,由社区一点点攒起来?

我不知道答案,但我觉得值得期待。

(完)

来源:ASPIRE 项目页;GitHub:NVlabs/ASPIRE。所有成绩为官方自报;型号名照项目页与仓库原文;star/fork 为 GitHub API 2026-10-17 03:20(北京时间)读数,会变化。