Home / ์—์ด์ „ํŠธ ํ”„๋กœํ† ์ฝœ / ๐ŸŽฏ ์—์ด์ „ํŠธ ํ”„๋กœํ† ์ฝœ
Module

๐ŸŽฏ ์—์ด์ „ํŠธ ํ”„๋กœํ† ์ฝœ

MCP ยท A2A ยท AG-UI โ€” ์—์ด์ „ํŠธ ์—ฐ๊ฒฐ์„ ํ‘œ์ค€ํ™”ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ ์ƒํƒœ๊ณ„

โฑ 60๋ถ„ 118 / 189

์—์ด์ „ํŠธ ํ”„๋กœํ† ์ฝœ

MCP ยท A2A ยท AG-UI ยท ์„ ํƒ ๊ธฐ์ค€

์—ฐ๊ฒฐ์˜ ํ‘œ์ค€ํ™”

์—์ด์ „ํŠธ โ†” ๋„๊ตฌ, ์—์ด์ „ํŠธ โ†” ์—์ด์ „ํŠธ, ์—์ด์ „ํŠธ โ†” ์‚ฌ์šฉ์ž

์ƒํƒœ๊ณ„ ๊ฐœ์š”

์™œ ํ‘œ์ค€์ด ํ•„์š”ํ•œ๊ฐ€ ยท 3๊ณ„์ธต ยท ํ”„๋กœํ† ์ฝœ ํฌ์ง€์…”๋‹

PART 1 ยท ์ƒํƒœ๊ณ„ ๊ฐœ์š”

์ƒํƒœ๊ณ„ ๊ฐœ์š”

Nร—M ํ†ตํ•ฉ ๋ฌธ์ œ์™€ ์ด๋ฅผ ํ‘ธ๋Š” 3๊ณ„์ธต ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ ์กฐ๊ฐ

MCP ยท A2A ยท AG-UI

๋„๊ตฌยท์—์ด์ „ํŠธยท์‚ฌ์šฉ์ž โ€” ์„ธ ๋ฐฉํ–ฅ์˜ ์—ฐ๊ฒฐ์„ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํ‘œ์ค€์ด ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

  • Nร—M ๋ฌธ์ œ โ€” ํ‘œ์ค€ ์—†์ด๋Š” ์ปค๋„ฅํ„ฐ ์กฐํ•ฉ ํญ๋ฐœ
  • MCP โ€” ์—์ด์ „ํŠธ โ†” ๋„๊ตฌ/๋ฐ์ดํ„ฐ (์ˆ˜์ง)
  • A2A โ€” ์—์ด์ „ํŠธ โ†” ์—์ด์ „ํŠธ (์ˆ˜ํ‰)
  • AG-UI โ€” ์—์ด์ „ํŠธ โ†” ์‚ฌ์šฉ์ž (์ „๋ฉด)
takeaway

์„ธ ํ”„๋กœํ† ์ฝœ์€ ๊ฒฝ์Ÿ์ด ์•„๋‹ˆ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ์—ฐ๊ฒฐ์„ ๋‹ด๋‹นํ•˜๋Š” ์ƒํ˜ธ ๋ณด์™„ ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค โ€” ํŒŒํŠธ 2ยท3ยท4์—์„œ ํ•˜๋‚˜์”ฉ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

PART 1 ยท ์ƒํƒœ๊ณ„ ๊ฐœ์š”

Nร—M ํ†ตํ•ฉ ๋ฌธ์ œ

์—์ด์ „ํŠธ 10๊ฐœ ร— ๋„๊ตฌ 10๊ฐœ = 100๊ฐœ ์ปค์Šคํ…€ ์ปค๋„ฅํ„ฐ โ€” ํ‘œ์ค€์ด ์—†์œผ๋ฉด ์กฐํ•ฉ ํญ๋ฐœ

ํ‘œ์ค€ ์—†์Œ MCP ํ‘œ์ค€
ํ†ตํ•ฉ ๋ฐฉ์‹ ์—์ด์ „ํŠธ๋งˆ๋‹ค ๋„๊ตฌ๋ณ„ ์–ด๋Œ‘ํ„ฐ ์ง์ ‘ ๊ตฌํ˜„
๋„๊ตฌ ์ถ”๊ฐ€ ์‹œ ๋ชจ๋“  ์—์ด์ „ํŠธ ์ˆ˜์ •
Nร—M ์ปค๋„ฅํ„ฐ ๊ด€๋ฆฌ ๋ถˆ๊ฐ€
1๊ฐœ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ†ต์ผ
์ƒˆ ๋„๊ตฌ = MCP ์„œ๋ฒ„ 1๊ฐœ ์ถ”๊ฐ€
๋ชจ๋“  ์—์ด์ „ํŠธ๊ฐ€ ์ฆ‰์‹œ ์‚ฌ์šฉ
๋น„์œ  USB ์—†๋˜ ์‹œ๋Œ€ โ€” ๊ธฐ๊ธฐ๋งˆ๋‹ค ๋‹ค๋ฅธ ์ปค๋„ฅํ„ฐ
ํ”„๋ฆฐํ„ฐ, ๋งˆ์šฐ์Šค, ํ‚ค๋ณด๋“œ ํฌํŠธ๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฆ„
์ƒˆ ๊ธฐ๊ธฐ = ์ƒˆ ํฌํŠธ ํ•„์š”
USB-C ์‹œ๋Œ€ โ€” ํ•˜๋‚˜์˜ ํฌํŠธ๋กœ ๋ชจ๋“  ๊ฒƒ
์ถฉ์ „, ๋ฐ์ดํ„ฐ, ๋””์Šคํ”Œ๋ ˆ์ด, ์˜ค๋””์˜ค
๊ธฐ๊ธฐ๊ฐ€ ๋Š˜์–ด๋„ ํฌํŠธ๋Š” ๋™์ผ
PART 1 ยท ์ƒํƒœ๊ณ„ ๊ฐœ์š”

3๊ณ„์ธต ํ”„๋กœํ† ์ฝœ ์Šคํƒ

๊ฐ ํ”„๋กœํ† ์ฝœ์ด ๋‹ค๋ฅธ "์—ฐ๊ฒฐ"์„ ๋‹ด๋‹น โ€” ์ˆ˜์ง(๋„๊ตฌ) ยท ์ˆ˜ํ‰(์—์ด์ „ํŠธ) ยท ์ „๋ฉด(์‚ฌ์šฉ์ž)

AG-UI โ€” ์—์ด์ „ํŠธ โ†” ์‚ฌ์šฉ์ž

ํ”„๋ก ํŠธ์—”๋“œ ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ. CopilotKit ๊ฐœ๋ฐœ.

A2A โ€” ์—์ด์ „ํŠธ โ†” ์—์ด์ „ํŠธ

๋…๋ฆฝ ์—์ด์ „ํŠธ ๊ฐ„ ํƒœ์Šคํฌ ์œ„์ž„๊ณผ ๊ฒฐ๊ณผ ๊ตํ™˜. Google ๋ฐœํ‘œ.

MCP โ€” ์—์ด์ „ํŠธ โ†” ๋„๊ตฌ/๋ฐ์ดํ„ฐ

๋ชจ๋ธ์ด ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ํ‘œ์ค€. Anthropic ๋ฐœํ‘œ.

PART 1 ยท ์ƒํƒœ๊ณ„ ๊ฐœ์š”

ํ”„๋กœํ† ์ฝœ ๋น„๊ต

๊ฐ™์€ "์—ฐ๊ฒฐ"์ด๋ผ๋„ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ๊ณผ ๋ชฉ์ 

ํ•ญ๋ชฉMCPA2AAG-UI
์—ฐ๊ฒฐ ๋ฐฉํ–ฅ์ˆ˜์ง โ€” Agentโ†’Tool์ˆ˜ํ‰ โ€” Agentโ†’Agent์ „๋ฉด โ€” Agentโ†’User
ํ•ต์‹ฌ ๋™์ž‘๋„๊ตฌ ํ˜ธ์ถœ, ๋ฐ์ดํ„ฐ ์ฝ๊ธฐํƒœ์Šคํฌ ์œ„์ž„, ๊ฒฐ๊ณผ ์ˆ˜์‹ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ, ์ƒํƒœ ๋™๊ธฐํ™”
๋ฐœํ‘œ/๊ฑฐ๋ฒ„๋„Œ์ŠคAnthropic 2024-11 โ†’ Agentic AI Foundation (Linux Foundation ์‚ฐํ•˜, 2025-12)Google 2025-04 โ†’ Linux FoundationCopilotKit 2025 โ†’ ์˜คํ”ˆ์†Œ์Šค
์ „์†กstdio ยท Streamable HTTPJSON-RPC 2.0 ยท gRPC ยท HTTP+JSON(REST) โ€” ์—…๋ฐ์ดํŠธ ์ˆ˜์‹ ์€ SSEยทPush NotificationSSE(๋Œ€ํ‘œ) โ€” ์ „์†ก ๋ฌด๊ด€(WebSocketยทwebhook ๊ฐ€๋Šฅ)
๋ฐœ๊ฒฌ ๋ฐฉ์‹MCP ์„œ๋ฒ„ ๋ชฉ๋ก ์ˆ˜๋™ ๋“ฑ๋กAgent Card (.well-known)SDK ์—ฐ๊ฒฐ ์‹œ ์ž๋™
takeaway

์—ฐ๊ฒฐ ๋ฐฉํ–ฅ์ด ๋‹ค๋ฅด๋ฉด ์ „์†กยท๋ฐœ๊ฒฌ ๋ฐฉ์‹๋„ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค โ€” ์ˆ˜์ง์€ MCP, ์ˆ˜ํ‰์€ A2A, ์ „๋ฉด์€ AG-UI๋กœ ๊ธฐ์–ตํ•˜๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

MCP

Tools ยท Resources ยท Prompts โ€” ์—์ด์ „ํŠธ์˜ ์†๊ณผ ๋ˆˆ

PART 2 ยท MCP

MCP

์—์ด์ „ํŠธ๊ฐ€ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ํ‘œ์ค€ โ€” HostยทClientยทServer 3๊ณ„์ธต

Host ยท Client ยท Server

JSON-RPC 2.0 ์œ„์—์„œ 3๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ๋„๊ตฌยท๋ฐ์ดํ„ฐยทํ…œํ”Œ๋ฆฟ์„ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • 3๊ณ„์ธต ์•„ํ‚คํ…์ฒ˜ โ€” Host ยท Client ยท Server
  • 3๊ฐ€์ง€ Primitive โ€” Tools ยท Resources ยท Prompts
  • ์ „์†ก 2์ข… โ€” stdio(๋กœ์ปฌ) ยท Streamable HTTP(์›๊ฒฉ)
  • FastMCP โ€” ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ์„œ๋ฒ„ ๊ตฌํ˜„
takeaway

์•„ํ‚คํ…์ฒ˜ โ†’ Primitive โ†’ ์ „์†ก โ†’ ์ฝ”๋“œ ์ˆœ์œผ๋กœ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค โ€” ์„œ๋ฒ„ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค๋ฉด ๋ชจ๋“  MCP ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์”๋‹ˆ๋‹ค.

๊ฐœ์ • ์˜ˆ๊ณ  โ€” 2026-07-28 ๋Œ€๊ทœ๋ชจ ์ŠคํŽ™ ๊ฐœ์ • ์ตœ์ข…ํ™” ์˜ˆ์ •(RC ๊ณต๊ฐœ): ํ”„๋กœํ† ์ฝœ statelessํ™” ยท Tasks ์ •์‹ ํ™•์žฅ ยท Roots/Sampling/Logging ๋‹จ๊ณ„์  ํ๊ธฐ(12๊ฐœ์›” ์œ ์˜ˆ). ๋ณธ๋ฌธ ์„œ์ˆ ์€ ํ˜„ํ–‰ ์ŠคํŽ™(2025-11-25) ๊ธฐ์ค€์ด๋ฉฐ ํ™•์ • ์‹œ ๋ฐ˜์˜ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

PART 2 ยท MCP

MCP ์•„ํ‚คํ…์ฒ˜

Host โ†’ Client โ†’ Server 3๊ณ„์ธต ๊ตฌ์กฐ โ€” JSON-RPC 2.0 ์œ„์—์„œ ๋™์ž‘

  1. 1
    Host
    • AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (Kiro, Claude Code, Cursor ๋“ฑ)
    • ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›์•„ Client์— ์ „๋‹ฌ
    • ๋ชจ๋ธ ์ถ”๋ก ๊ณผ UI๋ฅผ ๋‹ด๋‹น
  2. 2
    Client
    • Host ์•ˆ์—์„œ MCP ์„œ๋ฒ„์™€ 1:1 ์—ฐ๊ฒฐ ์œ ์ง€
    • JSON-RPC ์š”์ฒญ์„ ์„œ๋ฒ„์— ์ „์†ก
    • ๋„๊ตฌ ๋ชฉ๋ก ์กฐํšŒ (tools/list) + ๋„๊ตฌ ์‹คํ–‰ (tools/call)
  3. 3
    Server
    • 3๊ฐ€์ง€ Primitive๋ฅผ ๋…ธ์ถœํ•˜๋Š” ํ”„๋กœ์„ธ์Šค
    • Tools: ๋ชจ๋ธ์ด ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜
    • Resources: ๋ชจ๋ธ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ
    • Prompts: ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ…œํ”Œ๋ฆฟ
  4. 4
    ์™ธ๋ถ€ ์‹œ์Šคํ…œ
    • API, DB, ํŒŒ์ผ์‹œ์Šคํ…œ, SaaS ๋“ฑ
    • Server๊ฐ€ ๋ž˜ํ•‘ํ•˜์—ฌ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
    • ์—์ด์ „ํŠธ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๊ตฌํ˜„์„ ๋ชจ๋ฆ„
takeaway

์—์ด์ „ํŠธ๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๊ตฌํ˜„์„ ๋ชจ๋ฅธ ์ฑ„ Server๊ฐ€ ๋…ธ์ถœํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค โ€” ์ด ๊ณ„์ธต ๋ถ„๋ฆฌ๊ฐ€ Nร—M ๋ฌธ์ œ๋ฅผ ๋Š๋Š” ์ง€์ ์ž…๋‹ˆ๋‹ค.

PART 2 ยท MCP

3๊ฐ€์ง€ Primitive

MCP ์„œ๋ฒ„๊ฐ€ ๋…ธ์ถœํ•˜๋Š” 3์ข…๋ฅ˜์˜ ๋Šฅ๋ ฅ โ€” ๋„๊ตฌยท๋ฐ์ดํ„ฐยทํ…œํ”Œ๋ฆฟ

Tools (๋„๊ตฌ)

๋ชจ๋ธ์ด ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜ โ€” ๋ถ€์ž‘์šฉ(side-effect) ๊ฐ€๋Šฅ
์˜ˆ: ์ด๋ฉ”์ผ ์ „์†ก, DB ์ฟผ๋ฆฌ, ํŒŒ์ผ ์ƒ์„ฑ

Resources (๋ฐ์ดํ„ฐ)

๋ชจ๋ธ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์ •์ /๋™์  ๋ฐ์ดํ„ฐ
์˜ˆ: ํŒŒ์ผ ๋‚ด์šฉ, DB ๋ ˆ์ฝ”๋“œ, API ์‘๋‹ต

Prompts (ํ…œํ”Œ๋ฆฟ)

์‚ฌ์ „ ์ •์˜๋œ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ
์˜ˆ: ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ”„๋กฌํ”„ํŠธ, ๋ฒˆ์—ญ ํ”„๋กฌํ”„ํŠธ

takeaway

Tools๋งŒ ๋ถ€์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•˜๊ณ  Resources๋Š” ์ฝ๊ธฐ ์ „์šฉ, Prompts๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค โ€” ์ œ์–ด ์ฃผ์ฒด(modelยทapplicationยทuser)๊ฐ€ ์„ธ Primitive๋ฅผ ๊ฐ€๋ฅด๋Š” ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

PART 2 ยท MCP

์ „์†ก ๋ฐฉ์‹

๋กœ์ปฌ(stdio)๊ณผ ์›๊ฒฉ(Streamable HTTP) โ€” ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์„ ํƒ

stdio

๋กœ์ปฌ ํ”„๋กœ์„ธ์Šค

  • CLI ํ”„๋กœ์„ธ์Šค๋ฅผ stdin/stdout์œผ๋กœ ํ†ต์‹ 
  • ์ธ์ฆ ๋ถˆํ•„์š” โ€” ๋กœ์ปฌ ํ”„๋กœ์„ธ์Šค ๊ถŒํ•œ ์ƒ์†
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ์ตœ์  (์„ค์น˜ ์ฆ‰์‹œ ์‚ฌ์šฉ)
  • uvx, npx๋กœ MCP ์„œ๋ฒ„ ๋ฐ”๋กœ ์‹คํ–‰

๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ MCP ์„œ๋ฒ„๋ฅผ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. IDE(Kiro, Cursor)๊ฐ€ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Streamable HTTP

์›๊ฒฉ ์„œ๋ฒ„

  • HTTP ์—”๋“œํฌ์ธํŠธ๋กœ ์—ฐ๊ฒฐ โ€” ํŒ€ ๊ณต์œ  ๊ฐ€๋Šฅ
  • OAuth 2.1 ์ธ์ฆ ์ง€์›
  • AgentCore Gateway๋กœ ๊ด€๋ฆฌํ˜• ๋ฐฐํฌ
  • SSE(deprecated) โ†’ Streamable HTTP๋กœ ์ „ํ™˜

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์ผ MCP ์„œ๋ฒ„์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆยท๊ด€์ธกยท์Šค์ผ€์ผ๋ง์„ Gateway๊ฐ€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

takeaway

๊ฐœ๋ฐœ์€ stdio๋กœ ์ฆ‰์‹œ ์‹œ์ž‘ํ•˜๊ณ , ํŒ€ ๊ณต์œ ยทํ”„๋กœ๋•์…˜์€ OAuth 2.1 ์ธ์ฆ์ด ๊ฐ€๋Šฅํ•œ Streamable HTTP๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

PART 2 ยท MCP

MCP ์„œ๋ฒ„ ์ฝ”๋“œ

FastMCP๋กœ 3์ค„์ด๋ฉด ์™„์„ฑ๋˜๋Š” MCP ์„œ๋ฒ„

python
from mcp.server.fastmcp import FastMCP

# ์„œ๋ฒ„ ์ƒ์„ฑ โ€” ์ด๋ฆ„์ด ํด๋ผ์ด์–ธํŠธ์— ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค
mcp = FastMCP("weather-server")

# ๋„๊ตฌ ๋“ฑ๋ก โ€” ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋งŒ ๋ถ™์ด๋ฉด ํ•จ์ˆ˜๊ฐ€ Tool์ด ๋ฉ๋‹ˆ๋‹ค
@mcp.tool()
def get_weather(city: str) -> str:
    """๋„์‹œ์˜ ํ˜„์žฌ ๋‚ ์”จ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค."""
    # ์™ธ๋ถ€ API ํ˜ธ์ถœ
    return f"{city}: ๋ง‘์Œ, 24ยฐC"

@mcp.resource("config://settings")
def get_settings() -> str:
    """์„œ๋ฒ„ ์„ค์ •์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค."""
    return '{"unit": "celsius", "lang": "ko"}'

# ์‹คํ–‰ โ€” streamable-http๋กœ ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ ์ ‘์† ํ—ˆ์šฉ
if __name__ == "__main__":
    mcp.run(transport="streamable-http")

A2A

Agent Card ยท Task Lifecycle ยท ์œ„์ž„๊ณผ ๊ฒฐ๊ณผ

PART 3 ยท A2A

A2A

๋…๋ฆฝ ๋ฐฐํฌ๋œ ์—์ด์ „ํŠธ๋ผ๋ฆฌ ์ž‘์—…์„ ์œ„์ž„ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š” ํ‘œ์ค€ โ€” ๋ฐœ๊ฒฌ์—์„œ ๋ฐ˜ํ™˜๊นŒ์ง€

Agent Card ยท Task ยท Artifact

์—์ด์ „ํŠธ๊ฐ€ ์„œ๋กœ์˜ ๋Šฅ๋ ฅ์„ ๋ฐœ๊ฒฌํ•˜๊ณ , ํƒœ์Šคํฌ๋ฅผ ์œ„์ž„ํ•˜๊ณ , ์‚ฐ์ถœ๋ฌผ์„ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ๋Œ๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.

  • Agent Card โ€” /.well-known ๋Šฅ๋ ฅ ์„ ์–ธ
  • Task Lifecycle โ€” submitted โ†’ working โ†’ ํ„ฐ๋ฏธ๋„ ์ƒํƒœ
  • Message Parts โ€” text ยท file ยท data
  • MCP์™€ ์ƒํ˜ธ ๋ณด์™„ โ€” ๋„๊ตฌ๋Š” ์ˆ˜์ง, ์œ„์ž„์€ ์ˆ˜ํ‰
takeaway

๋ฐœ๊ฒฌ โ†’ ์œ„์ž„ โ†’ ์ง„ํ–‰ ๋ณด๊ณ  โ†’ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜์˜ ํ๋ฆ„์„ ๋”ฐ๋ผ๊ฐ€๊ณ , ๋งˆ์ง€๋ง‰์— MCP์™€์˜ ์—ญํ•  ๊ฒฝ๊ณ„๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

PART 3 ยท A2A

A2A ํ•ต์‹ฌ ๊ฐœ๋…

๋…๋ฆฝ ์—์ด์ „ํŠธ๊ฐ€ ์„œ๋กœ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ , ์ž‘์—…์„ ์œ„์ž„ํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›๋Š” ํ‘œ์ค€

  1. 1
    Agent Card ๋ฐœํ–‰
    • /.well-known/agent-card.json์— ๋Šฅ๋ ฅ ์„ ์–ธ
    • ์ด๋ฆ„, ์„ค๋ช…, ์ง€์› ์Šคํ‚ฌ, ์ธ์ฆ ๋ฐฉ์‹ ๋ช…์‹œ
    • ๋‹ค๋ฅธ ์—์ด์ „ํŠธ๊ฐ€ ์ด ์นด๋“œ๋ฅผ ์ฝ์–ด ๋Šฅ๋ ฅ ๋ฐœ๊ฒฌ
  2. 2
    ํƒœ์Šคํฌ ์ƒ์„ฑ
    • calling agent๊ฐ€ JSON-RPC๋กœ message/send ์š”์ฒญ
    • Task ID ๋ฐœ๊ธ‰ โ†’ ์ƒํƒœ ์ถ”์  ์‹œ์ž‘
    • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ Message Parts(text/file/data)๋กœ ์ „๋‹ฌ
  3. 3
    ์ฒ˜๋ฆฌ (working)
    • called agent๊ฐ€ ๋น„๋™๊ธฐ๋กœ ์ž‘์—… ์ˆ˜ํ–‰
    • SSE ์ŠคํŠธ๋ฆฌ๋ฐ ๋˜๋Š” push notification์œผ๋กœ ์ง„ํ–‰ ๋ณด๊ณ 
    • ์ค‘๊ฐ„ artifact(์‚ฐ์ถœ๋ฌผ)๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋ฐ˜ํ™˜
  4. 4
    ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
    • ์ƒํƒœ: completed / failed / canceled
    • ์ตœ์ข… artifact๋ฅผ Message Parts๋กœ ๋ฐ˜ํ™˜
    • calling agent๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์ž๊ธฐ ์ปจํ…์ŠคํŠธ์— ํ†ตํ•ฉ
takeaway

calling agent๋Š” Task ID๋กœ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•  ๋ฟ, ์‹ค์ œ ์ˆ˜ํ–‰์€ called agent๊ฐ€ ์ž์œจ์ ์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค โ€” ๋„๊ตฌ ํ˜ธ์ถœ๊ณผ ๊ฐˆ๋ผ์ง€๋Š” ์ง€์ ์ž…๋‹ˆ๋‹ค.

PART 3 ยท A2A

Task Lifecycle

ํƒœ์Šคํฌ ์ƒํƒœ ์ „์ด โ€” submitted์—์„œ ์‹œ์ž‘ํ•˜์—ฌ completed/failed/canceled/rejected ํ„ฐ๋ฏธ๋„ ์ƒํƒœ๋กœ ์ข…๋ฃŒ

  1. 1
    submitted

    calling agent๊ฐ€ message/send ํ˜ธ์ถœ
    Task ๊ฐ์ฒด ์ƒ์„ฑ โ€” ๊ณ ์œ  ID ๋ถ€์—ฌ
    ์•„์ง ์ฒ˜๋ฆฌ ์‹œ์ž‘ ์•ˆ ๋จ

  2. 2
    working

    called agent๊ฐ€ ์ž‘์—… ์ˆ˜ํ–‰ ์ค‘
    SSE๋กœ ์ง„ํ–‰ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ฐ€๋Šฅ
    ์ค‘๊ฐ„ ์‚ฐ์ถœ๋ฌผ(artifact) ์ ์ง„ ๋ฐ˜ํ™˜

  3. 3
    input-required

    ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์—ฌ ๋Œ€๊ธฐ
    calling agent์—๊ฒŒ ์งˆ๋ฌธ ์ „์†ก
    ์‘๋‹ต ํ›„ working์œผ๋กœ ๋ณต๊ท€

  4. 4
    ํ„ฐ๋ฏธ๋„ ์ƒํƒœ

    ์„ฑ๊ณต completed โ€” ์ตœ์ข… artifact
    ์‹คํŒจ failed โ€” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
    ์ทจ์†Œ canceled โ€” tasks/cancel ์š”์ฒญ
    ๊ฑฐ์ ˆ rejected โ€” called agent๊ฐ€ ์ˆ˜ํ–‰ ๊ฑฐ๋ถ€

takeaway

input-required๋Š” ๋น„ํ„ฐ๋ฏธ๋„ ์™•๋ณต ์ง€์ ์ž…๋‹ˆ๋‹ค โ€” ์‘๋‹ตํ•˜๋ฉด working์œผ๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŽ™์—๋Š” ์ธ์ฆ ๋Œ€๊ธฐ์šฉ ๋น„ํ„ฐ๋ฏธ๋„ ์ƒํƒœ auth-required๋„ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋‚˜๋จธ์ง€ ์ „์ด๋Š” ํ„ฐ๋ฏธ๋„ ์ƒํƒœ๋กœ ์งํ–‰ํ•ฉ๋‹ˆ๋‹ค.

PART 3 ยท A2A

MCP vs A2A โ€” ์–ธ์ œ ๋ฌด์—‡์„

MCP = ๋„๊ตฌ ์—ฐ๊ฒฐ(์ˆ˜์ง), A2A = ์—์ด์ „ํŠธ ์œ„์ž„(์ˆ˜ํ‰) โ€” ์ƒํ˜ธ ๋ณด์™„์ 

takeaway

๋™๊ธฐ์  ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด๋ฉด MCP, ์ž์œจ ํŒ๋‹จ์ด ํ•„์š”ํ•œ ๋น„๋™๊ธฐ ์œ„์ž„์ด๋ฉด A2A์ž…๋‹ˆ๋‹ค โ€” ํ•˜๋‚˜๊ฐ€ ๋‹ค๋ฅธ ํ•˜๋‚˜๋ฅผ ๋Œ€์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

AG-UI

Agent โ†” Frontend ยท ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ยท ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”

PART 4 ยท AG-UI

AG-UI

์—์ด์ „ํŠธ ๋ฐฑ์—”๋“œ์˜ ๋™์ž‘์„ ํ”„๋ก ํŠธ์—”๋“œ์— ์‹ค์‹œ๊ฐ„ ์ „๋‹ฌํ•˜๋Š” ํ‘œ์ค€ โ€” SSE(๋Œ€ํ‘œ ์ „์†ก) ์œ„์˜ typed ์ด๋ฒคํŠธ

Agent โ†” Frontend ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ

์—์ด์ „ํŠธ์˜ ๋ชจ๋“  ๋™์ž‘์„ typed JSON events๋กœ ํ”„๋ก ํŠธ์—”๋“œ์— ์‹ค์‹œ๊ฐ„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • SSE(๋Œ€ํ‘œ) โ€” ์ „์†ก ๋ฌด๊ด€(WebSocketยทwebhook ๊ฐ€๋Šฅ)
  • TEXT_MESSAGE ยท TOOL_CALL ยท STATE_DELTA ยท LIFECYCLE
  • CopilotKit ๊ฐœ๋ฐœ โ€” ์˜คํ”ˆ ํ‘œ์ค€
  • ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌด๊ด€ โ€” Strands ยท LangGraph ยท CrewAI
takeaway

ํ…์ŠคํŠธ๋งŒ ํ˜๋ฆฌ๋Š” ์ฑ„ํŒ… API์™€ ๋‹ฌ๋ฆฌ ๋„๊ตฌ ํ˜ธ์ถœ๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ๊นŒ์ง€ ์ด๋ฒคํŠธ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค โ€” UI๊ฐ€ ์—์ด์ „ํŠธ๋ฅผ ์™„์ „ํžˆ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

PART 4 ยท AG-UI

AG-UI ๊ฐœ์š”

์—์ด์ „ํŠธ ๋ฐฑ์—”๋“œ์˜ ๋ชจ๋“  ๋™์ž‘์„ ํ”„๋ก ํŠธ์—”๋“œ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ์ด๋ฒคํŠธ ํ”„๋กœํ† ์ฝœ

ํ•ต์‹ฌ

AG-UI = Agent-User Interaction Protocol. CopilotKit์ด ๊ฐœ๋ฐœํ•œ ์˜คํ”ˆ ํ‘œ์ค€์œผ๋กœ, SSE๋ฅผ ํ†ตํ•ด typed JSON events๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌด๊ด€ โ€” Strands, LangGraph, CrewAI ๋ชจ๋‘ ์ง€์›.

  1. 1
    ์—์ด์ „ํŠธ ์‹คํ–‰
    • ๋ฐฑ์—”๋“œ์—์„œ ์—์ด์ „ํŠธ๊ฐ€ ์ž‘์—… ์ˆ˜ํ–‰
    • Strands Agent, LangGraph ๋“ฑ ์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ๋“ 
    • ์‹คํ–‰ ์ค‘ ์ด๋ฒคํŠธ๋ฅผ AG-UI ํฌ๋งท์œผ๋กœ ๋ฐฉ์ถœ
  2. 2
    SSE ์ŠคํŠธ๋ฆฌ๋ฐ
    • Server-Sent Events๋กœ ์ด๋ฒคํŠธ ์ „์†ก
    • messages, tool_calls, state_patches, lifecycle
    • ๋‹จ์ผ HTTP ์—ฐ๊ฒฐ๋กœ ๋ชจ๋“  ์ด๋ฒคํŠธ ์ „๋‹ฌ
  3. 3
    ํ”„๋ก ํŠธ์—”๋“œ ์ˆ˜์‹ 
    • React/Vue/Svelte ๋“ฑ ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์ด๋ฒคํŠธ ์†Œ๋น„
    • ์ฑ„ํŒ… UI ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ
    • ์ƒํƒœ ๋™๊ธฐํ™” โ€” ์—์ด์ „ํŠธ ์ƒํƒœ๋ฅผ UI์— ๋ฐ˜์˜
PART 4 ยท AG-UI

AG-UI ์ด๋ฒคํŠธ ์œ ํ˜•

์—์ด์ „ํŠธ ๋™์ž‘์˜ ๋ชจ๋“  ๋‹จ๋ฉด์„ ์ด๋ฒคํŠธ๋กœ ํ‘œํ˜„

์ด๋ฒคํŠธ์—ญํ• ์˜ˆ์‹œ
TEXT_MESSAGE_*ํ…์ŠคํŠธ ๋ฉ”์‹œ์ง€ ์ŠคํŠธ๋ฆฌ๋ฐstart โ†’ content(ํ† ํฐ) โ†’ end
TOOL_CALL_*๋„๊ตฌ ํ˜ธ์ถœ๊ณผ ๊ฒฐ๊ณผstart โ†’ args โ†’ end (์‹คํ–‰ ๊ฒฐ๊ณผ)
STATE_DELTA์—์ด์ „ํŠธ ์ƒํƒœ ๋ณ€๊ฒฝJSON Patch๋กœ UI ์ƒํƒœ ๋™๊ธฐํ™”
LIFECYCLE์‹คํ–‰ ์ƒ๋ช…์ฃผ๊ธฐRUN_STARTED โ†’ RUN_FINISHED
CUSTOM์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ •์˜ ์ด๋ฒคํŠธ์ง„ํ–‰๋ฅ , ์•Œ๋ฆผ, UI ๋ช…๋ น ๋“ฑ
takeaway

๋ฉ”์‹œ์ง€ยท๋„๊ตฌยท์ƒํƒœยท์ƒ๋ช…์ฃผ๊ธฐ ๋„ค ๊ณ„์—ด์ด ํ‘œ์ค€ ์ด๋ฒคํŠธ๋กœ ์ •์˜๋˜๊ณ , ๊ทธ ๋ฐ–์˜ ์š”๊ตฌ๋Š” CUSTOM ์ด๋ฒคํŠธ๋กœ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

PART 4 ยท AG-UI

AG-UI vs ์ผ๋ฐ˜ ์ฑ„ํŒ… API

๋‹จ์ˆœ ํ…์ŠคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ๋„˜์–ด, ์—์ด์ „ํŠธ์˜ ์ „์ฒด ๋™์ž‘์„ UI์™€ ๋™๊ธฐํ™”

์ผ๋ฐ˜ ์ฑ„ํŒ… API

  • ํ…์ŠคํŠธ ํ† ํฐ๋งŒ ์ŠคํŠธ๋ฆฌ๋ฐ
  • ๋„๊ตฌ ํ˜ธ์ถœ ์‹œ UI๊ฐ€ ์•Œ ์ˆ˜ ์—†์Œ
  • ์—์ด์ „ํŠธ ๋‚ด๋ถ€ ์ƒํƒœ ๋น„๊ฐ€์‹œ
  • ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ƒํƒœ ์ถ”์ 

๊ธฐ๋ณธ LLM API(Converse, Chat Completions)๋Š” ํ…์ŠคํŠธ๋งŒ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

AG-UI

  • ํ…์ŠคํŠธ + ๋„๊ตฌ ํ˜ธ์ถœ + ์ƒํƒœ ์ „๋ถ€ ์ŠคํŠธ๋ฆฌ๋ฐ
  • ๋„๊ตฌ ์‹คํ–‰ ์ค‘ UI์— ์‹ค์‹œ๊ฐ„ ํ‘œ์‹œ
  • STATE_DELTA๋กœ ๊ณต์œ  ์ƒํƒœ ์ž๋™ ๋™๊ธฐํ™”
  • ์—์ด์ „ํŠธ์™€ UI๊ฐ€ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ๊ณต์œ 

AG-UI๋Š” ์—์ด์ „ํŠธ์˜ ๋ชจ๋“  ๋™์ž‘(์ƒ๊ฐ, ๋„๊ตฌ ํ˜ธ์ถœ, ์ƒํƒœ ๋ณ€๊ฒฝ)์„ ์ด๋ฒคํŠธ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์—์ด์ „ํŠธ๋ฅผ ์™„์ „ํžˆ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

takeaway

์ผ๋ฐ˜ ์ฑ„ํŒ… API๋Š” ํ…์ŠคํŠธ ํ† ํฐ๋งŒ ๋ณด๋‚ด์ง€๋งŒ, AG-UI๋Š” STATE_DELTA๋กœ ์—์ด์ „ํŠธ์™€ UI๊ฐ€ ๊ฐ™์€ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์„ ํƒ ๊ฐ€์ด๋“œ

์–ธ์ œ ์–ด๋–ค ํ”„๋กœํ† ์ฝœ์„ โ€” ์˜์‚ฌ ๊ฒฐ์ • ํ๋ฆ„

PART 5 ยท ์„ ํƒ ๊ฐ€์ด๋“œ

์„ ํƒ ๊ฐ€์ด๋“œ

์—ฐ๊ฒฐ ๋Œ€์ƒ์ด ๋ฌด์—‡์ธ์ง€์— ๋”ฐ๋ผ ํ”„๋กœํ† ์ฝœ์„ ๊ณ ๋ฅด๊ณ  ์กฐํ•ฉํ•˜๋Š” ํŒ๋‹จ ๊ธฐ์ค€

๋ฌด์—‡์„ ์—ฐ๊ฒฐํ•˜๋Š”๊ฐ€๊ฐ€ ํ”„๋กœํ† ์ฝœ์„ ๊ฒฐ์ •

๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ฉด MCP, ์—์ด์ „ํŠธ์— ์œ„์ž„ํ•˜๋ฉด A2A, ์‚ฌ์šฉ์ž ์•ž์— ๋…ธ์ถœํ•˜๋ฉด AG-UI์ž…๋‹ˆ๋‹ค.

  • ์˜์‚ฌ ๊ฒฐ์ • ํ๋ฆ„ โ€” ์—ฐ๊ฒฐ ๋Œ€์ƒ 3๊ฐ€์ง€ ์งˆ๋ฌธ
  • ์กฐํ•ฉ ํŒจํ„ด โ€” ๊ธฐ๋ฐ˜(MCP) ยท ํ™•์žฅ(A2A) ยท ํ‘œ๋ฉด(AG-UI)
  • ๋„์ž… ์ˆœ์„œ โ€” MCP โ†’ A2A โ†’ AG-UI
takeaway

์„ธ ํ”„๋กœํ† ์ฝœ์„ ๋ชจ๋‘ ๊ฐ–์ถœ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค โ€” ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๋Œ€์ƒ์ด ๋ฌด์—‡์ธ์ง€๊ฐ€ ์œ ์ผํ•œ ํŒ๋‹จ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

PART 5 ยท ์„ ํƒ ๊ฐ€์ด๋“œ

์˜์‚ฌ ๊ฒฐ์ • ํ๋ฆ„

๋ฌด์—‡์„ ์—ฐ๊ฒฐํ•˜๋ ค๋Š”์ง€์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋Š” ํ”„๋กœํ† ์ฝœ

  1. 1
    ๋„๊ตฌ/๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ?
    • ์™ธ๋ถ€ API, DB, ํŒŒ์ผ์— ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”๊ฐ€?
    • โ†’ MCP ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด ์—์ด์ „ํŠธ์— ์—ฐ๊ฒฐ
    • ๊ฐ€์žฅ ๋จผ์ €, ๊ฐ€์žฅ ์ž์ฃผ ํ•„์š”ํ•œ ํ”„๋กœํ† ์ฝœ
  2. 2
    ๋‹ค๋ฅธ ์—์ด์ „ํŠธ์— ์œ„์ž„?
    • ๋…๋ฆฝ ๋ฐฐํฌ๋œ ์ „๋ฌธ ์—์ด์ „ํŠธ์—๊ฒŒ ์ž‘์—…์„ ๋งก๊ธฐ๋Š”๊ฐ€?
    • ๊ฒฐ๊ณผ๋ฅผ ๋น„๋™๊ธฐ๋กœ ๋ฐ›์•„๋„ ๋˜๋Š”๊ฐ€?
    • โ†’ A2A๋กœ ์—์ด์ „ํŠธ ๊ฐ„ ํƒœ์Šคํฌ ์œ„์ž„
  3. 3
    ์‚ฌ์šฉ์ž UI์™€ ์—ฐ๋™?
    • ์—์ด์ „ํŠธ ๋™์ž‘์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋Š”๊ฐ€?
    • ๊ณต์œ  ์ƒํƒœ(์žฅ๋ฐ”๊ตฌ๋‹ˆ, ํผ ๋“ฑ)๋ฅผ ๋™๊ธฐํ™”ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?
    • โ†’ AG-UI๋กœ ํ”„๋ก ํŠธ์—”๋“œ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ
PART 5 ยท ์„ ํƒ ๊ฐ€์ด๋“œ

ํ”„๋กœํ† ์ฝœ ์กฐํ•ฉ ํŒจํ„ด

์‹ค์ œ ํ”„๋กœ๋•์…˜์—์„œ ์„ธ ํ”„๋กœํ† ์ฝœ์ด ํ•œ ์•„ํ‚คํ…์ฒ˜์— ๊ณต์กด โ€” ๊ธฐ๋ฐ˜(MCP) ยท ํ™•์žฅ(A2A) ยท ํ‘œ๋ฉด(AG-UI)

  1. 1
    MCP (๊ธฐ๋ฐ˜)
    • ๋ชจ๋“  ์—์ด์ „ํŠธ๊ฐ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉ โ€” ๊ธฐ๋ณธ ๋ ˆ์ด์–ด
    • Gateway๋กœ ์ค‘์•™ ๊ด€๋ฆฌ + ์ธ์ฆ + ๊ด€์ธก
    • ์˜ˆ: ๋‚ ์”จ API, DB ์ฟผ๋ฆฌ, ํŒŒ์ผ ์ฝ๊ธฐ
  2. 2
    A2A (ํ™•์žฅ)
    • ์ „๋ฌธ ์—์ด์ „ํŠธ๋ฅผ ํŒ€์ฒ˜๋Ÿผ ์กฐ์ง
    • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ specialist์—๊ฒŒ ์œ„์ž„
    • ์˜ˆ: ์ฝ”๋“œ ๋ฆฌ๋ทฐ์–ด, ๋ณด์•ˆ ์Šค์บ๋„ˆ, ๋ฒˆ์—ญ๊ธฐ
  3. 3
    AG-UI (ํ‘œ๋ฉด)
    • ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ์—์ด์ „ํŠธ๋ฅผ ๋…ธ์ถœ
    • ์ฑ„ํŒ…, ๋Œ€์‹œ๋ณด๋“œ, ์ฝ”ํŒŒ์ผ๋Ÿฟ UI
    • ์˜ˆ: Streamlit + CopilotKit + React
takeaway

MCP๊ฐ€ ๊ธฐ๋ฐ˜, A2A๊ฐ€ ํ™•์žฅ, AG-UI๊ฐ€ ํ‘œ๋ฉด์ž…๋‹ˆ๋‹ค โ€” ํ”„๋กœ๋•์…˜์—์„œ๋Š” ์„ธ ํ”„๋กœํ† ์ฝœ์ด ํ•œ ์•„ํ‚คํ…์ฒ˜ ์•ˆ์—์„œ ๊ณต์กดํ•ฉ๋‹ˆ๋‹ค.

PART 5 ยท ์„ ํƒ ๊ฐ€์ด๋“œ

๋„์ž… ์ˆœ์„œ

๋ชจ๋“  ๊ฒƒ์„ ํ•œ ๋ฒˆ์— ๊ฐ–์ถœ ํ•„์š” ์—†๋Š” ๋‹จ๊ณ„์  ๋„์ž… ์ˆœ์„œ

MCP ๋จผ์ € โ†’ A2A ํ•„์š”ํ•  ๋•Œ โ†’ AG-UI ์‚ฌ์šฉ์ž ์•ž์—

MCP ์—†์ด A2A๋ฅผ ์“ธ ์ด์œ ๊ฐ€ ์—†๊ณ , ์‚ฌ์šฉ์ž UI๊ฐ€ ์—†์œผ๋ฉด AG-UI๋„ ๋ถˆํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์„œ๋ฅผ ์ง€ํ‚ค์„ธ์š”.

  • 1. MCP โ€” ๋„๊ตฌ ์—ฐ๊ฒฐ
  • 2. A2A โ€” ์—์ด์ „ํŠธ ์œ„์ž„
  • 3. AG-UI โ€” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค
๋„๊ตฌ๋Š” MCP๋กœ, ์—์ด์ „ํŠธ๋Š” A2A๋กœ, ์‚ฌ์šฉ์ž๋Š” AG-UI๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ํ”„๋กœํ† ์ฝœ์˜ ์—ญํ• ์„ ๊ตฌ๋ถ„ํ•˜๋ฉด ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋ช…ํ™•ํ•ด์ง‘๋‹ˆ๋‹ค.