Boucle fermée sans changement de contexte
Un pipeline traditionnel de projets de robotique est divisé en étapes isolées: d'abord, les démonstrations sont recueillies sur du matériel réel ou simulé, puis les données sont transférées dans un système distinct pour l'entraînement, et après cela , le modèle formé doit être déployé à nouveau sur le robot. Chaque transition nécessite la conversion de format, la synchronisation manuelle et la configuration de l'environnement. En conséquence, beaucoup de temps passe de l'enregistrement du premier épisode à l'exécution de la politique, et toute modification des données devient une opération séparée.
La nouvelle approche, présentée par l'équipe AWS en août 2026, ferme cette boucle en un seul endroit. Au lieu de plusieurs outils déconnectés, un seul agent est proposé pour enregistrer les démonstrations, les envoyer au stockage en nuage, former un modèle sur eux et retourner un point de contrôle mis à jour au robot. L'idée clé n'est pas de transférer des données entre les systèmes, mais travailler avec elle en streaming, directement depuis le stockage.

Outils d'agent et SDK
La base de la solution est Robots à brins — un SDK ouvert depuis AWS distribué sous la licence Apache 2.0. Il fournit des abstractions robotiques, des simulations, LeRobot empiler comme un ensemble de AgentTools. Ces outils sont composés en un seul agent Strands : le robot, le simulateur et le traitement des données deviennent des modules interchangeables.
Les Robot() usine résout un nom contre un registre des appareils pris en charge. Le registre comprend des manipulateurs, des robots humanoïdes, des bases mobiles et des bras autonomes. Une des configurations disponibles est SO-100, un manipulateur léger souvent utilisé pour des expériences. Grâce à ce registre, le même code fonctionne à la fois avec la simulation et avec un appareil réel : il suffit de changer le paramètre mode.
L'agent reçoit une commande en langage naturel, comme "enregistrer une démonstration et synchroniser et appelle l'outil approprié lui-même. Cela permet de construire des scénarios complexes sans séquence d'étapes codées en dur — la logique de contrôle est déléguée au modèle de langue, tandis que le SDK gère les opérations de bas niveau avec le robot et les données.
Format de données unifié
Un détail important est LeRobot format de l'ensemble de données. Au moment de la publication, plus de 90 000 ensembles de données et modèles Hub du visage déjà utiliser ce format, publié par plus de 8 000 auteurs différents. Grâce à cette adoption, LeRobot est devenu la norme de facto pour le stockage des démonstrations robotiques.
Un enregistrement réalisé par Strands Robots est enregistré directement au format LeRobotDataset. Cela signifie tout outil qui peut lire LeRobot peut fonctionner avec ces données sans aucune conversion. Il n'est pas nécessaire d'écrire des convertisseurs séparés pour chaque moteur : les données sont également bien lues dans les scripts d'entraînement, les outils de visualisation et d'autres cadres robotiques.
Stockage en continu
Pour stocker de grands volumes de démonstrations, Boucles de rangement du visage est utilisé — un nouveau type de stockage d'objets introduit en mars 2026. Contrairement aux dépôts réguliers de données, un seau est un stockage mutable, non-versionné construit sur la technologie Xet. Cela présente deux avantages importants : écrire et mettre à jour des données sans créer de nouvelles versions et ne transférer efficacement que des octets modifiés pendant la synchronisation.
Le seau vit dans le même hf:// namespace comme jeux de données réguliers, donc le familier hf CLI est utilisé pour travailler avec elle. Les données peuvent être diffusées directement depuis le stockage sans télécharger l'ensemble des données. Pour les grandes vidéos de démonstration, c'est essentiel : il n'est pas nécessaire d'attendre un téléchargement complet pour commencer l'entraînement.

La boucle de données en pratique
Pour comprendre comment tout cela fonctionne ensemble, regardons un exemple du blog officiel AWS, où le Robots à brins, LeRobotet Boucles de rangement du visage pile est utilisé pour une boucle complète. Un agent avec un outil robot est créé, avec mode de simulation actif par défaut:
python de brins import Agent de brins robots import Robot
Sim = Robot("so100") agent = Agent(outils=[sim])
L'agent peut recevoir une commande en langage naturel : "enregistrez une démonstration de pic-the-cube et synchronisez-la à la my-org/robot-fave dépôt." La commande n'est pas analysée par un modèle prédéfini — le modèle de raisonnement de l'agent détermine la séquence d'actions elle-même: commencer l'enregistrement, former un ensemble de données, et l'envoyer dans le seau.
Agent python("Enregistrez une démo de pick-the-cube et synchronisez-la à mon-org/robot-fave.")
La synchronisation est conçue de manière à ce que sur les répétitions, seuls les octets modifiés soient téléchargés — il n'est pas nécessaire de réécrire l'ensemble des données. Après l'enregistrement de la démonstration, la même Robot() objet peut retourner le jeu de données. Dans la stream_dataset() méthode, données est lue image par image, vidéo est décodée à la volée , et par conséquent aucune copie locale de l'ensemble de données n'est requise.
python pour batch dans sim.stream dataset( "my-org/robot-fave/cube pick", repo type", ).dataloader(batch size=64): ...
Ce code peut être utilisé directement dans le processus de formation: les lots proviennent du stockage, le modèle est formé, et puis le poste de contrôle préparé est déployé sur le même Robot() — pour cela, vous n'avez besoin de changer qu'un seul argument clé. Les démonstrations enregistrées sur du matériel réel sont retournées dans le même seau de la même manière et deviennent disponibles pour la prochaine itération d'entraînement. Le résultat est une boucle continue: les données sont collectées, le modèle est formé sur les données en streaming, la politique mise à jour est déployée au robot, et le processus se répète.
Exigences relatives au fonctionnement
Pour reproduire l'expérience, vous aurez besoin de Python 3.12 ou plus récent et Linux ou macOS. Sur Apple Silicon, MuJoCo backend est pris en charge pour la simulation. Le paquet est installé avec la commande:
pip installer "strands-robots[sim-mujoco,lerobot]>=0.5.1"
En outre, lerobot ensemble est inclus, qui comprend LeRobot (au moins la version 0.6.1), datasets, avet torchcodec bibliothèques. Pour exécuter l'agent, l'un des fournisseurs de modèles pris en charge est requis: Pierres de roche amazonienne avec des identifiants AWS configurés, API anthropique, OpenAIou local Ollama. Avoir ce choix permet d'expérimenter à la fois dans le nuage et entièrement localement.
Un compagnon runable est disponible à côté de l'article — le cahier examples/notebooks/05_streaming_data_loop.ipynb, qui reproduit toute la boucle décrite. C'est un point de départ pratique pour voir le Robots à brins, Boucles de rangement du visageet LeRobot pile en action.
Conclusions
Le résultat principal est la capacité d'intégrer l'ensemble de la boucle de développement de la politique robotique dans un seul circuit. L'enregistrement, le stockage, la formation et le déploiement utilisent les mêmes abstractions et formats. Cela réduit radicalement le nombre d'étapes de « colle » entre les étapes et simplifie l'expérimentation: pour changer les données, il suffit de mettre à jour les démonstrations dans le seau, et Pour mettre à jour la politique, il suffit de recycler le modèle sur les données en streaming et de changer un argument lors de la création du robot.




