Схема работы Strands Robots SDK: от датасета на Hugging Face через симуляцию MuJoCo к физическому роботу SO-101 с одним агент

Strands Robots SDK: один агентный цикл от датасета до робота

ИИ-инструменты 30 июня 2026 г.

У вас есть робот SO-101, папка с демонстрационными данными на Hugging Face Hub и новая задача, которую нужно обучить. Сегодня для этого требуется пять отдельных инструментов: один для записи новых демонстраций, второй для обучения, третий для тестирования в симуляции, собственный код для развертывания на железе и ещё один для координации, когда роботов несколько. Инструменты работают по отдельности — они не общаются друг с другом.

Источник: huggingface.co

AWS выпустила открытый SDK Strands Robots (лицензия Apache 2.0), который объединяет весь этот конвейер в одного Strands-агента. Ключевая особенность: один и тот же код работает и в симуляции MuJoCo, и на физическом роботе SO-101. Формат датасета — LeRobotDataset — одинаков для симуляции и реального железа. Политику можно заменить одной строкой кода.

Для команды, которая разрабатывает робототехнику на базе машинного обучения, это означает: отпадает необходимость поддерживать пять разрозненных скриптов. Всё, что нужно для проверки — клонировать репозиторий и запустить ноутбук на ноутбуке. Ни железа, ни GPU, ни учётной записи Hugging Face для стандартного пути не требуется.

Что именно изменилось: от пяти инструментов к одному агенту

Strands Robots SDK — это открытая библиотека от AWS, которая предоставляет абстракции робота, симуляцию и стек LeRobot в виде AgentTools. Разработчик собирает из них одного Strands-агента. Интеграция намеренно тонкая: собственные скрипты LeRobot (lerobot-record, lerobot-calibrate) отвечают за запись и калибровку на железе, а AgentTools берут на себя оркестровку.

Пример агента делает четыре вещи: - записывает новые демонстрации в симуляции; - отправляет результат на Hugging Face Hub как LeRobotDataset; - запускает политику в симуляции против того же формата; - развёртывает тот же код на физическом роботе с одним изменением ключевого аргумента.

Когда роботов несколько, агент координирует всю группу через встроенную peer mesh на протоколе Zenoh.

Весь рабочий процесс умещается в пять строк Python:

from strands_robots import Robot
from strands import Agent

arm = Robot("so100")  # mode="sim" — безопасно, без железа
agent = Agent(tools=[arm])
agent("Pick up the red cube")

Как это меняет стоимость и время разработки

Традиционный подход требует поддержки отдельного кода для симуляции и для реального робота. Любое изменение в логике управления приходится дублировать. Strands Robots устраняет это разделение за счёт двух проектных решений.

Первое: Robot("so100") по умолчанию возвращает симуляцию на MuJoCo — никакого железа, никакого риска. Аргумент mode="real" переключает на физического робота, управляемого через LeRobot. Код агента идентичен для обоих режимов.

Второе: DatasetRecorder, который записывает LeRobotDataset, общий для симуляции и для аппаратной записи LeRobot. Датасет, захваченный в MuJoCo, и датасет с физического SO-101 имеют одинаковый формат на диске.

Для команды это означает: можно разрабатывать и тестировать политику полностью в симуляции, а затем развернуть тот же код на реальном роботе без переписывания. Экономия времени — от дней до недель на каждый цикл разработки.

Что можно проверить за неделю без перестройки компании

SDK распространяется под лицензией Apache 2.0. Исходный код, примеры и документация доступны на GitHub. Для быстрой проверки не требуется ни железа, ни GPU, ни учётной записи Hugging Face.

Вот что можно сделать за неделю:

  1. Клонировать репозиторий strands-robots с GitHub.
  2. Запустить пример hub_to_hardware.py или hub_to_hardware.ipynb в симуляции. Ноутбук по умолчанию использует Mock-политику и не требует внешних ресурсов.
  3. Записать демонстрацию в симуляции через DatasetRecorder.
  4. Запустить политику на тех же данных.
  5. Проверить формат датасета — он совпадает с форматом LeRobot, который используется на физическом железе.

Если в команде есть робот SO-101, можно переключить mode="real" и проверить, как тот же код работает на железе. Для этого потребуется установить LeRobot CLI и выполнить калибровку через lerobot-calibrate.

Где могут возникнуть проблемы и неопределённости

Несмотря на привлекательность подхода, есть несколько ограничений, которые стоит проверить до принятия решения.

Зависимость от экосистемы AWS. SDK разработан AWS и опубликован под Apache 2.0, но основная документация и примеры ориентированы на инфраструктуру Amazon. Для команд, использующих другие облачные платформы, может потребоваться дополнительная адаптация.

Peer mesh на Zenoh. Встроенная mesh для управления группой роботов использует протокол Zenoh. Для одиночного робота это избыточно. Для флота — требует понимания работы Zenoh и настройки сети.

Физическое железо. Для работы с реальным роботом SO-101 требуется дополнительное оборудование и настройка LeRobot CLI. SDK не заменяет процесс калибровки и настройки железа — он берёт на себя только оркестровку после того, как робот готов.

Лицензионные ограничения. Apache 2.0 позволяет коммерческое использование, но требует явного указания авторства. Для продуктовых внедрений стоит проверить, не конфликтует ли лицензия с внутренними политиками компании.

Что можно сделать на этой неделе

Действие Что проверить Результат
Клонировать strands-robots Доступен ли SDK, работает ли установка Понимание совместимости с окружением
Запустить hub_to_hardware.ipynb Работает ли симуляция, запись датасета Проверка формата LeRobotDataset
Записать демонстрацию в MuJoCo Совпадает ли формат с LeRobot Подтверждение единого формата
Переключить mode="real" (если есть SO-101) Работает ли тот же код на железе Проверка sim-to-real без переписывания
Оценить Zenoh для флота Нужна ли mesh, есть ли опыт работы с Zenoh Решение о масштабировании

Практический чек-лист для внедрения

  1. Убедитесь, что SDK совместим с вашей средой. Проверьте зависимости Python и версию MuJoCo.
  2. Запустите пример в симуляции. Это займёт не больше часа и не требует железа.
  3. Сравните формат датасета. Убедитесь, что LeRobotDataset из симуляции совпадает с тем, что вы используете на реальном роботе.
  4. Проверьте политику. SDK поддерживает GR00T, LerobotLocal и MolmoAct2. Убедитесь, что ваша политика совместима.
  5. Оцените необходимость peer mesh. Если у вас один робот, Zenoh не нужен. Если планируется флот — изучите документацию Zenoh.
  6. Проверьте лицензию. Apache 2.0 не накладывает ограничений на коммерческое использование, но требует указания авторства.

Источники

Генерация изображения

  • Модель: flux-schnell
  • Провайдер: replicate

Что почитать дальше

Теги