๐Ÿ”จ AgentStudio

January 31, 2026 ยท View on GitHub

English | ํ•œ๊ตญ์–ด | ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿ”จ AgentStudio

PseudoLab Discord Community Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors

๐Ÿ”จ AgentStudio - ๊ฐ€์งœ์—ฐ๊ตฌ์†Œ 11๊ธฐ AI Agent ํ”„๋กœ์ ํŠธ
"AI๋กœ ์„ธ๋Œ€๊ฐ„์˜ ์ง€์‹๊ฒฉ์ฐจ๋ฅผ ์ค„์ด๊ณ , ์„ ํ•œ ์˜ํ–ฅ๋ ฅ์„ ๋‚˜๋ˆ„์ž"


๐Ÿค– ํ‚ค์˜ค์Šคํฌ ์—์ด์ „ํŠธ (Kiosk Agent)

Vision-Language-Action (VLA) ํŒจ๋Ÿฌ๋‹ค์ž„ ๊ธฐ๋ฐ˜ ํ‚ค์˜ค์Šคํฌ ์ž๋™ ์ œ์–ด ์—์ด์ „ํŠธ

ํ‚ค์˜ค์Šคํฌ ์—์ด์ „ํŠธ๋Š” VLM(Vision-Language Model)์„ ํ™œ์šฉํ•˜์—ฌ Android ํ‚ค์˜ค์Šคํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž๋™์œผ๋กœ ์ œ์–ดํ•˜๋Š” AI ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ๊ธฐ๊ธฐ ์‚ฌ์šฉ์— ์–ด๋ ค์›€์„ ๊ฒช๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ํ™”๋ฉด์„ ์‹œ๊ฐ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์ง์ ‘ ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

AgentStudio_Banner

โœจ ์ฃผ์š” ํŠน์ง• (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๋Š” ์ž‘์—…์˜ ๋ณต์žก๋„์™€ ์š”๊ตฌ ์„ฑ๋Šฅ์— ๋”ฐ๋ผ ๋ชจ๋ธ์„ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ๊ณต์ž๋ชจ๋ธ๋ช…์ƒํƒœ๊ถŒ์žฅ ์šฉ๋„
Googlegemini-3-flashโœ… ์ง€์›๋จ๊ธฐ๋ณธ ๋ชจ๋ธ. ๋น ๋ฅธ ์‘๋‹ต ์†๋„์™€ ํšจ์œจ์„ฑ
Googlegemini-3-proโœ… ์ง€์›๋จ๋ณต์žกํ•œ UI ๋ ˆ์ด์•„์›ƒ ๋ถ„์„ ๋ฐ ๊ณ ์ฐจ์› ์ถ”๋ก 
OpenAIgpt-4o-miniโœ… ์ง€์›๋จ์ผ๊ด€๋œ ์„ฑ๋Šฅ์˜ ๋Œ€์ฒด ๋ชจ๋ธ
Googlegemma-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)

์•ก์…˜ํŒŒ๋ผ๋ฏธํ„ฐ์„ค๋ช…
CLICKx, yํŠน์ • ์ขŒํ‘œ๋ฅผ ํด๋ฆญ
INPUTtextํ…์ŠคํŠธ ์ž…๋ ฅ ํ•„๋“œ์— ๋‚ด์šฉ ์ž…๋ ฅ
SWIPEx1, y1, x2, y2ํ™”๋ฉด ์Šคํฌ๋กค ๋˜๋Š” ์Šค์™€์ดํ”„
INTERRUPTquestion์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์š”์ฒญ (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์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.


Pseudo-Lab๊ณผ ํ•จ๊ป˜ โค๏ธ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.