AI 에이전트에 손발이 돋다: Strands+LeRobot이 로봇을 잇다, Natural Language로 실기기를 직접 구동

최근 2년간 AI 에이전트의 가장 큰 문제는 무엇일까?
대화를 못 해서도, 코드를 못 짜서도 아닙니다. 대부분의 시간을 여전히 화면 안에 갇혀 있기 때문입니다. 계획 세우기, 검색, 스크립트 작성, API 호출은 강하지만, 실제로 로봇팔을 밀어내거나, 로봇 시범 동작을 녹화하거나, 시뮬레이션을 한 바퀴 돌리고, 그 정책을 실제 하드웨어에 배포하라고 하면 곧바로 수많은 엔지니어링 접착제에 부딪힙니다.
이제 이 단절점이 메워지기 시작했습니다.
AWS 생태계의 Strands Robots SDK가 오픈소스로 공개되어 Hugging Face LeRobot, MuJoCo 시뮬레이션, 정책 추론, Zenoh 다중 로봇 mesh 같은 능력을 Strands AgentTools로 감쌌습니다. 공식 한마디가 아주 직설적입니다: strands-robots gives a Strands Agent hands.
사람 말로 바꾸면 이렇습니다: AI 에이전트에 손발이 돋기 시작했다는 뜻입니다.
이번에 대체 무엇이 공개되었나
프로젝트 이름은 strands-robots이고, 코드는 strands-labs/robots에 있으며, PyPI 패키지 이름도 strands-robots입니다. 핵심 기능은 Robot() 팩토리 하나로 시뮬레이션 로봇이나 실제 로봇을 Strands Agent가 호출할 수 있는 도구로 만드는 것입니다.
최소 예제가 아주 상징적입니다:
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 Agent가 스케줄링할 수 있습니다.
한 줄로 잇는 파이프라인: 자연어에서 기계 동작까지
공식이 제시한 파이프라인은 직관적입니다:
자연어 지시 → Strands Agent → Robot 도구 → Policy Provider → Action Chunk → MuJoCo 시뮬레이션 또는 실제 하드웨어 → observation 환류
이 파이프라인의 핵심은 에이전트가 모터를 직접 제어하지 않고, 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 등
- 덱스트러스 핸드: 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에는 Zenoh mesh 네트워크가 내장되어 있습니다. 각 로봇은 자동으로 peer가 되고, tell()로 다른 로봇과 상호작용하고, broadcast()로 지시를 방송하고, E-STOP으로 비상정지할 수 있습니다.
Mesh는 AWS IoT Core로 브리지할 수도 있고, device-connect 플러그인으로 더 고급 장치 감지 네트워크를 구성할 수도 있습니다.
안전 설계도 명확합니다:
- 기본은 시뮬레이션, 모드 전환은 반드시 mode=”real”로 명시 선언
- 상태, 실행, 정지 세 가지 도구 동작 분리
- E-STOP은 정상 제어 흐름과 독립
- 실제 동작 전 사람 승인 인터럽트
산업 현장에서는 이런 것들이 선택 사항이 아닙니다. 하나라도 빠지면 사고로 이어질 수 있습니다.
용어 정리: 누가 이 일을 했나
이 통합 방안은 AWS가 오픈소스(Apache 2.0)로 공개했으며 hugggingface.co 블로그에 실렸습니다. Strands 자체는 AWS가 오픈소스(Apache 2.0)로 내놓은 에이전트 SDK로, Python과 TypeScript를 지원하며 완전한 에이전트 프레임워크를 갖추고 있습니다. LeRobot은 Hugging Face 프로젝트입니다. 둘의 교집합이 바로 strands-robots입니다.
시작하는 방법
시뮬레이션만 체험해 볼 거라면 MuJoCo extra부터 추천합니다:
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 플릿 시나리오용입니다.
이런 분할 방식은 꽤 실용적이라, 처음부터 모든 의존성을 채워 넣지 않습니다.
오해 금지: 이건 '원클릭 구현지능'이 아니다
여기서 반드시 찬물 한 그릇을 끼얹어야 합니다.
Strands Robots은 멋있지만, 클릭 한 번으로 AI를 로봇 전문가로 바꿔주지는 않습니다.
실제 하드웨어에서는 여전히 다음을 직면해야 합니다:
- 포트 식별
- 서보 통신
- 카메라 설정
- 로봇팔 캘리브레이션
- 데이터 스키마 정렬
- checkpoint 가용성
- GPU / Docker / 추론 서비스
- 시뮬레이션과 현실 사이 sim2real 격차
- 다중 로봇 안전 경계
예를 들어 GR00T 로컬 추론에는 NVIDIA GPU, Docker, checkpoint, 올바른 데이터 설정이 필요할 수 있습니다. 실물 SO-101도 mode=”real”이라고 적는다고 자동으로 빨간 큐브를 집어 주지 않고, 여전히 카메라, 캘리브레이션, 정책, 안전한 환경이 필요합니다.
진짜 가치: 접착제 코드를 덜 쓰는 것
이번에 주목할 만한 것은 모델 능력이 갑자기 폭증한 것이 아니라 엔지니어링 파이프라인이 연결된 점입니다.
로봇 개발에서 가장 아픈 곳은 흔히 알고리즘 논문이 아니라 시스템들이 서로 말이 안 통한다는 점입니다:
- 데이터셋 포맷이 하나
- 시뮬레이션 스크립트가 하나
- 실기기 제어가 하나
- 정책 추론이 하나
- 다중 로봇 통신이 하나
- 안전 정지 또 하나
Strands Robots은 이들을 AgentTools로 수렴시켰습니다.
이는 연구팀과 창업팀 모두에게 실질적입니다. 노트북에서 SO100 시뮬레이션을 먼저 돌릴 수 있고, 하드웨어를 사지 않고, GPU를 쓰지 않고, Hub 권한을 신청하지 않아도 됩니다. 흐름이 확인되면 실물 SO101, GR00T, Hugging Face checkpoint, 다중 로봇 mesh를 단계적으로 도입하면 됩니다.
예산과 리스크를 단계적으로 풀 수 있고, 첫날부터 하드웨어, 데이터, 학습, 배포를 전부 얹을 필요가 없습니다.
왜 이것이 에이전트에게 중요한가
과거 에이전트의 도구는 대부분 디지털 세계의 도구였습니다: 파일, 브라우저, 데이터베이스, API, 터미널, 코드 인터프리터.
Strands Robots은 도구의 경계를 물리 세계로 밀어냈습니다: 로봇, 카메라, 서보, 시뮬레이션 환경, 동작 정책, 다중 로봇 통신.
이는 에이전트의 능력 범위가 '정보 처리'에서 '물리 실행'으로 확장되기 시작했음을 의미합니다.
물론 물리 실행은 더 신중해야 합니다. 현실 세계에는 되돌리기 키가 없고, 로봇팔이 책상을 부딪히고, 물건을 부수고, 사람을 치는 일은 스크립트를 다시 한 번 돌린다고 해결되지 않습니다. 그래서 기본 시뮬레이션, 명시적 실기기, E-STOP, 승인 인터럽트 같은 안전 설계야말로 프로젝트가 성숙했다는 신호입니다.
ROS와의 관계

묻는 사람이 있을 것입니다: 이게 ROS를 대체하려는 건가?
단기적으로는 아닙니다. ROS는 로봇 시스템 엔지니어링의 오랜 기반으로, 노드, topic, service, launch, driver 생태계가 매우 깊습니다. Strands Robots은 에이전트 오케스트레이션 계층에 가깝고, '대형 모델이 도구 인터페이스를 통해 로봇 작업을 조직하게 한다'는 데 초점을 맞춥니다.
미래에 더 가능성이 높은 구도는 이렇습니다: 최하층 하드웨어와 복잡한 로봇 시스템은 여전히 ROS/벤더 SDK/컨트롤러가 담당하고, 에이전트 계층은 Strands Robots 같은 도구로 작업 계획, 정책 호출, 데이터 기록, 시뮬레이션 검증, 다중 로봇 협조를 잇습니다.
즉, 이는 섀시를 뺏는 것이 아니라 상위 워크플로우 진입점을 뺏는 것입니다.
정리
Strands + LeRobot이 이번에 로봇 파이프라인을 연결한 진짜 의미는 명령 한마디로 로봇팔을 즉시 똑똑하게 만드는 데 있지 않고, AI 에이전트가 물리 세계로 통하는 표준 도구 인터페이스를 갖추기 시작했다는 데 있습니다.
LeRobot은 로봇 학습의 데이터, 모델, 하드웨어 인터페이스를 제공하고; MuJoCo는 안전한 시뮬레이션을 제공하며; GR00T, ACT, Pi0, SmolVLA, Diffusion 등이 정책을 제공하고; Zenoh mesh가 다중 로봇 통신을 제공합니다; Strands Robots은 이 모두를 AgentTools로 감쌌습니다.
이것이 그 가치입니다: 원클릭 혁명이 아니라, 한더미의 접착제 코드를 덜 쓰게 해주는 것입니다.
AI 에이전트는 과거에 뇌와 입만 있었지만, 이제 손발이 돋기 시작했습니다.
하지만 진정으로 현실 세계에 들어가기 전에, 브레이크, 가드레일, 승인, 시뮬레이션, 그리고 수많은 엔지니어링 디테일이 아직 필요합니다.
이것이야말로 구현지능이 PPT에서 실험대로 넘어가는 가장 진실한 한 걸음입니다.