
하드웨어 제어에 대한 나의 모든 생각을 바꾸게 만든 AI 에이전트 프레임워크! (Part 1)
요약
AWS Strands Labs를 활용하여 자연어로 물리적 로봇을 제어하고 시뮬레이션하는 에이전트 개발 방법을 소개합니다. 강화학습 이론 없이도 AI 에이전트가 하드웨어와 상호작용하며 물리적 행동을 수행할 수 있는 새로운 패러다임을 다룹니다.
핵심 포인트
- AWS Strands Labs를 통한 자연어 기반 로보틱스 제어 가능
- 하드웨어 없이도 로봇 환경을 시뮬레이션할 수 있는 기능 제공
- Python 및 TypeScript를 지원하는 오픈 소스 SDK 활용
- 강화학습 지식 없이도 에이전틱 AI 개발 진입 장벽 완화
Part 1: DeepRacer에서 자연어 로보틱스(Natural Language Robotics)까지
학습 내용
이 2부작 시리즈를 통해 여러분은 AWS Strands Labs가 어떻게 자연어(Natural Language)로 물리적 로봇을 제어하고, 하드웨어 없이 로봇 환경을 시뮬레이션하며, 내장된 검증 기능이 있는 AI 기반 Python 함수를 구축할 수 있게 만드는지 발견하게 될 것입니다. Part 1은 로보틱스 프로젝트(Strands Robots 및 Robots Sim)를 다루며, Part 2에서는 AI 함수(AI Functions)와 실질적인 구현 전략을 탐구합니다.
이 시리즈를 마칠 때쯤이면, 여러분은 물리적 하드웨어를 보유하고 있든 아니면 시뮬레이션에서 실험하고 싶든 관계없이, 실험적인 에이전트 AI (Agentic AI) 개발을 시작하는 방법을 이해하게 될 것입니다.
나의 여정: DeepRacer에서 자연어 로보틱스까지
몇 년 전, AWS Heroes Summit에서 Paxton Hall은 제가 AI/ML 및 물리적 하드웨어에 대해 생각하는 방식을 진정으로 변화시킨 선물을 주었습니다. 바로 AWS DeepRacer 자동차였습니다. 만약 한 번도 만져본 적이 없다면, 이것은 작고 놀라울 정도로 묵직한 소형 자율 주행 차량입니다. 상자를 여는 순간, 저는 이것이 개발자들이 머신러닝 (Machine Learning)과 상호작용하는 방식의 변화를 상징하는 무언가를 들고 있다는 것을 알았습니다. Jupyter notebook을 통해서도, REST API를 통해서도 아닙니다. 제가 훈련시킨 모델을 기반으로 실제 세상에서 움직이는 '물체'를 통해서 말이죠.
저는 그것을 집으로 가져와 즉시 실험을 시작했습니다. 거실에 테이프와 판지 상자를 사용하여 임시 트랙을 만들었습니다. AWS 콘솔에서 강화학습 (Reinforcement Learning) 모델을 훈련시키고, 이를 자동차에 배포한 뒤, 자동차가 자신 있게 제 책꽂이로 돌진하는 것을 지켜보았습니다. 그러고 나서 다시 재훈련시켰습니다. 그러자 자동차는 다시 책꽂이로 돌진했지만, 이전보다 약간 더 느리게 움직였습니다. 저는 이것을 진전이라고 해석하기로 했습니다. 몇 번의 반복(그리고 제 노트북 가방을 아슬아슬하게 피한 사건) 끝에, 자동차는 실제로 트랙을 주행했습니다. 완벽하지는 않았습니다. 하지만 그것은 '나의 것'이었습니다. 제가 구축한 모델이, 제가 손에 쥘 수 있는 하드웨어 위에서 실행되며, 물리적 세계에서 결정을 내리고 있었습니다.
그 경험은 씨앗을 심었습니다. 만약 "AI 모델"과 "물리적 행동" 사이의 간극을 훨씬 더 좁힐 수 있다면 어떨까요? 시작하기 위해서 강화학습 (Reinforcement Learning) 이론, 보상 함수 (Reward Functions), 그리고 궤적 기하학 (Track Geometry)을 이해할 필요가 없다면 어떨까요? 만약 그저... 로봇에게 무엇을 할지 말하기만 하면 된다면 어떨까요?
그것이 바로 AWS가 2026년 2월 23일에 출시한 것이며, 그 이름은 **Strands Labs**입니다.
Strands 이해하기: 기초
만약 여러분이 **Strands Agents SDK**를 팔로우하고 있지 않았다면, 요약해 드리겠습니다. AWS는 2025년 5월에 이를 오픈 소스로 공개했으며, 이후 1,400만 회 이상 다운로드되었습니다. Python과 TypeScript 모두에서 사용할 수 있는 이 SDK는 AI 에이전트를 구축하기 위해 "모델 주도적 (model-driven)" 접근 방식을 취합니다. 사용자가 정교한 오케스트레이션 (Orchestration) 로직을 작성하는 대신, 모델 자체가 에이전트 루프 (Agent Loop)를 구동합니다. 이는 단순하고, 확장 가능하며, 빠른 프로토타입부터 엔터프라이즈 프로덕션 워크로드에 이르기까지 실전 테스트를 거쳤습니다.
Strands Labs는 이 생태계의 실험적인 부문입니다. 프로덕션 출시 주기를 걱정할 필요가 없는 R&D 연구소라고 생각하면 됩니다. 이곳은 AWS 팀(그리고 이제는 아마존의 모든 개발 팀)이 해당 실험을 메인 SDK와 결합하지 않고도, 명확한 사용 사례, 기능적 코드 및 테스트를 갖춘 최첨단 실험을 출시할 수 있는 별도의 GitHub 조직입니다.
출시와 동시에 세 개의 프로젝트가 공개되었습니다. 이 포스트에서는 로보틱스에 집중된 두 개의 프로젝트를 살펴보겠습니다. Part 2에서는 AI Functions와 실질적인 구현 전략을 다룰 예정입니다.
프로젝트 1: Strands Robots — "바구니에 사과를 담으세요"
이 프로젝트는 제가 스크롤을 멈추게 만들었으며, 즉시 저의 DeepRacer 시절을 떠올리게 했습니다.
DeepRacer의 경우, 피드백 루프는 '모델 학습(train model) → 배포(deploy) → 자동차 관찰(watch car) → 재학습(retrain)'의 과정이었습니다. 강력하긴 했지만, "자동차에게 무엇을 할지 말하는" 부분은 전적으로 보상 함수 (reward function)에 인코딩되어 있었습니다. 단순히 "차선 중앙을 유지하세요"라고 말할 수 없었습니다. 그것이 무엇을 의미하는지 수학적으로 정의 (mathematically define) 해야만 했습니다.
Strands Robots는 이 방식을 완전히 뒤집었습니다. 다음은 실제 물리적인 로봇 팔을 제어하는 전체 코드입니다:
from strands import Agent
from strands_robots import Robot
...
그게 전부입니다. 당신은 모터 제어 코드를 작성하는 것이 아닙니다. 서보 위치 (servo positions)를 관리하는 것도 아닙니다. 당신은 에이전트 (agent)에게 원하는 바를 평이한 영어로 말하기만 하면 되며, 프레임워크가 나머지를 알아서 처리합니다.
DeepRacer와의 평행 이론: DeepRacer를 사용할 때는 "트랙 위에 머무르세요"라는 단 한 문장으로 설명할 수 있는 동작을 구현하기 위해 하이퍼파라미터 (hyperparameters)와 보상 함수를 튜닝하는 데 수 시간을 보냈습니다. Strands Robots에서는 그 한 문장이 바로 지시 사항 (instruction) 입니다. 인간의 의도와 기계의 행동 사이의 간극이 극적으로 좁혀졌습니다.
아키텍처: 시스템 1과 시스템 2의 만남
이 방식이 실제로 영리한 부분은 다음과 같습니다. 이 부분은 제가 그 가치를 이해하는 데 잠시 시간이 걸렸던 대목입니다.
이 시스템은 저수준의 물리적 제어 (low-level physical control)를 위해 시각-언어-행동 (Vision-Language-Action, VLA) 모델인 NVIDIA GR00T를 사용합니다. GR00T는 카메라 이미지, 로봇 관절 위치 (joint positions), 그리고 언어 지시 사항을 입력으로 받아 목표 관절 위치를 직접 출력합니다. 이는 NVIDIA Jetson 엣지 (edge) 하드웨어에서 실행되는데, 이는 밀리초 단위의 물리적 제어가 클라우드가 아닌 엣지 (edge) 에서 발생함을 의미합니다.
하지만 로봇이 더 깊은 추론을 요구하는 상황, 즉 다단계 계획 (multi-step planning), 과거 패턴 매칭 (historical pattern matching), 혹은 빠른 반사 신경 이상의 무언가가 필요한 상황에 직면하면, Amazon Bedrock 모델과 같은 클라우드 기반의 LLM (Large Language Models)에 작업을 위임합니다.
이는 카너먼 (Kahneman)의 시스템 1 및 시스템 2 사고 (System 1 and System 2 thinking) 모델에 아름답게 매칭되는 이중 시스템 아키텍처 (dual-system architecture)입니다.
- System 1 (GR00T VLA): 빠르고 자동적이며, 센서-운동적 (sensorimotor)입니다. 40–160ms의 추론 지연 시간 (inference latency)을 가집니다. "그냥 블록을 집어 들어"와 같은 부분을 처리합니다.
- System 2 (Strands Agent / Claude): 느리고 신중하며, 추론적 (reasoning)입니다. "잠깐, 블록이 컵 뒤에 있네, 먼저 컵을 옮겨야겠어"와 같은 상황을 처리합니다.
저는 APJC 지역 전역에서 Bedrock과 Strands를 사용하여 AI 에이전트를 구축하는 워크숍을 진행해 왔는데, 개발자들에게 에이전트 아키텍처를 설명하기 위해 이보다 더 깔끔한 실세계 비유를 만난 적이 없습니다.
지원되는 하드웨어 (Supported Hardware)
지원되는 하드웨어 목록은 이미 인상적입니다:
- SO-100/SO-101 데스크톱 암 (desktop arms)
- Fourier GR-1 휴머노이드 암 (humanoid arms)
- Bimanual Panda
- Unitree G1
하드웨어 추상화 (hardware abstraction)를 위해 Hugging Face의 LeRobot과 통합되어 있어, 특정 벤더의 생태계에 종속되지 않습니다.
시작하기 (Getting Started)
사전 요구 사항 (Prerequisites):
- Python 3.12+
- NVIDIA Jetson 장치 (엣지 추론 (edge inference)용)
- SO-101 로봇 암 (또는 기타 지원되는 하드웨어)
- Bedrock 접근 권한이 있는 AWS 계정
설치 (Installation):
pip install strands-robots
빠른 시작 가이드를 통해 카메라 설정, GR00T 추론 서비스 초기화, 그리고 첫 번째 자연어 로봇 제어 과정을 안내받을 수 있습니다.
프로젝트 2: Strands Robots Sim — 빠르게 실패하고, 안전하게 실패하라 (Fail Fast, Fail Safely)
여기 제가 DeepRacer 시절부터 아주 잘 알고 있는 문제가 있습니다. 바로 하드웨어는 자비가 없다는 점입니다. 새로운 보상 함수 (reward function)를 테스트하고 싶을 때마다, 저는 학습 작업이 완료되기를 기다리고, 차량에 배포하고, 실제로 작동하는 것을 물리적으로 지켜봐야 했습니다. 만약 무언가 잘못된다면 — 그리고 종종 그랬습니다 — 저는 차량을 들어 올려 트랙 위에 다시 배치하고 처음부터 다시 시작해야 했습니다.
Strands Robots Sim은 완전한 3D 물리 기반 시뮬레이션 환경을 제공함으로써 이 문제를 해결합니다. 다음과 같은 기능을 제공합니다:
- Libero 벤치마크 환경 (공간 추론, 객체 조작, 목표 조건부 작업 (goal-conditioned tasks)을 아우르는 90개 이상의 작업)
- ZMQ를 통한 GR00T 정책 (policy) 통합
- 에피소드의 MP4 비디오 녹화
- 다양한 사용 사례를 위한 두 가지 실행 모드

두 가지 실행 모드 (Two Execution Modes)
SimEnv 모드는 "실행 후 망각 (fire and forget)" 방식입니다. 에이전트에게 작업을 부여하면 작업이 완료될 때까지 실행되고, 사용자는 최종 결과만 받게 됩니다. 벤치마킹 (benchmarking) 및 잘 정의된 작업에 매우 적합합니다.
SteppedSimEnv 모드는 연구 측면에서 매우 흥미로운 부분입니다. 에이전트는 N 스텝마다 시뮬레이션 (simulation)을 관찰하고, 카메라 피드 (camera feeds)를 확인하며, 관찰한 내용을 바탕으로 지침을 조정할 수 있습니다. 속도는 더 느리지만, **오류 복구 기능이 포함된 시각적 접지 (visual grounding with error recovery)**라는 강력한 기능을 가능하게 합니다.
from strands import Agent
from strands_robots_sim import SteppedSimEnv, gr00t_inference
...
이제 에이전트는 매 10 스텝마다 카메라 이미지를 관찰하여 작업이 올바르게 진행되고 있는지 결정하고, 문제가 발생하면 새로운 지침을 내릴 수 있습니다. 이것이 바로 계층적 계획 (hierarchical planning)의 실제 작동 방식이며, 과거에는 이를 구현하기 위해 박사 학위 논문 수준의 연구가 필요했던 영역입니다.
성능 투명성 (Performance Transparency)
팀의 투명성 측면에서 높게 평가하는 점 중 하나는 성능 오버헤드 (performance overhead) 수치를 공개했다는 것입니다. SimEnv는 약 58초의 오버헤드(주로 LLM 호출 지연 시간)를 추가합니다. SteppedSimEnv는 반복 횟수에 따라 확장되며, LLM 호출당 35초 정도를 예상해야 합니다. 이러한 비용은 숨겨진 비용이 아니라 문서화되어 있으며, 팀은 최적화 (optimization) 팁도 함께 제공합니다.
확장성 (Extensibility)
이 아키텍처 (architecture)는 확장성을 고려하여 설계되었습니다. Policy 추상 기본 클래스 (abstract base class)가 존재하며, 현재는 GR00T와 모의 정책 (mock policy)만 구현되어 있지만, 이 프레임워크는 ACT, SmolVLA, 그리고 커스텀 VLA 제공업체를 지원하도록 명시적으로 설계되었습니다. 커뮤니티가 이곳에서 무언가를 구축하도록 초대되고 있습니다.
시작하기 (Getting Started)
사전 요구 사항 (Prerequisites):
- Python 3.12+
- Docker (Isaac-GR00T 컨테이너용)
- 물리적 하드웨어 불필요
설치 (Installation):
pip install strands-robots[sim]
빠른 시작 (Quick Start):
python examples/libero_example.py
먼저 모의 정책 (mock policy)으로 시작하세요 (의존성 없음, Docker 불필요). 에이전트가 시뮬레이션 (simulation) 내에서 작업을 완료하는 과정을 지켜보세요. 그 후 더 깊이 파고들 준비가 되면 GR00T로 교체하세요.
다음 단계
Part 2에서는 다음 내용을 다룰 예정입니다:
- AI Functions (AI 함수): 런타임 검증 (runtime validation)과 함께 자연어로 설명하여 Python 함수를 작성하는 방법
- Strands Labs의 세 가지 프로젝트 모두에 대한 실질적인 구현 전략 (practical implementation strategies)
- 커뮤니티 기여 기회 (community contribution opportunities)
- 사용자의 경험 수준에 따른 시작 가이드 추천
지금 바로 실행해보세요
실험할 준비가 되셨나요? 다음 단계를 따라 하세요:
- 하드웨어가 없나요?
strands-labs/robots-sim으로 시작하세요 — 리포지토리 (repo)를 클론(clone)하고 모의 정책 (mock policy)을 사용하여python examples/libero_example.py를 실행하세요. - 로봇 팔이 있나요? 바로
strands-labs/robots로 이동하여 빠른 시작 가이드를 따르세요. - 기여하고 싶나요? 모든 리포지토리는 Apache-2.0 라이선스이며 이슈 (issue)와 PR (Pull Request)을 받고 있습니다.
리소스 (Resources):
- Strands Labs GitHub Organization
- Strands Robots Repository
- Strands Robots Sim Repository
- AWS Strands Agents SDK
저자 소개
Vishal은 APJC 지역을 기반으로 활동하는 AWS Developer Advocate입니다. 그는 핸즈온 워크숍 (hands-on workshops), 기술 콘텐츠 제작, 강연을 통해 개발자들에게 역량을 부여합니다. 그는 개발자들이 Amazon Bedrock 및 Strands를 사용하여 AI 에이전트 (AI agents)를 구축하도록 도우며, 지역 전역의 컨퍼런스, 밋업 (meetups), 기술 세션을 통해 개발자 커뮤니티에 적극적으로 기여하고 있습니다. DeepRacer 차량을 가구에 충돌시키지 않을 때는 클라우드 보안, DevOps 및 로보틱스 (robotics) 분야에서 AI의 혁신적인 응용 사례를 탐구합니다.
AI Functions와 실질적인 구현 전략을 깊이 있게 다룰 Part 2를 기대해 주세요!
면책 조항 (Disclaimer): 이 블로그에 표현된 모든 생각과 의견은 저 개인의 것이며, AWS 또는 Amazon의 견해를 대변하지 않습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기