Skip to content

ADK_REVIEW

lazybrain80 edited this page May 23, 2026 · 8 revisions

Google ADK ๊ฒ€ํ†  โ€” ๋…ผ์˜ ์ž๋ฃŒ

โš ๏ธ ์ด ๋ฌธ์„œ๋Š” ๋…ผ์˜ยท๊ฒ€ํ† ์šฉ ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์„ค๊ณ„ ๊ฒฐ์ •์— ๋ฐ˜์˜๋œ ๋‚ด์šฉ์ด ์•„๋‹ˆ๋ฉฐ, 7๊ฐœ ์„ค๊ณ„ deliverable์˜ ๋ถˆ๋ณ€์‹์„ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ADK(Agent Development Kit, ์—์ด์ „ํŠธ ๊ฐœ๋ฐœ ํ‚คํŠธ) ์ฑ„ํƒ ์—ฌ๋ถ€๋Š” ๋ฏธ๊ฒฐ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ž‘์„ฑ์ผ: 2026-05-23

ํ˜„์žฌ orchestrator๋Š” LangGraph + Claude Agent SDK(Software Development Kit, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ‚คํŠธ) ๋กœ MCP(Model Context Protocol, ๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ) ์„œ๋ฒ„ 3๊ฐœ๋ฅผ LLM(Large Language Model, ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ) ๋„๊ตฌ๋กœ ๋…ธ์ถœํ•œ๋‹ค (OSS_INTEGRATION ยง3.3). "Google ADK๋กœ๋„ ๋™์ผํ•˜๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€, ๊ทธ๋ฆฌ๊ณ  ๋„์ž… ์ด์ ์ด ์žˆ๋Š”๊ฐ€"๋ฅผ ๊ฒ€ํ† ํ•œ ๋ฉ”๋ชจ.

1. ๋‘ ๊ฒฐ์ •์€ ์„œ๋กœ ๋…๋ฆฝ์ ์ด๋‹ค

๊ฐ€์žฅ ๋จผ์ € ๋ถ„๋ฆฌํ•ด์•ผ ํ•  ์ : ํ”„๋ ˆ์ž„์›Œํฌ ๊ต์ฒด์™€ ๋ชจ๋ธ ๊ต์ฒด๋Š” ๋ณ„๊ฐœ์˜ ๊ฒฐ์ •์ด๋‹ค.

๊ฒฐ์ • ์ถ• ์„ ํƒ์ง€ ๋น„๊ณ 
ํ”„๋ ˆ์ž„์›Œํฌ LangGraph + Claude Agent SDK โ†” Google ADK ADK๋Š” ๋ชจ๋ธ ์ค‘๋ฆฝ์ 
๋ชจ๋ธ Claude(Opus/Sonnet) โ†” Gemini โ†” ๊ธฐํƒ€ LiteLLM ๋ž˜ํผ๋กœ ๊ต์ฐจ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋”ฐ๋ผ์„œ "ADK + Claude" ๋„, "Claude Agent SDK ์œ ์ง€ + ๋ชจ๋ธ๋งŒ Gemini" ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ADK ๋„์ž…์ด ๊ณง Gemini ์ฑ„ํƒ์„ ์˜๋ฏธํ•˜์ง€ ์•Š๋Š”๋‹ค.

MCP๋Š” ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ด๋ผ ์„œ๋ฒ„ ์ธก(mcp-robot-adapter ๋“ฑ 3๊ฐœ)์€ ์–ด๋А ๊ฒฝ์šฐ๋“  ๋ณ€๊ฒฝ ๋ถˆํ•„์š”ํ•˜๋‹ค. ๋ฐ”๋€Œ๋Š” ๊ฒƒ์€ orchestrator ์•ˆ์˜ LLM ํ˜ธ์ถœ์ž๋ฟ์ด๋‹ค.

2. ๋ชจ๋ธ ์„ฑ๋Šฅ โ€” Gemini 3.5 Flash vs Claude Opus 4.7

ํ•ญ๋ชฉ Gemini 3.5 Flash Claude Opus 4.7 ์ด ํ”„๋กœ์ ํŠธ ์ค‘์š”๋„
์ถœ๋ ฅ ์†๋„ / TTFT(Time To First Token, ์ฒซ ํ† ํฐ๊นŒ์ง€ ์‹œ๊ฐ„) ~4๋ฐฐ ๋น ๋ฆ„, <500ms 1โ€“3์ดˆ โ–ณ
๋น„์šฉ (input/output, 1M tokens) ~$0.075 / ~$0.30 ~$15 / ~$75 (~100๋ฐฐ) โ—Ž
์ค‘์ฒฉ tool callยท์—๋Ÿฌ ๋ณต๊ตฌ ์–‘ํ˜ธ ๋” ์‹ ๋ขฐ์„ฑ ๋†’์Œ โ—Ž
๊ธด ๋ฉ€ํ‹ฐํ„ด instruction adherence ๋ณดํ†ต ์šฐ์ˆ˜ โ—Ž
agentic ๋ฒค์น˜ (MCP Atlas, Toolathlon ๋“ฑ) Flash๊ฐ€ ์ƒํšŒ (๊ตฌ๊ธ€ ๋ฐœํ‘œ ๊ธฐ์ค€) โ€” โ—‹

ํ•ด์„:

  • orchestrator๋Š” vision/zone/enter ๊ฐ™์€ ์‚ฌ๋žŒ-์ƒํ˜ธ์ž‘์šฉ ํŽ˜์ด์Šค์˜ ์ด๋ฒคํŠธ ํŠธ๋ฆฌ๊ฑฐ์ด๊ณ  per-session lock์œผ๋กœ ์ง๋ ฌํ™”๋œ๋‹ค (SYSTEM_DESIGN ยง7.3). ์ดˆ๋‹น ์ˆ˜์‹ญ ๋ฒˆ ๋„๋Š” tight loop์ด ์•„๋‹ˆ๋ฏ€๋กœ Flash์˜ ์†๋„ ์šฐ์œ„๊ฐ€ ๊ฒฐ์ •์ ์ด์ง€ ์•Š๋‹ค.
  • ๋ฐ˜๋Œ€๋กœ ์ถœ๋ ฅ์€ ๋กœ๋ด‡ ๋ฌผ๋ฆฌ ๋™์ž‘ ๋ช…๋ น์ด๋‹ค. ์ค‘์ฒฉ tool call ์‹ ๋ขฐ์„ฑยท์กฐ๊ฑด๋ถ€ instruction ์ค€์ˆ˜๊ฐ€ ์•ˆ์ „๊ณผ ์ง๊ฒฐ๋˜์–ด Opus์˜ ๊ฐ•์ ์ด ์ •๋‹นํ™”๋œ๋‹ค. ์ด๋Š” SYSTEM_DESIGN ยง15์—์„œ Opus(ํ’ˆ์งˆ) vs Sonnet(latency)์„ ์ €์šธ์งˆํ•˜๋˜ ์ถ•๊ณผ ๊ฐ™๋‹ค.
  • ๋น„์šฉ 100๋ฐฐ ์ฐจ์ด๋Š” ๋ฌด์‹œ ๋ชป ํ•œ๋‹ค. ๊ฐ€๋“œ๋ ˆ์ผ์ด ์ด๋ฏธ MCP ์„œ๋ฒ„ ์ธก์— ๊ฐ•์ œ๋˜๋ฏ€๋กœ(JSON schema โ†’ capability whitelist โ†’ zone polygon clamp โ†’ velocity clamp), "๋ชจ๋ธ์ด ๊ฐ€๋” ํ‹€๋ ค๋„ ์„œ๋ฒ„์—์„œ ๋ง‰ํžŒ๋‹ค"๋Š” ์•ˆ์ „๋ง์ด ์žˆ๋‹ค. โ†’ ์ €๋นˆ๋„ ๋‹จ์ˆœ ๊ฒฐ์ •์€ ์ €๋น„์šฉ ๋ชจ๋ธ, ๊ณ ์œ„ํ—˜ ๊ฒฐ์ •์€ Opus ๊ฐ™์€ ํ‹ฐ์–ด๋ง ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค.

์š”์ง€: Gemini๋กœ ๋ฐ”๊ฟ€ ๊ฐ•ํ•œ ์ด์œ ๋Š” ์„ฑ๋Šฅ์ด ์•„๋‹ˆ๋ผ ๋น„์šฉ์ด๋‹ค. ์•ˆ์ „ยท์‹ ๋ขฐ์„ฑ ๊ด€์ ์—์„  Claude Opus๊ฐ€ ์ด ์›Œํฌ๋กœ๋“œ์— ์—ฌ์ „ํžˆ ๋” ๋ถ€ํ•ฉํ•œ๋‹ค.

3. Google ADK ๋„์ž… ์ด์  (ํ”„๋ ˆ์ž„์›Œํฌ)

ADK๋Š” 2026๋…„ 1.0 GA(General Availability, ์ •์‹ ์ถœ์‹œ) ์— ๋„๋‹ฌํ–ˆ๊ณ  (Python/Go/Java/TypeScript), ์ฃผ์š” ๊ฐ•์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ข‹์€ ์ 

  • MCP 1๊ธ‰ ์ง€์› โ€” MCPToolset์œผ๋กœ MCP ์„œ๋ฒ„๋ฅผ ๋ถ™์ด๋ฉด ๋„๊ตฌ ์ž๋™ ๋“ฑ๋ก. ๊ธฐ์กด MCP ์„œ๋ฒ„ 3๊ฐœ๋Š” ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉ.
  • A2A(Agent-to-Agent, ์—์ด์ „ํŠธ ๊ฐ„ ํ†ต์‹ ) ํ”„๋กœํ† ์ฝœ โ€” ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์œ„์ž„ ํ‘œ์ค€ํ™”. ํ–ฅํ›„ "๋กœ๋ด‡๋ณ„ sub-agent" ํ™•์žฅ ์‹œ ์œ ๋ฆฌ.
  • ์›Œํฌํ”Œ๋กœ์šฐ ์—์ด์ „ํŠธ (Sequential/Parallel/Loop) ๋‚ด์žฅ โ€” LangGraph ๊ทธ๋ž˜ํ”„๋ฅผ ๋Œ€์ฒดํ•  ์ถ”์ƒํ™” ์กด์žฌ.
  • Vertex AI / GKE(Google Kubernetes Engine, ๊ตฌ๊ธ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์—”์ง„) ๋ฐฐํฌ ํ†ตํ•ฉ โ€” GCP(Google Cloud Platform, ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ) ์œ„์—์„œ ์šด์˜ํ•œ๋‹ค๋ฉด ๋งค๋„๋Ÿฌ์›€.

์ด ํ”„๋กœ์ ํŠธ์— ํ•œํ•ด ํšŒ์˜์ ์ธ ์ 

  • ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ๋Š” "์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ "๊ณผ "orchestrator ๋‚ด๋ถ€ ๋ถ„ํ•ด"๋ฅผ ๋‚˜๋ˆ ์„œ ๋ด์•ผ ํ•œ๋‹ค. ADK์˜ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ๊ฐ•์ ์€ ์ด ๋‘ ์ธต์œ„์—์„œ ๊ฐ€์น˜๊ฐ€ ๋‹ค๋ฅด๋‹ค.
    • ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ (A2A) โ€” ํšŒ์˜์ : ADK๋Š” ๋ณ„๊ฐœ๋กœ ๋–  ์žˆ๋Š” ์—์ด์ „ํŠธ๋“ค์ด ์„œ๋กœ ์ง์ ‘ ๋Œ€ํ™”ํ•˜๋ฉฐ ์ผ์„ ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์„ ์ž˜ ์ง€์›ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ MQTT ํ•œ ๊ณณ์„ ๊ฑฐ์ณ์„œ๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ๋กœ ์ •ํ–ˆ๊ณ (์„ค๊ณ„ ๋ถˆ๋ณ€์‹), ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋Š” ๋ณ„๋„ ์—์ด์ „ํŠธ ์„œ๋น„์Šค๋„ ์—†๋‹ค. ์ด ์ธต์œ„์—์„œ๋Š” A2A๋ฅผ ์“ธ ์ž๋ฆฌ๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค.
    • orchestrator ๋‚ด๋ถ€์˜ ์„œ๋ธŒ ์—์ด์ „ํŠธ ๋ถ„ํ•ด โ€” ์‹ค์ต ๊ฐ€๋Šฅ: orchestrator๊ฐ€ ํ”„๋กœ์„ธ์Šค๋กœ๋Š” ํ•˜๋‚˜์—ฌ๋„, ๊ทธ ์•ˆ์˜ ์ถ”๋ก ์„ ์—ญํ• ๋ณ„ ์„œ๋ธŒ ์—์ด์ „ํŠธ๋กœ ์ชผ๊ฐค ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ) ์ปจํ…์ŠคํŠธ ์กฐ๋ฆฝ โ†’ ์•ˆ์ „ ํŒ๋‹จ โ†’ ๋กœ๋ด‡ ๋™์ž‘ ๊ณ„ํš / ํƒœ๋ธ”๋ฆฟ UX ์‘๋‹ต ์„ ๊ฐ๊ฐ ์„œ๋ธŒ ์—์ด์ „ํŠธ๋กœ ์ •์˜ํ•˜๊ณ  root agent๊ฐ€ ์œ„์ž„ํ•˜๋Š” ๊ตฌ์กฐ. ์ด๋ ‡๊ฒŒ ์„œ๋ธŒ ์—์ด์ „ํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ADK์˜ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธยท์›Œํฌํ”Œ๋กœ์šฐ ์ถ”์ƒํ™”(Sequential/Parallel/LlmAgent ์œ„์ž„)๊ฐ€ ์‹ค์งˆ์ ์œผ๋กœ ์“ฐ์ผ ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค. ๋‹จ ์ด๋Š” ํ˜„์žฌ LangGraph ๋…ธ๋“œ ๊ตฌ์กฐ(OSS_INTEGRATION ยง3.3)๋กœ๋„ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์ด๋ผ, "ADK์—ฌ์•ผ๋งŒ ๋˜๋Š”๊ฐ€ vs LangGraph๋กœ ์ถฉ๋ถ„ํ•œ๊ฐ€"๋ฅผ ๋น„๊ตํ•  ๋ฌธ์ œ๋‹ค.
    • ์„ธ์…˜ ์ƒํƒœ ๊ด€๋ฆฌ โ€” ํšŒ์˜์ : ADK๋Š” ๋Œ€ํ™” ๋งฅ๋ฝยท์ง„ํ–‰ ์ƒํƒœ๋ฅผ ์ž๊ธฐ ์•ˆ์— ์ €์žฅํ•ด ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ๋ชจ๋“  ์ƒํƒœ๋ฅผ Home Assistant ํ•œ ๊ณณ์—๋งŒ ์ €์žฅํ•˜๊ธฐ๋กœ ๋ชป ๋ฐ•์•˜๋‹ค(orchestrator๋Š” ์ƒํƒœ๋ฅผ ์•ˆ ๋“ค๊ณ  ๋งค๋ฒˆ HA์—์„œ ์กฐํšŒํ•˜๋Š” stateless graph). ADK์˜ ์ƒํƒœ ์ €์žฅ ๊ธฐ๋Šฅ์„ ์ „๋ฉด์ ์œผ๋กœ ์ผœ๋ฉด "์ƒํƒœ๋ฅผ ๋‘ ๊ณณ์— ๋‘๋Š”" ์…ˆ์ด๋ผ ์›์น™๊ณผ ์ถฉ๋Œํ•œ๋‹ค. ๋‹ค๋งŒ ์„œ๋ธŒ ์—์ด์ „ํŠธ ๋ถ„ํ•ด๋ฅผ ์“ฐ๋”๋ผ๋„ ์˜์† ์ƒํƒœ๋Š” HA์— ๋‘๊ณ  ADK ์„ธ์…˜ ์ƒํƒœ๋Š” ๋‹จ์ผ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ค‘์˜ ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋งŒ ์ œํ•œํ•˜๋ฉด ์ถฉ๋Œ ์—†์ด ์–‘๋ฆฝ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฐฐํฌ ๋ชจ๋ธ์ด ghcr.io ๊ธฐ๋ฐ˜ cloud-build/local-run (DEPLOYMENT) ์ด๋ผ GCP ์ข…์† ์ด์ ์ด ์•ฝํ•˜๋‹ค.
  • ํ”„๋กฌํ”„ํŠธ ์บ์‹ฑ ๋ฆฌ์Šคํฌ: "system prompt + zone playbook โ†’ Anthropic prompt caching" ์ตœ์ ํ™”๋Š” Claude Agent SDK๊ฐ€ Anthropic API๋ฅผ ์ง์ ‘ ์น  ๋•Œ ๊ฐ€์žฅ ๊น”๋”ํ•˜๋‹ค. ADK๊ฐ€ Claude๋ฅผ LiteLLM ๊ฒฝ์œ ๋กœ ๋ถ€๋ฅด๋ฉด cache_control ์ „๋‹ฌ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆํ•ด์•ผ ํ•˜๊ณ , ์•ˆ ๋˜๋ฉด ๋น„์šฉ ์ด์ ์ด ๊นŽ์ธ๋‹ค.

4. ์ •๋ฆฌ / ๊ถŒ๊ณ  ๋ฐฉํ–ฅ

  • ๋ชจ๋ธ: Gemini์˜ ๋งค๋ ฅ์€ ์†๋„๋ณด๋‹ค ๋น„์šฉ(100x). ๋‹จ ์•ˆ์ „ ๋ช…๋ น ๋””์ŠคํŒจ์น˜ ์›Œํฌ๋กœ๋“œ ํŠน์„ฑ์ƒ Claude์˜ tool-use ์‹ ๋ขฐ์„ฑ์ด ๋” ๋ถ€ํ•ฉ โ†’ ์ „๋ฉด ๊ต์ฒด๋ณด๋‹ค ํ‹ฐ์–ด๋ง ๊ฒ€ํ† ๊ฐ€ ํ•ฉ๋ฆฌ์ .
  • ํ”„๋ ˆ์ž„์›Œํฌ: ADK๋Š” ํ›Œ๋ฅญํ•˜๋‚˜, MQTT ์ค‘์‹ฌยทHA ์ƒํƒœ์ €์žฅยท้žGCP ๋ฐฐํฌ ๊ตฌ์กฐ์—์„œ๋Š” LangGraph ๋Œ€๋น„ ์ถ”๊ฐ€ ์ด๋“์ด ์ œํ•œ์ ์ด๊ณ  prompt caching ๊ฒ€์ฆ ๋ถ€๋‹ด์ด ์ƒ๊ธด๋‹ค.
  • ๋‘ ๋ณ€๊ฒฝ ๋ชจ๋‘ SYSTEM_DESIGN ยง15์— ์—†๋Š” ์‹ ๊ทœ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์ด๋ฏ€๋กœ, ์„ค๊ณ„ ๋ฐ˜์˜ ์ „ ํ•ฉ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

5. ์ถœ์ฒ˜

Clone this wiki locally