# AI 에이전트 프로토콜 개발자 가이드

> Clean Markdown view of GeekNews topic #27636. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27636](https://news.hada.io/topic?id=27636)
- GeekNews Markdown: [https://news.hada.io/topic/27636.md](https://news.hada.io/topic/27636.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-19T10:05:02+09:00
- Updated: 2026-03-19T10:05:02+09:00
- Original source: [developers.googleblog.com](https://developers.googleblog.com/developers-guide-to-ai-agent-protocols/)
- Points: 27
- Comments: 1

## Summary

AI 에이전트 생태계를 구성하는 **6가지 프로토콜(MCP·A2A·UCP·AP2·A2UI·AG‑UI)** 이 하나의 공급망 시나리오로 통합되어, 데이터 연결부터 결제·UI 렌더링까지 단계별로 작동하는 구조를 보여줍니다. Google의 **Agent Development Kit(ADK)** 를 기반으로, 개발자는 빈 LLM에서 출발해 필요한 프로토콜만 점진적으로 추가하며 에이전트 기능을 확장할 수 있습니다. 각 프로토콜은 URL 기반 디스커버리와 타입 지정 스키마 같은 공통 패턴을 공유해, 초기 설계 단계부터 생태계 호환성을 확보하도록 돕습니다.

## Topic Body

- MCP, A2A, UCP, AP2, A2UI, AG-UI 등 **6가지 AI 에이전트 프로토콜**을 하나의 레스토랑 공급망 에이전트 시나리오로 묶어, 각 프로토콜이 해결하는 문제를 실전 코드와 함께 단계별로 설명하는 가이드  
- Google의 **Agent Development Kit(ADK)** 를 활용해 빈 LLM에서 출발, 프로토콜을 하나씩 추가하며 재고 확인·견적·주문·결제·대시보드 렌더링까지 완성하는 구조  
- **MCP**는 도구/데이터 연결, **A2A**는 에이전트 간 통신, **UCP**는 상거래 표준화, **AP2**는 결제 인가, **A2UI**는 UI 구성, **AG-UI**는 스트리밍 전달을 각각 담당  
- 각 프로토콜은 **잘 알려진 URL 기반 디스커버리, 타입 지정 스키마, 표준 이벤트 스트림** 등 공통 패턴을 공유하여 생태계 호환성 확보  
- 첫날부터 6개 전부 도입할 필요 없이, **필요에 따라 점진적으로 추가**하는 접근을 권장  
  
---  
  
### MCP(Model Context Protocol) — 도구·데이터 연결  
- 에이전트를 시스템과 데이터에 연결할 때 발생하는 첫 번째 장벽을 해결하는 프로토콜로, 각 API마다 **커스텀 통합 코드를 작성하는 수작업을 제거**  
- MCP 서버가 자신의 도구를 광고(advertise)하면 에이전트가 자동으로 디스커버리하는 구조로, 수백 개 서버에 대해 **단일 표준 연결 패턴** 제공  
- MCP 서버는 해당 시스템을 만든 팀이 유지보수하므로, 에이전트 측에서 **통합 코드를 작성하거나 업데이트할 필요 없이** 항상 최신 도구 정의를 확보  
- ADK에서 **McpToolset**을 통해 1급 지원하며, 예시에서는 PostgreSQL 데이터베이스 조회(MCP Toolbox for Databases), Notion MCP를 통한 레시피 조회, Mailgun MCP를 통한 공급업체 이메일 발송을 구현  
  - `ToolboxToolset`으로 재고 DB 연결  
  - `McpToolset`으로 Notion, Mailgun 등 외부 서비스 연결  
- 별도 코드 없이 `npx` 명령으로 MCP 서버를 실행하고 에이전트에 바로 연결하는 간결한 패턴  
  
### A2A(Agent2Agent Protocol) — 에이전트 간 통신  
- MCP가 데이터 접근을 해결한 뒤 남는 **전문성(expertise) 문제**를 다루는 프로토콜로, 서로 다른 팀·프레임워크·서버에서 운영되는 원격 에이전트 간 **표준 디스커버리·통신 방법** 제공  
- 각 A2A 에이전트는 `/.well-known/agent-card.json`에 **Agent Card**를 게시해 이름, 능력, 엔드포인트를 공개하며, 키친 매니저 에이전트가 이를 패치해 런타임에 적절한 에이전트로 쿼리 라우팅  
- 새로운 원격 에이전트 추가 시 **URL만 추가**하면 되므로 수동 코드 변경이나 재배포 불필요  
- ADK의 `RemoteA2aAgent`는 턴당 하나의 원격 에이전트로 라우팅하며, **여러 원격 에이전트에 동시 쿼리**가 필요한 경우 `a2a-sdk`를 직접 사용  
- `to_a2a()` 함수로 **모든 ADK 에이전트를 A2A 서비스로 변환** 가능  
- 가격 확인, 품질 등급, 배송 윈도우 등 원시 데이터가 API로 노출되지 않더라도 **에이전틱 인터페이스를 통해 접근 가능**  
  
### UCP(Universal Commerce Protocol) — 상거래 표준화  
- 공급업체마다 다른 API를 가진 **주문 프로세스를 통합**하는 프로토콜로, 쇼핑 라이프사이클을 모듈형 기능으로 표준화  
- **강타입 요청/응답 스키마**로 일관성을 유지하며, 하위 전송 계층이 REST, MCP, A2A, EP(브라우저 기반 임베디드 프로토콜) 중 어떤 것이든 동일한 패턴으로 동작  
- A2A와 동일한 `/.well-known/ucp` URL 패턴으로 공급업체 카탈로그 디스커버리 가능  
- **독점 SDK 불필요**, 기존 HTTP 클라이언트로 표준 REST API와 바로 연동  
- 예시에서는 `CheckoutCreateRequest`로 연어 10파운드와 올리브오일 3병을 주문하고, `PaymentCreateRequest`로 결제 요청을 구성  
- UCP 샘플 저장소에 **ADK와 A2A를 결합한 AI 기반 쇼핑 어시스턴트** 예제 포함  
  
### AP2(Agent Payments Protocol) — 결제 인가·감사 추적  
- UCP가 주문 대상과 공급업체를 처리한다면, AP2는 **누가 구매를 승인했는지와 감사 추적**을 담당  
- **타입 지정 mandate**로 의도의 부인 불가능한 증거(non-repudiatable proof of intent)를 제공하며, 모든 거래에 **설정 가능한 가드레일** 적용  
- 전체 플로우: `IntentMandate` → `PaymentMandate`(서명됨) → `PaymentReceipt`  
  - **IntentMandate**: 허용 가맹점, 지출 한도, 자동 승인 여부, 환불 가능성 요구, 만료 시간 등 가드레일 설정  
  - **PaymentMandate**: 특정 카트와 금액에 바인딩된 결제 위임장으로, 한도 초과 시 관리자의 명시적 승인까지 미서명 상태 유지  
  - **PaymentReceipt**: 감사 추적을 완결하는 영수증  
- UCP의 확장(extension)으로 동작하여, 체크아웃 플로우에 **암호화된 인가 증명** 추가  
- 현재 **v0.1** 단계이며, ADK 코어에 내장되지 않고 별도 패키지로 타입 제공  
  
### A2UI(Agent-to-User Interface Protocol) — 동적 UI 구성  
- 에이전트가 일반 텍스트 대신 **대시보드, 주문 양식, 공급업체 비교표** 등을 동적으로 구성할 수 있게 하는 프로토콜  
- **18개의 안전한 컴포넌트 프리미티브**(행, 열, 텍스트 필드 등)로 구성된 고정 카탈로그에서 선언적 JSON 형식으로 새로운 레이아웃 조합  
- UI 구조와 데이터를 **분리**하여, 컴포넌트 재전송 없이 데이터만 업데이트 가능  
  - 컴포넌트는 ID로 상호 참조하는 **플랫 리스트**로 전송  
  - 데이터는 별도의 `dataModelUpdate`로 전달  
- 클라이언트 측 렌더러가 JSON을 **Lit, Flutter, Angular** 등 네이티브 UI로 변환  
- 동일 에이전트가 같은 18개 프리미티브로 재고 체크리스트, 주문 양식, 공급업체 비교 등 **완전히 다른 인터페이스** 생성 가능  
- ADK 웹 인터페이스(`adk web`)에서 **A2UI 컴포넌트를 네이티브로 렌더링**할 수 있어 개발 중 별도 렌더러 구축 불필요  
- **A2UI Widget Builder**로 레이아웃을 인터랙티브하게 조합 가능  
  
### AG-UI(Agent-User Interaction Protocol) — 스트리밍 전달  
- 에이전트는 기존 REST API와 달리 텍스트를 점진적으로 스트리밍하고, 응답 중간에 도구를 호출하고, 사람의 입력을 기다리며 일시정지하는 등 **복잡한 상호작용 패턴**을 가짐  
- AG-UI는 **미들웨어로 동작**하여 프레임워크별 원시 이벤트를 표준화된 SSE 스트림으로 변환  
- 프런트엔드는 `TEXT_MESSAGE_CONTENT`, `TOOL_CALL_START` 등 **타입 지정 이벤트**만 수신하면 되고, 어떤 에이전트 프레임워크가 생성했는지 알 필요 없음  
- ADK는 네이티브 `/run_sse` 엔드포인트를 제공하지만, 파싱 코드가 보일러플레이트이고 이벤트 포맷 변경 시 깨지는 문제를 AG-UI가 해결  
- `ag_ui_adk` 패키지로 래핑 후 **FastAPI 앱에 마운트**하는 것만으로 AG-UI 스트리밍 엔드포인트 구성 가능  
  
### 전체 통합 동작 흐름  
- 사용자가 "연어 재고 확인, 오늘 도매가·품질 등급 조회, 재고 부족 시 Example Wholesale에서 10파운드 주문 및 결제 인가"를 요청하면 **6개 프로토콜이 단계적으로 동작**  
- **1단계 — 정보 수집**: MCP로 재고 DB 쿼리(`check_inventory`) → A2A로 원격 가격·품질 에이전트에 쿼리(`ask_agent`)  
- **2단계 — 거래 완료**: UCP로 체크아웃 요청(`place_order`) → AP2로 설정된 가드레일 내에서 결제 mandate 확보(`authorize_payment`)  
- **3단계 — 결과 표시**: A2UI로 인터랙티브 위젯 구성 → AG-UI로 도구 호출과 텍스트 응답을 실시간 스트리밍  
  
### 프로토콜 활용 팁  
- **각 프로토콜이 해결하는 문제를 정확히 파악**해야 아키텍처가 깔끔하게 유지됨  
- 첫날부터 6개 전부 필요하지 않으며, 대부분 **MCP로 시작**한 뒤 멀티 에이전트 통신, 상거래, 결제, 리치 UI, 스트리밍 등 요구사항 증가에 따라 점진적 추가  
- 프로토콜로 빌드하기 전에 **ADK 통합, 공식 SDK, 샘플 코드**를 먼저 확인하여 직접 재구현하지 않도록 할 것  
- 프로토콜들이 아직 성숙 중이지만, 잘 알려진 URL 디스커버리·타입 지정 스키마·표준 이벤트 스트림 등의 패턴을 **일찍 채택하면** 도구·서비스·에이전트 생태계와의 호환성 확보

## Comments



### Comment 53374

- Author: carnoxen
- Created: 2026-03-19T18:50:37+09:00
- Points: 1

이렇게 모아보니 ai 관련 프로토콜이 엄청 많네요
