Ciclo fechado sem comutação de contexto
Um pipeline tradicional de projeto de robótica é dividido em etapas isoladas: primeiro, demonstrações são coletadas em hardware real ou simulado, em seguida, os dados são transferidos para um sistema separado para treinamento, e depois disso , o modelo treinado precisa ser implantado novamente no robô. Cada transição requer conversão de formato, sincronização manual e configuração do ambiente. Como resultado, um monte de tempo passa da gravação do primeiro episódio para a execução da política, e quaisquer mudanças nos dados se tornam uma operação separada.
A nova abordagem, apresentada pela equipe da AWS em agosto de 2026, encerra este loop em um só lugar. Em vez de várias ferramentas desconectadas, um único agente é proposto que pode gravar demonstrações, enviá-las para armazenamento em nuvem, treinar um modelo sobre elas e retornar um ponto de controle atualizado ao robô. A ideia-chave não é transferir dados entre sistemas, mas para trabalhar com ele de forma em streaming, diretamente do armazenamento.

Ferramentas de agente e SDK
A base da solução é Robôs Strands — um SDK aberto da AWS distribuído sob a licença Apache 2.0. Ele fornece abstrações robóticas, simulação e LeRobot empilhar como um conjunto de AgentTools. Essas ferramentas são compostas em um único agente Strands: o robô, simulador e processamento de dados tornam-se módulos intercambiáveis.
A central Robot() A fábrica resolve um nome contra um registo de dispositivos suportados. O registro inclui manipuladores, robôs humanóides, bases móveis e braços autônomos. Uma das configurações disponíveis é SO-100, um manipulador leve frequentemente usado para experimentos. Graças a este registro, o mesmo código funciona com simulação e um dispositivo real: você só precisa alterar o parâmetro modo.
O agente recebe um comando em linguagem natural, como "gravar uma demonstração e sincronizá-la para um balde", e chama a própria ferramenta apropriada. Isso permite a construção de cenários complexos sem uma sequência de passos codificada – a lógica de controle é delegada no modelo de linguagem, enquanto o SDK lida com operações de baixo nível com o robô e dados.
Formato de dados unificado
Um detalhe importante é o LeRobot formato do conjunto de dados. No momento da publicação, mais de 90.000 conjuntos de dados e modelos Abraço do rosto já utiliza este formato, publicado por mais de 8.000 autores diferentes. Graças a esta adoção, LeRobot tornou-se o padrão de fato para armazenar demonstrações de robótica.
Uma gravação feita através de Strands Robots é salva diretamente no formato LeRobotDataset. Isto significa que qualquer ferramenta que possa ler LeRobot pode trabalhar com estes dados sem qualquer conversão. Não há necessidade de escrever conversores separados para cada backend: os dados são lidos igualmente bem em scripts de treinamento, ferramentas de visualização e outros frameworks de robótica.
Armazenamento de streaming
Para armazenar grandes volumes de demonstrações, Baldes de armazenamento de rosto abraçado é utilizado — um novo tipo de armazenamento de objetos introduzido em março de 2026. Ao contrário dos repositórios de conjuntos de dados regulares, um balde é mutável, armazenamento não-versionado construído na tecnologia Xet. Isso fornece duas vantagens importantes: escrever e atualizar dados sem criar novas versões e transferir eficientemente apenas bytes alterados durante a sincronização.
O balde vive no mesmo hf:// espaço de nomes como conjuntos de dados regulares, então o familiar hf CLI é usado para trabalhar com ele. Os dados podem ser transmitidos diretamente do armazenamento sem baixar todo o conjunto de dados. Para grandes vídeos de demonstração, isso é crítico: não há necessidade de esperar por um download completo para começar o treinamento.

O lacete de dados na prática
Para entender como tudo isso funciona em conjunto, vamos olhar para um exemplo do blog oficial da AWS, onde Robôs Strands, LeRobot, e Baldes de armazenamento de rosto abraçado stack é usado para um loop completo. Um agente com uma ferramenta robô é criado, com o modo de simulação ativo por padrão:
python de strands importar agente de strands robots importar robô
sim = agente robô("so100") = agente(ferramentas=[sim])
O agente pode ser dado um comando em linguagem natural: "gravar uma demonstração pick-the-cube e sincronizá-lo para o my-org/robot-fave repositório." O comando não é analisado por um modelo predefinido — o modelo de raciocínio do agente determina a sequência de ações em si: iniciar a gravação, formar um conjunto de dados e enviá-lo Para o balde.
python agent("Record a pick-the-cube demo and sinc it to my-org/robot-fave.")
A sincronização é projetada para que, em execuções repetidas, apenas bytes alterados sejam enviados — não há necessidade de reescrever todo o conjunto de dados. Após a demonstração ser salva, o mesmo Robot() objeto pode transmitir o conjunto de dados de volta. Dentro da stream_dataset() método, os dados são lidos quadro por quadro, vídeo é decodificado na mosca , e portanto não é necessária uma cópia local do conjunto de dados.
python para lote em sim.stream dataset( "my-org/robot-fave/cube pick", repo type="bucket", ).dataloader(batch size=64): ...
Este código pode ser usado diretamente no processo de treinamento: lotes vêm do armazenamento, o modelo é treinado, e então o posto de controle preparado é implantado na mesma Robot() — para tal, basta alterar um argumento de palavra-chave. Demonstrações gravadas em hardware real são devolvidas ao mesmo balde da mesma forma e ficam disponíveis para a próxima iteração de treinamento. O resultado é um ciclo contínuo: os dados são coletados, o modelo é treinado em dados de streaming, a política atualizada é implementada ao robô, e o processo se repete.
Requisitos de funcionamento
Para reproduzir o experimento, você precisará de Python 3.12 ou mais recente e Linux ou macOS. Na Apple Silicon, o MuJoCo infra- estrutura é suportada para simulação. O pacote é instalado com o comando:
pip install "strands-robots[sim-mujoco,lerobot]>=0.5.1"
Além disso, a lerobot conjunto está incluído, que inclui LeRobot (pelo menos na versão 0.6.1), o datasets, av, e torchcodec bibliotecas. Para executar o agente, é necessário um dos provedores de modelo suportados: Bedrock da Amazônia com credenciais AWS configuradas, API antrópica, OpenAI, ou local Ollama. Ter esta escolha permite experimentar tanto na nuvem como localmente.
Um companheiro executável está disponível ao lado do artigo — o caderno examples/notebooks/05_streaming_data_loop.ipynb, que reproduz todo o laço descrito. É um ponto de partida conveniente para ver o Robôs Strands, Baldes de armazenamento de rosto abraçado, e LeRobot empilhar em acção.
Conclusões
O principal resultado é a capacidade de empacotar todo o ciclo de desenvolvimento da política de robótica em um único circuito. Gravação, armazenamento, treinamento e implantação usam as mesmas abstrações e formatos. Isso reduz radicalmente o número de passos de "cola" entre etapas e simplifica a experimentação: para alterar os dados, você só precisa atualizar as demonstrações no balde, e para atualizar a política, você simplesmente retreina o modelo no streaming de dados e altera um argumento ao criar o robô.




