ИИ-агент обрастает руками и ногами: Strands + LeRobot связывают робототехнику — Natural Language напрямую управляет реальными машинами

В чём главная проблема ИИ-агентов последних двух лет?
Дело не в том, что они не умеют болтать или писать код, а в том, что большую часть времени они всё ещё заперты в экране. Попросите их спланировать, найти информацию, написать скрипт, дернуть API — они сильны. Но попросите их реально толкнуть манипулятор, записать демонстрацию робота, прогнать симуляцию и развернуть политику на реальном железе — и они сразу упираются в кучу инженерного клея.
Сейчас этот разрыв начинает закрываться.
В экосистеме AWS открыт исходный код Strands Robots SDK, который оборачивает возможности Hugging Face LeRobot, симуляции MuJoCo, инференса политик, мультироботной mesh-сети Zenoh и другие в Strands AgentTools. Официальная формулировка предельно прямая: strands-robots gives a Strands Agent hands.
Если перевести на человеческий: у ИИ-агентов начали отрастать руки и ноги.
Что именно представили на этот раз
Проект называется strands-robots, код лежит в strands-labs/robots, пакет на PyPI тоже называется strands-robots. Его ключевая возможность — фабрика Robot(), превращающая симулированного или реального робота в инструмент, которым Strands-агент может пользоваться.
Минимальный пример очень показателен:
from strands import Agent
from strands_robots import Robot
robot = Robot(“so100”)
agent = Agent(tools=[robot])
agent(“Pick up the red cube”)
По умолчанию Robot(“so100”) запускает симуляцию MuJoCo — не нужны ни GPU, ни реальное железо. Чтобы переключиться на физического робота, нужно явно указать mode=”real”:
robot = Robot(“so100″, mode=”real”, port=”/dev/ttyACM0″)
Такой дизайн по умолчанию очень важен: сначала симуляция, потом реальная машина. Одна случайная фраза на естественном языке не приведёт в движение настоящие сервоприводы.
Что такое LeRobot: экосистема Hugging Face в мире робототехники
Чтобы понять Strands Robots, нужно сначала понять LeRobot.
LeRobot — это библиотека обучения реальных роботов от Hugging Face. Её цель — унифицировать модели, датасеты и инструменты робототехники в экосистеме PyTorch и снизить порог входа в робототехнику.
Официальная позиция ясна:
- предоставлять модели, датасеты и инструменты для реальной робототехники
- давать большему числу людей доступ к робототехническим датасетам и предобученным моделям
- охватывать имитационное обучение, обучение с подкреплением, VLA-модели
- поддерживать как реальное железо, так и симуляционные среды
Одна из важнейших вещей в LeRobot — формат LeRobotDataset. Он организует робототехнические данные — видео, состояния, действия — в стандартную структуру, обычно MP4 или изображения плюс Parquet. Благодаря этому данные можно загружать на Hugging Face Hub и переиспользовать в цепочках обучения, оценки и развертывания.
Иными словами, LeRobot даёт робототехническому обучению «фундамент из данных и моделей».
Но фундамент — это ещё не полный рабочий процесс. На практике нужно ещё разбираться с симуляцией, портами железа, камерами, калибровкой, инференсом политик, координацией нескольких роботов и аварийной остановкой. Именно этот слой и закрывает Strands Robots.
Strands Robots не заменяет, а упаковывает

У многих, кто увидит Strands + LeRobot, первая реакция будет: не новый ли это робототехнический фреймворк?
Нет.
Это скорее слой-обёртка, превращающий робототехническую цепочку в инструменты, доступные агенту. LeRobot по-прежнему отвечает за большую часть данных, политик и аппаратных интерфейсов; MuJoCo — за симуляцию; GR00T, ACT, Pi0, SmolVLA, Diffusion — остаются источниками политик; Zenoh — за peer-to-peer mesh.
Ценность Strands Robots в том, что он сжимает все эти разрозненные компоненты в один рабочий процесс агента:
- запись демонстрационных данных
- запись в LeRobotDataset
- загрузка или переиспользование данных Hugging Face Hub
- запуск симуляции в MuJoCo
- вызов локальных или удалённых политик
- развертывание на реальных роботах
- координация нескольких роботов через mesh
- широковещательный E-STOP при необходимости
Раньше для этих шагов приходилось писать кучу клеевого кода. Теперь они могут стать AgentTools и управляться одним Strands-агентом.
Цепочка в одном предложении: от естественного языка к механическому движению
Официальная схема цепочки очень наглядна:
инструкция на естественном языке → Strands-агент → инструмент Robot → Policy Provider → Action Chunk → симуляция MuJoCo или реальное железо → обратный поток observations
Ключевой момент цепочки: агент не управляет моторами напрямую, а через policy provider генерирует action chunk, который затем исполняется симуляцией или железом.
Поддерживаемые источники политик включают:
- NVIDIA GR00T
- LeRobot ACT
- Pi0 / Pi0.5
- SmolVLA
- Diffusion Policy
- классические планировщики движения (motion planner)
- MPC
- скриптовые контроллеры (scripted controller)
- политики-заглушки (mock policy)
Это значит, что Strands Robots не ставит на какую-то одну модель, а прячет разные политики за единым абстрактным интерфейсом. Сегодня вы можете проверить процесс на mock policy, завтра переключиться на локальную модель LeRobot, послезавтра подключить инференс-сервис GR00T.
Более 50 роботов, 8 больших категорий
Официально Strands Robots перечисляет более 50 роботов в 8 категориях:
- манипуляторы: SO100, SO101, Koch, OMX, Panda, UR5e, xArm7 и другие
- гуманоиды: Unitree G1, Unitree H1, Reachy2, Talos, Cassie и другие
- мобильные роботы: Spot, Unitree Go2, Stretch, LeKiwi, EarthRover и другие
- захватные руки (dexterous hands): Shadow Hand, Allegro Hand, Leap Hand, Robotiq 2F85 и другие
- двурукие системы: ALOHA, bi_openarm, Trossen WXAI
- летательные аппараты: Crazyflie, Skydio X2
- эмоциональные/интерактивные роботы: Reachy Mini
- мобильные манипуляционные роботы: Google Robot
Часть роботов может управляться на реальном железе через LeRobot: SO100, SO101, Koch, OMX, HopeJR, ALOHA, bi_openarm, Reachy2, Unitree G1, LeKiwi, EarthRover.
Что важнее: все роботы доступны в симуляции. Для разработчика это значит, что можно сначала дёшево прогнать процесс в симуляции и лишь потом решать, покупать ли железо.
Mesh-координация нескольких роботов + аварийная остановка
Мультироботность и безопасность управления — вопросы, которые невозможно обойти, подключая агента к физическому миру.
В Strands Robots встроена mesh-сеть Zenoh. Каждый робот автоматически становится пиром: можно взаимодействовать с другим роботом через tell(), рассылать команды через broadcast() и экстренно останавливаться через E-STOP.
Mesh можно мостить в AWS IoT Core, а через плагин device-connect — разворачивать более продвинутые device-aware сети устройств.
Подход к безопасности тоже прописан чётко:
- по умолчанию симуляция; переключение режима требует явного mode=”real”
- три отдельных действия-инструмента: состояние, исполнение, остановка
- E-STOP независим от обычного потока управления
- перед реальными действиями — прерывание на подтверждение человеком
В промышленных сценариях это не опциональные настройки. Убери хоть одну — возможна авария.
Терминологическое уточнение: кто это сделал
Интеграцию открыла AWS (Apache 2.0), публикация вышла в блоге hugggingface.co. Strands — это опенсорсный Agent SDK от AWS (Apache 2.0) с поддержкой Python и TypeScript и полноценным агентским фреймворком. LeRobot — проект Hugging Face. Их пересечение — это и есть strands-robots.
Как начать
Если хотите просто попробовать симуляцию, начните с extra MuJoCo:
uv pip install “strands-robots[sim-mujoco]”
Если нужно реальное железо и локальные политики LeRobot:
uv pip install “strands-robots[sim-mujoco,lerobot]”
Если хотите поставить всё сразу:
uv pip install “strands-robots[all]”
Базовая установка лёгкая: только numpy, opencv-headless, Pillow и тому подобное. Разные возможности ставятся отдельными extra: sim-mujoco — для симуляции, lerobot — для реального железа и локальных политик, groot-service — для инференса NVIDIA GR00T, mesh — для мультироботной сети Zenoh, mesh-iot — для сценариев с AWS IoT Core fleet.
Такое разделение довольно прагматично: зависимости не валятся на вас все разом.
Не переоценивайте: это не «embodied-интеллект в один клик»
Здесь нужно вылить ведро холодной воды.
Strands Robots — это круто, но не кнопка, превращающая ИИ в робототехника.
С реальным железом всё ещё придётся столкнуться с:
- определением портов
- связью с сервоприводами
- настройкой камер
- калибровкой манипуляторов
- согласованием схем данных
- доступностью чекпоинтов
- GPU / Docker / инференс-сервисы
- разрывом sim2real между симуляцией и реальностью
- границами безопасности мультироботных систем
Например, локальному инференсу GR00T могут понадобиться NVIDIA GPU, Docker, чекпоинты и правильная конфигурация данных. А физический SO-101 не начнёт сам ловить красный кубик от одного mode=”real” — всё ещё нужны камера, калибровка, политика и безопасная среда.
Настоящая ценность: меньше клеевого кода
Главное в этом релизе — не внезапный скачок возможностей моделей, а то, что инженерная цепочка наконец-то сомкнулась.
Самая больная точка разработки роботов обычно не научные статьи, а то, что системы не разговаривают друг с другом:
- формат датасетов — один
- скрипты симуляции — одни
- управление реальным железом — своё
- инференс политик — своё
- связь между роботами — своё
- и безопасная остановка — опять своё
Strands Robots сводит всё это в AgentTools.
Это очень практично и для исследовательских, и для стартап-команд. Можно сначала гонять симуляцию SO100 на локальном ноутбуке — без железа, без GPU, без прав на Hub; а после отладки процесса постепенно подключать реальный SO101, GR00T, чекпоинты Hugging Face и мультироботный mesh.
Бюджет и риски высвобождаются поэтапно, а не давятся разом в первый же день — железо, данные, обучение, деплой.
Почему это важно для агентов
Инструменты агентов раньше были в основном цифровыми: файлы, браузер, базы данных, API, терминал, интерпретатор кода.
Strands Robots выталкивает границу инструментов в физический мир: роботы, камеры, сервоприводы, симуляционные среды, политики действий, межмашинная связь.
Это значит, что спектр возможностей агентов начинает расширяться от «обработки информации» к «физическому исполнению».
Конечно, к физическому исполнению нужно подходить куда осторожнее. В реальном мире нет кнопки отмены: манипулятор, врезавшийся в стол, раздавивший предмет или ударивший человека, не исправится повторным запуском скрипта. Поэтому симуляция по умолчанию, явное включение реального режима, E-STOP и подтверждение человеком — это, наоборот, признак зрелости проекта.
Отношения с ROS

Кто-то спросит: это попытка заменить ROS?
В краткосрочной перспективе — нет. ROS — проверенный фундамент робототехнических систем: узлы, топики, сервисы, launch-файлы, экосистема драйверов очень глубоки. Strands Robots — скорее слой оркестрации агентов, ориентированный на «организацию робототехнических задач большой моделью через интерфейс инструментов».
Более вероятная картина будущего: на нижнем уровне по-прежнему ROS, вендорские SDK и контроллеры для железа и сложных робототехнических систем, а агентский уровень через инструменты вроде Strands Robots связывает планирование задач, вызов политик, запись данных, валидацию в симуляции и координацию роботов.
То есть он не отбирает шасси, а забирает вход в верхнеуровневый рабочий процесс.
Итоги
Настоящий смысл связки Strands + LeRobot не в том, что одна фраза делает манипулятор умным, а в том, что у ИИ-агентов появляется стандартный интерфейс инструментов в физический мир.
LeRobot даёт данные, модели и аппаратные интерфейсы для обучения роботов; MuJoCo — безопасную симуляцию; GR00T, ACT, Pi0, SmolVLA, Diffusion — политики; Zenoh mesh — связь между роботами; Strands Robots упаковывает всё это в AgentTools.
В этом его ценность: не революция в один клик, а минус целая гора клеевого кода.
Раньше у ИИ-агентов были мозги и рот — теперь отрастают руки и ноги.
Но прежде чем всерьёз выйти в реальный мир, им понадобятся тормоза, ограждения, подтверждения, симуляции и уйма инженерных деталей.
И это самый честный шаг embodied-интеллекта от презентаций к лабораторному столу.