单堆的机器人:Strands、LeRobot和Hugging Face存储盒,用于全循环——从录音到部署

21 八月 202620 视图

在亚马逊新材料中,展示了如何基于开源的Strands Agents SDK构建一个端到端的过程:机器人记录到一个存储桶的演示,从Hub直接从流中数据集上的模型列车,完成的检查站通过改变一个单一参数返回到相同的硬件. 这种方法消除了转换和局部存储数据副本的需要.

单堆的机器人:Strands、LeRobot和Hugging Face存储盒,用于全循环——从录音到部署

不切换上下文的闭合循环

传统的机器人项目管道被分成孤立的阶段:首先,在真实或模拟的硬件上收集演示,然后将数据转移到单独的系统进行训练,然后 训练有素的模型需要重新部署到机器人上 每个过渡都需要格式转换,手动同步,以及环境设置. 因此,从第一集录音到政策运行,许多时间流逝,对数据的任何修改都成为单独的操作.

2026年8月由AWS团队提出的新方法将这个环路关闭在一个地方. 而不是几个断开的工具,而是提议一个单一的代理,可以记录演示,发送到云存储,在它们上训练一个模型,并将更新的检查站还给机器人. 关键的想法不是在系统之间传输数据,而是 直接从存储器中进行工作

代理工具和SDK

解决办法的基础是: 斯特兰德斯机器人 ——根据Apache 2.0许可证发行的AWS的开放SDK. 它提供机器人抽象、模拟和 乐机器人 堆成一组工具。 这些工具组成一个单一的斯特兰德斯代理:机器人,模拟器,数据处理成为可互换的模块.

中心区 Robot() 厂家根据所支持设备的登记册解决名称。 登记册包括操纵器、人造机器人、移动基地和独立武器。 可用的配置之一是SO-100,是常用于实验的轻量级操纵器. 由于这个注册,同一个代码同时与模拟和一个真正的设备同时工作:你只需要修改模式参数.

代理收到自然语言的指令,例如"记录演示并同步它" 并称为适当的工具。 这使得在没有硬编码步骤序列的情况下构建复杂的情景——控制逻辑被委托给语言模型,而SDK则用机器人和数据处理低级操作.

统一数据格式

一个重要的细节是 乐机器人 数据集格式。 在出版时,有90 000多个数据集和模型。 拥抱面罩 已经使用此格式, 由 8,000 多个不同作者 发布 。 由于这一采纳,勒罗博特成为存储机器人演示的事实上的标准.

通过Strands Robots制作的录音直接以LeRobotDataset格式保存. 这意味着任何能够读取LeRobot的工具都可以与这个数据一起工作,而无需进行任何转换. 无需为每个后端写单独的转换器:数据在训练脚本,可视化工具,以及其他机器人框架中读得同样好.

流式存储

因为储存了大量的示威, 拥抱面部存储桶 被使用——2026年3月推出的新型对象存储. 与常规数据集寄存器不同的是,一个桶是可变的,非版本存储器建立在Xet技术上. 这提供了两个重要的优点:在不创建新版本的情况下编写和更新数据,在同步时只有效传输更改的字节.

水桶住在同一处 hf:// 命名空间作为普通数据集,所以熟悉 hf CLI用来配合它. 数据可以在不下载整个数据集的情况下直接从存储中流出. 对于大型演示视频来说,这是至关重要的:无需等待全部下载开始训练.

实际数据循环

为了了解这一切是如何一起工作的,让我们看看来自AWS官方博客的一个例子, 斯特兰德斯机器人, (中文). 乐机器人,以及 拥抱面部存储桶 堆栈用于一个完整的循环。 创建了一个带有机器人工具的代理,默认情况下模拟模式活动:

从线程导入代理从线程导入 python 机器人导入机器人

sim = 机器人("so100")代理 = 代理(工具=[sim])

代理人可以用自然语言获得命令:"录制一个采样立方体演示,并将其同步到 my-org/robot-fave 仓库". 命令不是通过一个预先定义的模板解析的——代理的推理模型决定了动作的顺序本身:开始录制,形成一个数据集,然后发送. 到桶里来

python 代理 ("记录一个 pick-the-cube 演示并同步到 my-org/robot-fave").

同步设计是为了在重复运行时只上传更改的字节——不需要重写整个数据集. {\fn黑体\fs20\shad2\2aH82\3aH20\4aH33\fscx95\3cH592001\be1}在示威救出之后 同样的 Robot() 对象可以将数据集流回。 内部 stream_dataset() 方法,数据按帧读框,视频在苍蝇上解码 ,因此不需要本地复制数据集。

sim.stream dataset("my-org/robot-fave/cube pick"), repo type="bucket", ). dataloader(batch size=64):.

这个代码可以直接用于培训过程中:批次来自存储,模型经过培训,以及 然后准备的检查站就在同一地点部署 Robot() ——为此,只需更改一个关键词参数. 真实硬件上记录的演示以同样方式返回同一桶,并可供下一次训练迭代使用. 结果是连续循环:收集数据,对模型进行流数据培训,推出更新的政策 到机器人, 过程重复。

运行所需经费

要复制实验,你需要Python 3.12或更新和Linux或macOS. 在苹果硅上, 穆乔科 后端被支持用于模拟. 包装有命令 :

pip 安装"strands-robots[sim-mujoco,lerobot]###0.5.1"

此外, lerobot 包含集,其中包含 乐机器人 (至少为0.6.1版) datasets, (中文). av,以及 torchcodec 图书馆。 为了运行代理,需要支持的模型提供者之一: 亚马逊贝德洛克 带有配置的 AWS 证书, 人类 API, (中文). OpenAI,或当地 Ollama。有了这个选择,就可以在云中和完全本地进行实验。

文章旁边有一个可操作的同伴——笔记本 examples/notebooks/05_streaming_data_loop.ipynb,它复制了整个描述的循环。 这是一个方便的起点 看到 斯特兰德斯机器人, (中文). 拥抱面部存储桶,以及 乐机器人 动作堆栈。

结论

主要结果是能够将整个机器人政策开发循环包成一个单一的电路. 记录、储存、培训和部署使用相同的抽象和格式。 这从根本上减少了阶段之间的"格鲁"步数,简化了实验:要改变数据,只需要更新桶中的演示,以及 为了更新策略,你只需重新训练流数据模型,并在创建机器人时改变一个参数。

常问问题

Strands 机器人、LeRobot和存储盒审查