๐จ AgentStudio
January 31, 2026 ยท View on GitHub
๐จ AgentStudio
๐จ AgentStudio - ๊ฐ์ง์ฐ๊ตฌ์ 11๊ธฐ AI Agent ํ๋ก์ ํธ
"AI๋ก ์ธ๋๊ฐ์ ์ง์๊ฒฉ์ฐจ๋ฅผ ์ค์ด๊ณ , ์ ํ ์ํฅ๋ ฅ์ ๋๋์"
๐ค ํค์ค์คํฌ ์์ด์ ํธ (Kiosk Agent)
Vision-Language-Action (VLA) ํจ๋ฌ๋ค์ ๊ธฐ๋ฐ ํค์ค์คํฌ ์๋ ์ ์ด ์์ด์ ํธ
ํค์ค์คํฌ ์์ด์ ํธ๋ VLM(Vision-Language Model)์ ํ์ฉํ์ฌ Android ํค์ค์คํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋์ผ๋ก ์ ์ดํ๋ AI ์์คํ ์ ๋๋ค. ๋์งํธ ๊ธฐ๊ธฐ ์ฌ์ฉ์ ์ด๋ ค์์ ๊ฒช๋ ์ฌ์ฉ์๋ฅผ ๋๊ธฐ ์ํด ํ๋ฉด์ ์๊ฐ์ ์ผ๋ก ์ดํดํ๊ณ ์ง์ ์กฐ์ํฉ๋๋ค.
โจ ์ฃผ์ ํน์ง (Features)
- ๊ฐ๋ ฅํ Gemini ์ถ๋ก : ์ต์
gemini-3-flash๋ฐgemini-3-pro๋ชจ๋ธ์ ์ง์ํ์ฌ ์ ๊ตํ ํ๋ฉด ๋ถ์์ด ๊ฐ๋ฅํฉ๋๋ค. - VLA ํจ๋ฌ๋ค์: Vision(์๊ฐ) โ Language(์ธ์ด/์ถ๋ก ) โ Action(ํ๋)์ผ๋ก ์ด์ด์ง๋ ์ํ ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌํํฉ๋๋ค.
- AG-UI Protocol: ์์ด์ ํธ์ ํ๋ก ํธ์๋ ๊ฐ์ ํ์คํ๋ SSE ์ค์๊ฐ ํต์ ์ ์ง์ํฉ๋๋ค.
- Human-in-the-Loop (HITL): ์ฃผ๊ด์ ์ธ ์ ํ(์: ๋ฉ๋ด ์ต์ ์ ํ)์ด ํ์ํ ๋ ์ฌ์ฉ์์๊ฒ ์ง๋ฌธํ๊ณ ์๋ต์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
- Planning Mode: ๋ณต์กํ ์์ฒญ์ ์ฌ๋ฌ ๋จ๊ณ๋ก ๋ถํดํ๊ณ , To-do ๋ฆฌ์คํธ ํํ๋ก ์ค์๊ฐ ์งํ ์ํฉ์ ํ์ํฉ๋๋ค.
- ์์ฑ ์ธํฐํ์ด์ค: TTS (CosyVoice3) ๋ฐ STT (Google Cloud)๋ฅผ ํตํ ์์ฐ์ค๋ฌ์ด ์์ฑ ์ํธ์์ฉ์ ์ง์ํฉ๋๋ค.
- ์ค์๊ฐ ๋์๋ณด๋: ์์ด์ ํธ์ ์ฌ๊ณ ๊ณผ์ (Reasoning)๊ณผ ํ๋ฉด ์กฐ์ ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํฉ๋๋ค.
๐ง ๋ชจ๋ธ ์ค์ (Model Configuration)
AgentStudio๋ ์์ ์ ๋ณต์ก๋์ ์๊ตฌ ์ฑ๋ฅ์ ๋ฐ๋ผ ๋ชจ๋ธ์ ์์ ๋กญ๊ฒ ์ ํํ ์ ์์ต๋๋ค.
| ์ ๊ณต์ | ๋ชจ๋ธ๋ช | ์ํ | ๊ถ์ฅ ์ฉ๋ |
|---|---|---|---|
gemini-3-flash | โ ์ง์๋จ | ๊ธฐ๋ณธ ๋ชจ๋ธ. ๋น ๋ฅธ ์๋ต ์๋์ ํจ์จ์ฑ | |
gemini-3-pro | โ ์ง์๋จ | ๋ณต์กํ UI ๋ ์ด์์ ๋ถ์ ๋ฐ ๊ณ ์ฐจ์ ์ถ๋ก | |
| OpenAI | gpt-4o-mini | โ ์ง์๋จ | ์ผ๊ด๋ ์ฑ๋ฅ์ ๋์ฒด ๋ชจ๋ธ |
gemma-3-27b | ๐ ์์ | ์จ๋๋ฐ์ด์ค ์ฒ๋ฆฌ ๋ฐ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๋ก์ปฌ ์คํ |
๋ชจ๋ธ์ ๋ณ๊ฒฝํ๋ ค๋ฉด .env ํ์ผ์ ๋ณ์๋ฅผ ์์ ํ์ธ์:
MODEL_PROVIDER=gemini
GEMINI_MODEL=gemini-3-flash # gemini-3-flash ๋๋ gemini-3-pro ์ ํ
๐ ์ํคํ ์ฒ (Architecture)
๐ VLA ์ํฌํ๋ก์ฐ
VLA ํจ๋ฌ๋ค์์ ์์ด์ ํธ๊ฐ ํ๋ฉด์ ๋ณด๊ณ (See), ์ดํดํ๊ณ (Understand), ํ๋ํ๋(Act) ์ํ ๊ตฌ์กฐ์ ๋๋ค.
flowchart LR
A[Screen Capture] --> B[VLM Reasoning]
B --> C[Action Decode]
C --> D[Execute ADB]
D --> E{Done?}
E -->|No| A
E -->|FINISH| F[Complete]
E -->|INTERRUPT| G[Human Input]
G --> A
๐ LangGraph ์ํ ๊ธฐ๊ณ
LangGraph๋ฅผ ์ฌ์ฉํ์ฌ ์์ด์ ํธ์ ๋ ผ๋ฆฌ์ ํ๋ฆ๊ณผ ์ํ ์ ์ด๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
flowchart TD
START([Start]) --> VLM[VLM Node]
VLM --> EXEC[Execute Node]
EXEC --> ROUTER{Router}
ROUTER -->|LOOP| VLM
ROUTER -->|INTERRUPT| HUMAN[Human Node]
ROUTER -->|FINISH| END([End])
HUMAN -->|Resume| VLM
HUMAN -->|Abort| END
๐ ์ค์น ๋ฐฉ๋ฒ (Installation)
์ฌ์ ์๊ตฌ์ฌํญ
- Python: 3.10+ (3.11 ๊ถ์ฅ)
- Node.js: 18+ (๋์๋ณด๋ ์คํ์ฉ)
- uv: ์ต์ ๋ฒ์ (๋น ๋ฅธ ํจํค์ง ๊ด๋ฆฌ์)
- ADB: Android Debug Bridge ์ค์น ๋ฐ ํ๊ฒฝ๋ณ์ ์ค์ ์๋ฃ
1๋จ๊ณ: ์ ์ฅ์ ๋ณต์
git clone [https://github.com/Pseudo-Lab/Agent_Studio.git](https://github.com/Pseudo-Lab/Agent_Studio.git)
cd Agent_Studio
2๋จ๊ณ: ํ์ด์ฌ ํ๊ฒฝ ์ค์ (uv ์ฌ์ฉ)
# ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ
uv venv .venv
source .venv/bin/activate
# ์์กด์ฑ ์ค์น (Editable ๋ชจ๋)
uv pip install -e backend/
3๋จ๊ณ: ํ๊ฒฝ ๋ณ์ ์ค์
cp .env.example .env
# .env ํ์ผ์ ์ด์ด GOOGLE_API_KEY ๋ฑ์ ์
๋ ฅํ์ธ์.
๐ฏ ์ง์ ์ก์ (Supported Actions)
| ์ก์ | ํ๋ผ๋ฏธํฐ | ์ค๋ช |
|---|---|---|
CLICK | x, y | ํน์ ์ขํ๋ฅผ ํด๋ฆญ |
INPUT | text | ํ ์คํธ ์ ๋ ฅ ํ๋์ ๋ด์ฉ ์ ๋ ฅ |
SWIPE | x1, y1, x2, y2 | ํ๋ฉด ์คํฌ๋กค ๋๋ ์ค์์ดํ |
INTERRUPT | question | ์ฌ์ฉ์์๊ฒ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์์ฒญ (HITL) |
FINISH | - | ๋ชจ๋ ์์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋จ |
๐๏ธ ๋ก๋๋งต (Roadmap)
โ v1.0.0 (ํ์ฌ)
- LangGraph ๊ธฐ๋ฐ VLA ์์ด์ ํธ ๋ฃจํ ๊ตฌํ
- Gemini 3 (Flash/Pro) ๋ชจ๋ธ ์ฐ๋ ์๋ฃ
- Planning Mode ๋ฐ HITL(Human-in-the-Loop) ์์คํ
- AG-UI ํ๋กํ ์ฝ ๊ธฐ๋ฐ ์ค์๊ฐ SSE ๋์๋ณด๋
๐ v1.1.0 (2026๋ 1์ ์์ )
- Gemma ํตํฉ: ๊ฒฝ๋ ๋ก์ปฌ ๋ชจ๋ธ ์ง์์ผ๋ก ์จ๋๋ฐ์ด์ค ์คํ ๊ฐ๋ฅ
- Microsoft Agent Framework: Semantic Kernel ๋ฐ Azure AI Agent Service ์ฐ๋
- โ Google ADK: Gemini ๋ค์ดํฐ๋ธ ์์ด์ ํธ ํ๋ ์์ํฌ ์ง์
- CrewAI: ๋ฉํฐ ์์ด์ ํธ ํ์ ์ํฌํ๋ก์ฐ ํ์ฅ
๐ฅ ํ ์๊ฐ: Agent Studio (๊ฐ์ง์ฐ๊ตฌ์ 11๊ธฐ)
| ์ฑํจ | ์ญํ | ์ฃผ์ ๋ด๋น ๋ถ์ผ |
|---|---|---|
| ๊น์ฌํ | ๋น๋ | ํ๋ก ํธ์๋(Next.js), ๋ฐฑ์๋(FastAPI) |
| ๊น์นํ | ๋ฌ๋ | LangGraph, ์ถ๋ก ์์ง, ํ๋กฌํํธ ์์ง๋์ด๋ง |
| ์ด๊ท๋ฏผ | ๋ฌ๋ | VLA ๋ฉ์ปค๋์ฆ ์ค๊ณ, LangGraph ์ํคํ ์ฒ |
| ์ ๋ฏผ์ | ๋ฌ๋ | ์์ฑ ์ธํฐํ์ด์ค(TTS/STT), Google ADK ์ฐ๋ |
๐ ๋ผ์ด์ ์ค (License)
๋ณธ ํ๋ก์ ํธ๋ Apache License 2.0์ ๋ฐ๋ฆ ๋๋ค.