ADK_REVIEW - zero1ne-26/doc GitHub Wiki
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 (์ ๋ ฅ ~200ยท์ถ๋ ฅ ~250๋ฐฐ) | โ |
| ์ค์ฒฉ tool callยท์๋ฌ ๋ณต๊ตฌ | ์ํธ | ๋ ์ ๋ขฐ์ฑ ๋์ | โ |
| ๊ธด ๋ฉํฐํด instruction adherence | ๋ณดํต | ์ฐ์ | โ |
| agentic ๋ฒค์น (MCP Atlas, Toolathlon ๋ฑ) | Flash๊ฐ ์ํ (๊ตฌ๊ธ ๋ฐํ ๊ธฐ์ค) | โ | โ |
ํด์:
- orchestrator๋
vision/zone/enter๊ฐ์ ์ฌ๋-์ํธ์์ฉ ํ์ด์ค์ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ค. ๋์์ฑ๋ ๊ฐ์ ๋ก๋ด์ ๋จ์ผ priority queue๋ก, orchestrator ๊ทธ๋ํ๋ ์ด๋ฒคํธ ๋จ์๋ก ์ฒ๋ฆฌ๋์ด ์ง๋ ฌํยท๋ถ์ฐ๋๋ค (SYSTEM_DESIGN ยง7.3). ์ด๋น ์์ญ ๋ฒ ๋๋ tight loop์ด ์๋๋ฏ๋ก Flash์ ์๋ ์ฐ์๊ฐ ๊ฒฐ์ ์ ์ด์ง ์๋ค. - ๋ฐ๋๋ก ์ถ๋ ฅ์ ๋ก๋ด ๋ฌผ๋ฆฌ ๋์ ๋ช ๋ น์ด๋ค. ์ค์ฒฉ tool call ์ ๋ขฐ์ฑยท์กฐ๊ฑด๋ถ instruction ์ค์๊ฐ ์์ ๊ณผ ์ง๊ฒฐ๋์ด Opus์ ๊ฐ์ ์ด ์ ๋นํ๋๋ค. ์ด๋ SYSTEM_DESIGN ยง15์์ Opus(ํ์ง) vs Sonnet(latency)์ ์ ์ธ์งํ๋ ์ถ๊ณผ ๊ฐ๋ค.
- ๋น์ฉ์ด 100๋ฐฐ๋ฅผ ํ์ฉ ๋๋ ์ฐจ์ด(์ ๋ ฅ ~200๋ฐฐ)๋ ๋ฌด์ ๋ชป ํ๋ค. ๊ฐ๋๋ ์ผ์ด ์ด๋ฏธ 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๊ฐ๋ ๊ทธ๋๋ก ์ฌ์ฌ์ฉ. - ์ถ๋ก ์ ์๋ธ ์์ด์ ํธ๋ก ์ชผ๊ฐ๊ธฐ ํธํ๋ค (ํธ์) โ orchestrator๊ฐ ํ๋ก์ธ์ค๋ก๋ ํ๋์ฌ๋, ๊ทธ ์์ ํ๋จ์ ์ญํ ๋ณ ์๋ธ ์์ด์ ํธ๋ก ๋๋ ์ ์๋ค. ์)
์์ ํ๋จโ๋ก๋ด ๋์ ๊ณํ/ํ๋ธ๋ฆฟ UX ์๋ต. ADK๋ ์ด๋ฐ ์์ ๊ตฌ์กฐ๋ฅผLlmAgent+sub_agents,Sequential/Parallel/Loop๊ฐ์ ๊ธฐ์ฑ ์ถ์ํ๋ก ์ ์ ์ฝ๋๋ก ์ ์ธํ ์ ์๋ค. ๋จ ์ด๋ ADK๋ง์ ๊ณ ์ ๋ฅ๋ ฅ์ด ์๋๋ค โ ํ์ฌ LangGraph ์ค๊ณ๋call_claudeํ ๋ ธ๋๋ฅผ ์ฌ๋ฌ ๋ ธ๋๋ก ์ชผ๊ฐ๋ฉด ๋์ผํ๊ฒ ๋๋ค(์๋ ยง3.2). ์ฆ ์ฐจ์ด๋ "ํ ์ ์๋๋"๊ฐ ์๋๋ผ "์ผ๋ง๋ ์ ์ ์์ผ๋ก ํํํ๋๋"์ ํธ์ ๋ฌธ์ ๋ค. - Vertex AI / GKE(Google Kubernetes Engine, ๊ตฌ๊ธ ์ฟ ๋ฒ๋คํฐ์ค ์์ง) ๋ฐฐํฌ ํตํฉ โ GCP(Google Cloud Platform, ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ซํผ) ์์์ ์ด์ํ๋ค๋ฉด ๋งค๋๋ฌ์.
์ด ํ๋ก์ ํธ์ ํํด ํ์์ ์ธ ์
- ์๋น์ค ๊ฐ ํต์ (A2A(Agent-to-Agent, ์์ด์ ํธ ๊ฐ ํต์ )) โ ADK๋ ๋ณ๊ฐ๋ก ๋ ์๋ ์์ด์ ํธ๋ค์ด ์๋ก ์ง์ ๋ํํ๋ฉฐ ์ผ์ ๋๋๋ ๋ฐฉ์์ ์ ์ง์ํ๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋ชจ๋ ์๋น์ค๊ฐ MQTT ํ ๊ณณ์ ๊ฑฐ์ณ์๋ง ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ๋ก ์ ํ๊ณ (์ค๊ณ ๋ถ๋ณ์), ์ธ๋ถ์ ๋ ธ์ถ๋๋ ๋ณ๋ ์์ด์ ํธ ์๋น์ค๋ ์๋ค. ์ด ์ธต์์์๋ A2A๋ฅผ ์ธ ์๋ฆฌ๊ฐ ๊ฑฐ์ ์๋ค. (orchestrator "์"์ ์๋ธ ์์ด์ ํธ ๋ถํด๋ ๋ณ๊ฐ๋ก ์ค์ต์ด ์์ด ์ "์ข์ ์ "์ ์ ๋ฆฌ)
- ์ธ์ ์ํ ๊ด๋ฆฌ โ 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 ๊ฒฝ์ ๋ก ๋ถ๋ฅด๋ ๊ฒฝ์ฐ์๋ LiteLLM์ Anthropic
cache_control์ ๊ทธ๋๋ก ํต๊ณผ์ํค๋ฏ๋ก ์บ์ฑ ์์ฒด๋ ๋์ํ๋ค. ๋ค๋ง ๋ผ์ฐํ ๊ฒฝ๋ก(์: ์ง์ Anthropic vs Vertex ๊ฒฝ์ )์ ๋ฐ๋ผ ์บ์ ํค๋ ๊ด๋ จ ๋ฒ๊ทธ ์ฌ๋ก๊ฐ ๋ณด๊ณ ๋ ๋ฐ ์์ด, ์ค์ ์ฑํ ์ ์ ํํ ๊ฒฝ๋ก์์ ์บ์ ์ ์ค์ ํ ๋ฒ ํ์ธํ๋ฉด ๋๋ค.
3.1 ๋ํ ์ํ ์ ์ฅ: ADK vs LangGraph (์๋ฃ ์กฐ์ฌ)
์ "์ธ์ ์ํ ๊ด๋ฆฌ" ํญ๋ชฉ์ ํต์ฌ ์ง๋ฌธ โ ๋ํ ๋ด์ฉ์ ๊ธฐ์ตยท์ ์ฅํ๋ ์ผ ๋๋ฌธ์ ADK๊ฐ ๊ผญ ํ์ํ๊ฐ, ์๋๋ฉด LangGraph๋ง์ผ๋ก ์ถฉ๋ถํ๊ฐ โ ๋ฅผ ๊ณต๊ฐ ์๋ฃ๋ก ํ์ธํ๋ค.
๋จผ์ ์ฉ์ด ์ ๋ฆฌ. ์ฌ๊ธฐ์ "์ํ(state)"๋ ๋ก๋ดยท์์คํ ์ด ๋ํ๋ฅผ ์งํํ๋ ๋์ ์ ์ด ๋๋ ๋ฉ๋ชจ์ฅ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์๋ฅผ ๋ค์ด "์ด ์๋์ ์ข ์ ์ ์ปคํผ๋ฅผ ๊ณจ๋๋ค" ๊ฐ์ ๋ด์ฉ์ ์ ์ด ๋๋ค๊ฐ ๋ค์ ๋จ๊ณ์์ ๋ค์ ๊บผ๋ด ์ฐ๋ ์์ด๋ค. ์ด ๋ฉ๋ชจ์ฅ์ ์ ๊น ์ฐ๊ณ ๋ฒ๋ฆด์ง(์ฒ๋ฆฌ ์ค์๋ง), ์๋๋ฉด ์ด๋๊ฐ์ ์ค๋ ๋ณด๊ดํ ์ง๊ฐ ๋ ํ๋ ์์ํฌ์ ๋น๊ต ํฌ์ธํธ๋ค.
๋ ํ๋ ์์ํฌ๊ฐ ๋ํ ๋ด์ฉ์ ๋ค๋ฃจ๋ ๋ฐฉ์
| ํญ๋ชฉ | LangGraph | Google ADK |
|---|---|---|
| ๋ํ ๋์ค ๊ธฐ์ตํ๋ ๋ฒ | ๊ณต์ฉ ๋ฉ๋ชจ์ฅ์ ๋จ๊ณ๋ง๋ค ๋๋ ค๊ฐ๋ฉฐ ์ฝ๊ณ ์ | ๊ณต์ฉ ๋ฉ๋ชจ์ฅ์ ๋จ๊ณ๋ง๋ค ์ ๊ณ ์ฝ์ (๊ฑฐ์ ๋์ผ) |
| ์ค๋ ์ ์ฅํ๊ณ ์ถ์ ๋ | "์ฒดํฌํฌ์ธํฐ(Checkpointer)"๊ฐ ๋จ๊ณ๋ง๋ค ์๋์ผ๋ก ์ ์ฅ | "์ธ์ ์๋น์ค(SessionService)"๊ฐ ์ ์ฅ |
| ์ ์ฅ ์ฅ์ ์ ํ | ๋ฉ๋ชจ๋ฆฌยทSQLiteยทPostgresยทRedis ์ค ๊ณจ๋ผ ๋ผ์ (MemorySaver/SqliteSaver/PostgresSaver/RedisSaver) |
๋ฉ๋ชจ๋ฆฌ / ์ผ๋ฐ DB(SQLiteยทPostgresยทMySQL) / ๊ตฌ๊ธ Vertex AI ์ค ์ ํ (InMemory/Database/VertexAiSessionService) |
| ์ฌ๋ฌ ๋ํ๋ฅผ ๊ธธ๊ฒ ๋์ | ์ธ๋ถ ์ ์ฅ์๋ฅผ ์ง์ ์ฐ๊ฒฐ | ์ ์ฉ "๋ฉ๋ชจ๋ฆฌ ์๋น์ค"(๋ฒกํฐ DB ๋ฑ) ์ ๊ณต |
| ํน์ด ๊ธฐ๋ฅ | ๊ณผ๊ฑฐ ์์ ์ผ๋ก ๋๊ฐ์์ ๋๋ฒ๊น (time-travel) | A2Aยท๊ตฌ๊ธ ํด๋ผ์ฐ๋์ ๋งค๋๋ฌ์ด ์ฐ๋ |
| ํน์ ํ๋ซํผ์ ๋ฌถ์ด๋ | ์ ๋ฌถ์ โ ์ด๋์ ๋๋ฆฌ๋ ๊ฐ์ ์ฝ๋ | ์ ๋ฌถ์ โ DatabaseSessionService๋ก ์ผ๋ฐ DB์ ์ ์ฅ ๊ฐ๋ฅ (Vertex๋ ์ ํ์ง ์ค ํ๋) |
์ฐ๋ฆฌ ์ค๊ณ(๊ธฐ์ต์ Home Assistant ํ ๊ณณ์๋ง ๋ณด๊ด, orchestrator๋ ์๋ฌด๊ฒ๋ ์ ๋ค๊ณ ์์)์ ๋์ ํ๋ฉด:
- ๊ฐ์ฅ ์ค์ํ ์ฌ์ค: ๋ ๋๊ตฌ ๋ชจ๋ "์ค๋ ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ๊บผ๋ ์ ์๋ค." LangGraph๋ ์ ์ฅ ์ฅ์น๋ฅผ ์ ๋ถ์ด๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ์ฉ๋ง ์ฐ๋ฉด ๋๊ณ , ADK๋ ๊ธฐ๋ณธ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋๋ง ์ฐ๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ํ ๋ด์ฉ์ด ๋์คํฌ์ ๋จ์ง ์๊ณ ์ฒ๋ฆฌํ๋ ๋์๋ง ์ ๊น ๊ธฐ์ตํ๋ค๊ฐ ๋ฒ๋ฆฐ๋ค.
- ์ฐ๋ฆฌ๋ "์ง์ง ๊ธฐ์ต(์๊ตฌ ๋ณด๊ด)์ Home Assistant(HA)์๋ง ๋๋ค"๊ณ ์ ํ์ผ๋ฏ๋ก, ์ด๋ ๋๊ตฌ๋ฅผ ์ฐ๋ ํ๋ ์์ํฌ ์์ฒด ์ ์ฅ์ ๊บผ๋๊ณ ํ์ํ ๊ฐ์ HA์์ ์ฝ์ด์ค๋ฉด ๋๋ค.
- ๋ฐ๋ผ์ ๋ํ ๊ธฐ์ตยท์ ์ฅ๋ง ๋๊ณ ๋ณด๋ฉด ADK๊ฐ ๊ผญ ํ์ํ์ง๋ ์๋ค. ADK๊ฐ ๋ด์ธ์ฐ๋ ์ ์ฅ ๊ธฐ๋ฅ(๋ฉ๋ชจ๋ฆฌ ์๋น์ค, Vertex ์๊ตฌ ์ ์ฅ)์ ์ฐ๋ฆฌ๊ฐ ์ผ๋ถ๋ฌ ์ ์ฐ๊ธฐ๋ก ํ ๊ฒ์ด๋ผ ์ด ๋ถ๋ถ์์๋ ์ฅ์ ์ด ๋์ง ๋ชปํ๋ค.
- ์ ์ฅ ์ ์ฐ์ฑ์ ๋ ๋๊ตฌ๊ฐ ์ฌ์ค์ ๋๋ฑํ๋ค. ํ๋ "ADK๋ ์์ ์ ์ฅ์ด ๊ตฌ๊ธ Vertex๋ก ๋ฌถ์ธ๋ค"๊ณ ์ ์์ผ๋ ์ด๋ ๋ถ์ ํํ๋ค โ ADK๋
DatabaseSessionService๋ก SQLiteยทPostgresยทMySQL ๊ฐ์ ์ผ๋ฐ DB์ ์ ์ฅํ ์ ์์ด ๊ตฌ๊ธ ํด๋ผ์ฐ๋์ ๋ฌถ์ด์ง ์๋๋ค(LangGraph์SqliteSaver/PostgresSaver์ ๋๊ธ). ๋ฐ๋ผ์ ์ด ์ถ์ ์ด๋ ์ชฝ๋ ์ฐ์ด์ด ์๋ ๋น์ฐจ๋ณ ์์๋ค.
๊ฒฐ๋ก (์ด ํญ๋ชฉ ํ์ ): ๋ํ ๋ด์ฉ ๊ธฐ์ตยท์ ์ฅ ๋ฅ๋ ฅ์ ๋ ํ๋ ์์ํฌ๊ฐ ๋น์ทํ๊ณ , ์ฐ๋ฆฌ๋ ์ด์ฐจํผ HA์ ์ ์ฅํ๋ฏ๋ก ์ด ์ถ์ ADK ๋์ ์ ๊ทผ๊ฑฐ๊ฐ ๋์ง ๋ชปํ๋ค(= LangGraph๋ก ์ถฉ๋ถ). ADK๋ฅผ ๊ณ ๋ คํ๋ค๋ฉด ๊ทธ ์ด์ ๋ ์ ์ฅ ๊ธฐ๋ฅ์ด ์๋๋ผ ์ถ๋ก ์ ์๋ธ ์์ด์ ํธ๋ก ์ชผ๊ฐ ํํํ๋ ํธ์(ยง3 ์ข์ ์ )์์ ์ฐพ์์ผ ํ๋ค. ๋จ ๊ทธ ํธ์์กฐ์ฐจ "์๋ ๋ฅ๋ ฅ"์ ์๋๋ค(ยง3.2 ์ฐธ๊ณ ).
3.2 ํ์ฌ ์ค๊ณ(LangGraph)๋ก๋ ์๋ธ ์์ด์ ํธ ๋ถํด๊ฐ ๋๋๊ฐ?
๋๋ค. ์๋ธ ์์ด์ ํธ ๋ถํด๋ LangGraph๊ฐ ๋ณธ๋ ํ๋ ์ผ์ด๋ผ, ํ์ฌ ์ค๊ณ์ ๋น ์ง ๊ธฐ๋ฅ์ด ์๋๋ค.
ํ์ฌ ยง3.3์ ๊ทธ๋ํ๋ LLM ํธ์ถ์ call_claude ๋
ธ๋ ํ๋๋ก ๋จ์ํ๊ฒ ๊ทธ๋ ค ๋จ์ ๋ฟ์ด๋ค.
ํ์ฌ: assemble_context โ call_claude โ guardrail โ dispatch
์ด call_claude ํ ๋
ธ๋๋ฅผ ์ญํ ๋ณ๋ก ๋๋๋ฉด ๊ทธ๋๋ก ์๋ธ ์์ด์ ํธ ๋ถํด๊ฐ ๋๋ค.
๋ถํด ์:
assemble_context โ safety_reason โโ (์์ ยท๊ธ์ง๊ตฌ์ญ ํ๋จ)
action_plan โโค (๋ก๋ด ๋์ ๊ณํ)
tablet_reply โโดโ guardrail โ dispatch (ํ๋ธ๋ฆฟ UX ์๋ต)
(ํ์ํ๋ฉด supervisor ๋
ธ๋๊ฐ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ด๋๋ก ๋ณด๋ผ์ง ์์)
LangGraph๋ ๋ ธ๋๋ฅผ ๋ฌถ๋ subgraph, ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฐ๋ผ์ง๋ ์กฐ๊ฑด๋ถ ์ฃ์ง, ํ ๋ ธ๋๊ฐ ๋ค๋ฅธ ๋ ธ๋์ ์ผ์ ๋งก๊ธฐ๋ supervisor(๋ฉํฐ ์์ด์ ํธ) ํจํด์ ๋ชจ๋ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ค. ์ฆ ์ ํ๋ ์์ํฌ(ADK) ๋์ ์์ด ์ง๊ธ ๊ตฌ์กฐ์์ ๋ฐ๋ก ํ์ฅํ ์ ์๋ค.
๋จ๋ ์ฐจ์ด๋ "๋ฅ๋ ฅ"์ด ์๋๋ผ "ํํ ๋ฐฉ์"๋ฟ์ด๋ค.
| LangGraph (ํ์ฌ ์ค๊ณ) | Google ADK | |
|---|---|---|
| ๋ถํดํ๋ ๋ฒ | ๋ ธ๋ยท์ฃ์งยทsubgraph๋ฅผ ์ง์ ์กฐ๋ฆฝ | LlmAgent+sub_agents ์์์ ์ ์ธ |
| ์ฑํฅ | ๋ ๋ช ์์ , ์ธ๋ฐํ๊ฒ ์ ์ด | ์ฝ๋๊ฐ ์ ๊ณ ๋น ๋ฅด๊ฒ ๊ตฌ์ฑ |
| ์์ ๋ณด์ฅ | ๋ถํด๋ฅผ ์ด๋์ ํํํ๋ ๋์ผ โ ๊ฐ๋๋ ์ผ์ MCP ์๋ฒ ์ธก์ ์์ | ๋์ผ |
์์ฝ: ์๋ธ ์์ด์ ํธ ๋ถํด๋ ํ์ฌ ์ค๊ณ์ ํ๊ณ๊ฐ ์๋๋ค. ADK๊ฐ ์ฃผ๋ ๊ฑด "๋ ์ ์ ์ฝ๋๋ก ์ ์ธํ๋ ํธ์"์ด์ง "์๋ ๋ฅ๋ ฅ"์ด ์๋๋ค. ๋ฐ๋ผ์ ์ด ํญ๋ชฉ๋ ADK ๋์ ์ ๊ฒฐ์ ์ ๊ทผ๊ฑฐ๋ ๋์ง ๋ชปํ๋ค.
4. ์ ๋ฆฌ / ๊ถ๊ณ ๋ฐฉํฅ
- ๋ชจ๋ธ: Gemini์ ๋งค๋ ฅ์ ์๋๋ณด๋ค ๋น์ฉ(์ ๋ ฅ ~200ยท์ถ๋ ฅ ~250๋ฐฐ ์ ๋ ด). ๋จ ์์ ๋ช ๋ น ๋์คํจ์น ์ํฌ๋ก๋ ํน์ฑ์ Claude์ tool-use ์ ๋ขฐ์ฑ์ด ๋ ๋ถํฉ โ ์ ๋ฉด ๊ต์ฒด๋ณด๋ค ํฐ์ด๋ง ๊ฒํ ๊ฐ ํฉ๋ฆฌ์ .
- ํ๋ ์์ํฌ: ADK๋ ํ๋ฅญํ๋, MQTT ์ค์ฌยทHA ์ํ์ ์ฅยท้GCP ๋ฐฐํฌ ๊ตฌ์กฐ์์๋ LangGraph ๋๋น ์ถ๊ฐ ์ด๋์ด ์ ํ์ ์ด๊ณ prompt caching ๊ฒ์ฆ ๋ถ๋ด์ด ์๊ธด๋ค. ๋ํ ์ํ ์ ์ฅ ์ถ์ ์๋ฃ ์กฐ์ฌ(ยง3.1) ๊ฒฐ๊ณผ LangGraph๋ก ์ถฉ๋ถํ๋ค. ์๋ธ ์์ด์ ํธ ๋ถํด๋ ํ์ฌ LangGraph ์ค๊ณ๋ก ๊ฐ๋ฅํ๋ฏ๋ก(ยง3.2), ADK๊ฐ ์ฃผ๋ ๊ฒ์ "๊ณ ์ ๋ฅ๋ ฅ"์ด ์๋๋ผ "๋ ์ ์ ์ฝ๋๋ก ์ ์ธํ๋ ํธ์"์ ๊ทธ์น๋ค โ ๋จ๋ ์ผ๋ก ๋์ ์ ์ ๋นํํ ๊ฒฐ์ ์ ๊ทผ๊ฑฐ๋ ์ฝํ๋ค.
- ๋ ๋ณ๊ฒฝ ๋ชจ๋ SYSTEM_DESIGN ยง15์ ์๋ ์ ๊ท ์ํคํ ์ฒ ๊ฒฐ์ ์ด๋ฏ๋ก, ์ค๊ณ ๋ฐ์ ์ ํฉ์๊ฐ ํ์ํ๋ค.
5. ์ถ์ฒ
- Model Context Protocol (MCP) โ ADK
- Google ADK 1.0 and A2A Protocol โ n1n.ai
- Gemini 3.5 Flash vs Claude Opus 4.7: Agentic Workflows โ MindStudio
- Gemini 3.5 Flash vs Claude Opus 4.7: Speed, Cost, Agentic Performance โ MindStudio
- Claude Opus 4.7 vs Gemini 3.1 Pro โ DataCamp
- Google ADK vs LangGraph: Which One Develops and Deploys AI Agents Better โ ZenML
- Google ADK vs LangGraph 2026: Side-by-Side โ jangwook.net
- LangGraph Persistence (Checkpointers & State) โ LangChain Docs
- LangGraph vs Google ADK: Choosing the Right Framework โ Medium (Ankit Kumar)
- ADK ๊ณต์ ๋ฌธ์ โ Session / SessionService (InMemoryยทDatabaseยทVertexAi)
- ADK Go 1.0 Arrives โ Google Developers Blog (1.0 GAยท๋ค๊ตญ์ด)
- LiteLLM โ Prompt Caching (Anthropic
cache_controlpass-through)