AgentStudio Kiosk Agent로 이해하는 VLA 에이전트 시스템
핵심 요약
AgentStudio의 Kiosk Agent는 화면을 보고 이해한 뒤, 직접 터치·입력까지 수행하는 안드로이드 키오스크 자동 조작 AI 시스템이다.
Vision-Language-Action(VLA) 구조와 LangGraph 기반 상태 머신을 사용해, 반복적으로 화면을 관찰하고 추론하고 행동하며, 필요할 때는 인간에게 도움을 요청하는 방식으로 동작한다.
Gemini, GPT 등 다양한 VLM을 선택해 성능·비용·속도에 맞는 조합으로 커스터마이징할 수 있다.
AgentStudio와 Kiosk Agent의 목표
AgentStudio 프로젝트의 큰 목표는 세대 간 디지털 격차를 AI로 줄이고, 키오스크 같은 복잡한 UI를 누구나 쉽게 사용할 수 있도록 돕는 것이다.
Kiosk Agent는 특히 안드로이드 기반 키오스크 앱을 자동으로 조작하는 데 집중되어 있고, 사용자가 직접 눌러야 할 버튼을 대신 찾아 누르고, 글자를 대신 입력해주는 "디지털 비서" 역할을 한다.
즉, 사용자가 "버거 세트 하나 주문해줘"라고 말하면, 에이전트는 화면을 읽고 판단해 키오스크 앱을 실제로 조작해 주문을 끝내는 것을 목표로 한다.
Vision-Language-Action(VLA) 패턴 이해하기
VLA는 말 그대로 "보는 것(Vision) → 이해하는 것(Language) → 행동하는 것(Action)"의 반복 루프다.
먼저 에이전트는 현재 키오스크 화면을 캡처해 시각 정보를 얻는다.
그다음 비전-언어 모델(VLM)이 이 화면을 읽고, "지금은 메뉴 선택 단계이며, 오른쪽 아래의 '다음' 버튼을 눌러야 한다"와 같은 자연어 수준의 판단을 내린다.
마지막으로 이 판단을 실제 행동(좌표 클릭, 스와이프, 텍스트 입력 등)으로 변환해 기기에서 실행하고, 작업이 끝났는지 다시 확인한 뒤 필요하면 다음 루프를 이어간다.
이 방식 덕분에 에이전트는 "정해진 화면 구조"에 의존하지 않고, 인간처럼 화면을 보고 그때그때 상황에 맞게 조작할 수 있다.
LangGraph 기반 상태 머신과 Human-in-the-Loop
Kiosk Agent의 내부 로직은 LangGraph로 상태 머신 형태로 관리된다.
일반적인 흐름은 VLM 노드에서 화면을 분석하고, Execute 노드에서 실제 ADB 명령을 실행한 뒤, Router 노드에서 다음 행동을 결정하는 구조다.
Router는 세 가지 선택지를 가진다. 다시 VLM으로 돌아가 반복할지(LOOP), 사람에게 물어볼지(INTERRUPT), 아니면 작업을 끝낼지(FINISH)다.
사람에게 묻는 Human Node가 있는 것이 특징인데, 메뉴 취향 선택처럼 "정답이 한 가지가 아닌 문제"에서는 사용자에게 질문을 던져 Human-in-the-Loop(HITL)를 구현한다.
예를 들어, "매운맛/순한맛 중 어떤 걸 선택할까요?"처럼 에이전트가 주관적인 결정을 사람에게 위임하는 방식이다.
지원 모델과 설정 전략
AgentStudio는 여러 VLM을 선택적으로 사용할 수 있도록 설계되어 있다.
현재는 Google의 gemini-3-flash와 gemini-3-pro, OpenAI의 gpt-4o-mini를 지원하며, 추후 Gemma, Microsoft Fara 등 온디바이스·경량 모델도 계획되어 있다.
gemini-3-flash는 빠르고 비용이 낮아 단순·반복 작업에 유리하고, gemini-3-pro는 복잡한 UI 상황에서 더 깊은 추론이 필요할 때 적합하다.
예를 들어, 화면 구조가 단순한 결제 단계는 flash로, 여러 단계의 메뉴 구성과 설명이 복잡한 초기 주문 단계는 pro로 쓰는 식의 전략도 구상할 수 있다.
모델 선택은 .env 파일에서 다음처럼 간단히 바꿀 수 있다.
MODEL_PROVIDER=gemini
GEMINI_MODEL=gemini-3-flash # gemini-3-flash, gemini-3-pro 중 선택안드로이드 제어: ADB와 액션 명령어
Kiosk Agent는 실제 기기 조작에 ADB(Android Debug Bridge)를 사용한다.
VLM이 "어디를 눌러야 할지, 무엇을 입력해야 할지"를 자연어로 판단하면, 이를 일련의 정형화된 명령으로 바꿔 ADB를 통해 실행한다.
기본적으로 지원하는 액션은 클릭, 입력, 스와이프, 중단 요청, 완료 선언이다.
예를 들면 다음과 같이 개념적으로 정리할 수 있다.
CLICK(x, y): 해당 좌표를 한 번 터치INPUT(text): 현재 포커스된 입력창에 텍스트 입력SWIPE(x1, y1, x2, y2): 위에서 아래로 스크롤하거나, 좌우로 넘길 때 사용INTERRUPT(question): 판단이 애매할 때 사용자에게 질문FINISH: 목표한 작업이 끝났음을 선언
이처럼 추상적인 "행동 계획"이 구체적인 "터치/입력/스와이프"로 변환되는 계층 구조가 이 시스템의 핵심이다.
AG-UI 프로토콜과 실시간 대시보드
AgentStudio는 AG-UI Protocol을 통해 UI와 에이전트 사이를 표준화된 방식으로 연결한다.
서버-센트 이벤트(SSE)를 사용해 에이전트의 상태 변화, 다음 행동 계획, 화면 분석 결과 등을 실시간으로 대시보드에 전송한다.
이를 통해 개발자는 에이전트가 현재 어떤 화면을 보고 무엇을 하려고 하는지, 어디에서 막혔는지, 어떤 루프를 반복 중인지 모니터링할 수 있다.
실시간 대시보드는 디버깅과 데모에 매우 유용하며, "에이전트가 블랙박스처럼 느껴지는 문제"를 완화해 준다.
설치와 실행을 위한 기본 흐름
AgentStudio를 사용하려면 먼저 Python과 Node.js, ADB, 그리고 빠른 패키지 관리자인 uv 환경이 필요하다.
저장소를 클론한 뒤, uv venv로 가상환경을 만들고 활성화하고, uv pip install -e backend/로 백엔드 의존성을 설치한다.
git clone https://github.com/Pseudo-Lab/Agent_Studio.git
cd Agent_Studio
uv venv .venv
source .venv/bin/activate
uv pip install -e backend/그 다음 .env.example를 복사해 .env를 만들고, Google API 키 및 모델 설정 등을 입력하면 기본 준비가 끝난다.
cp .env.example .env
# .env 파일 열어서 GOOGLE_API_KEY 등 수정이 과정을 마치면, VLA 에이전트를 실제 안드로이드 기기나 에뮬레이터에 연결해 테스트할 수 있는 기반이 갖춰진다.
앞으로의 확장 계획
현재 버전(v1.0.0)은 LangGraph 기반 VLA 루프, Gemini 3 지원, 계획(Planning) 모드, HITL, 실시간 대시보드를 포함해 "기본 동작 프레임"을 완성한 상태다.
다음 버전(v1.1.0)에서는 구글 Gemma 같은 경량·온디바이스 모델 도입, Microsoft Semantic Kernel 및 Azure AI Agent Service 연계, Google ADK 본격 지원, CrewAI 기반 멀티 에이전트 협업 워크플로가 계획되어 있다.
이는 단일 키오스크 제어를 넘어, "여러 에이전트가 협력해 복잡한 디지털 환경을 통합적으로 조작하는 방향"으로 확장될 수 있음을 의미한다.
인사이트
Kiosk Agent는 "화면을 보고 직접 조작하는 AI"라는 점에서, 단순한 챗봇이나 API 호출형 자동화와는 결이 다르다.
사람이 실제로 기기를 사용하듯이, 화면의 픽셀 단위 정보를 보고 의미를 해석하고 손 대신 동작하기 때문에, 기존 시스템을 전혀 수정하지 않고도 위에 덧씌워 사용할 수 있다는 장점이 있다.
학습·연구 관점에서는 VLA 구조, LangGraph 상태 머신, HITL 설계, 그리고 VLM 선택 전략을 함께 살펴보면, "현실 세계 UI를 다루는 에이전트 설계의 기본 패턴"을 이해하는 데 좋다.
실용적으로는, 먼저 단순한 키오스크 시나리오(예: 특정 앱 실행 → 로그인 → 메뉴 하나 선택)부터 구현해 보고, 이후 단계별로 복잡성을 높이며 HITL 지점과 모델 설정을 조정해 나가는 접근이 안전하고 효과적이다.
출처 및 참고:
이 노트는 요약·비평·학습 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

