A2A vs MCP: 새로운 에이전트 생태계를 위한 두 개의 보완적 프로토콜
이 기사에서는 AI 에이전트 시스템의 미래를 형성하는 두 가지 프로토콜, A2A와 MCP를 소개합니다. 이들이 어떻게 작동하고, 어떻게 다른지, 그리고 이 아키텍처를 이해하는 것이 개발자, 디자이너 및 AI 제품 제작자에게 왜 중요한지를 설명합니다.
사용자를 대신하여 추론과 행동을 수행하는 자율 또는 반자율 소프트웨어 엔티티인 AI 에이전트의 채택이 증가함에 따라 응용 프로그램 아키텍처의 새로운 레이어가 부상하고 있습니다.
2025년 초, 두 가지 서로 다른 프로토콜인 **A2A(Agent-to-Agent)**와 **MCP(Model Context Protocol)**가 출현했습니다. 이들의 역할을 이해하는 간단한 방법은 다음과 같습니다:
A2A: 에이전트가 서로 어떻게 상호작용하는가
MCP: 에이전트가 도구나 외부 컨텍스트와 어떻게 상호작용하는가
참고 자료: https://google.github.io/A2A/#/topics/a2a_and_mcp
이들은 다수의 에이전트, 다수의 LLM, 다수의 컨텍스트 소스가 모두 협력해야 하는 시스템 구축의 핵심 과제를 해결합니다.
이렇게 표현할 수 있습니다: "MCP는 수직 통합(애플리케이션-모델)을 제공하고, A2A는 수평 통합(에이전트 간)을 제공합니다.
개발자든 아니든, AI 제품이나 에이전트 시스템을 구축하는 사람이라면 누구나 기본 아키텍처를 이해해야 합니다. 이는 제품 설계, 사용자 상호작용, 생태계 및 장기 성장에 영향을 미치기 때문입니다.
이 기사는 두 프로토콜을 간단하고 이해하기 쉽게 소개하고, 개발자와 AI 제품 제작자를 위한 주요 통찰을 강조합니다.
A2A(Agent-to-Agent)란 무엇인가?
**A2A(Agent-to-Agent)**는 구글과 50개 이상의 업계 파트너가 개발한 개방형 프로토콜입니다. 이는 에이전트 상호 운용성을 가능하게 하는 것을 목적으로 하며, 누가 어떻게 만들었든, 어디에 호스팅되었든 또는 어떤 프레임워크를 사용하든 상관없이 적용 가능합니다.
A2A 프로토콜 메커니즘
A2A는 HTTP(S)를 통한 JSON-RPC 2.0을 통신 메커니즘으로 사용하며, **서버 발신 이벤트(SSE)**를 지원하여 업데이트를 스트리밍합니다.
A2A 통신 모델
A2A는 두 에이전트가 어떻게 상호작용하는지를 정의하는 구조화된 모델을 갖추고 있습니다. 한 에이전트는 요청이나 작업을 시작하는 “클라이언트” 에이전트 역할을 하고, 다른 에이전트는 요청을 수신하고 이를 수행하는 “원격” 에이전트 역할을 합니다. 클라이언트 에이전트는 먼저 주어진 작업에 가장 적합한 에이전트를 파악하기 위해 기능 탐색을 수행할 수 있습니다.
여기서 중요한 질문이 등장합니다. 에이전트들은 어떻게 서로를 발견합니까? 각 에이전트는 자신의 에이전트 카드를 게시할 수 있습니다(표준 URL인 /.well-known/agent.json
등에서 게시됨). 이 문서는 에이전트의 기능, 기술, API 엔드포인트 및 인증 요구사항을 설명합니다.
에이전트 카드를 읽어 클라이언트 에이전트는 작업에 적합한 파트너 에이전트를 식별할 수 있습니다. 목표 에이전트가 선택되면, 클라이언트 에이전트는 작업(Task) 객체를 만들어 전송합니다.
참고 자료: https://google.github.io/A2A/#/
작업 관리
A2A의 모든 상호작용은 작업 수행을 중심으로 이루어집니다. 작업은 요청의 세부 사항을 포함하고 상태를 추적하는 구조화된 객체입니다(프로토콜의 스키마에 의해 정의됨).
A2A에서 각 에이전트는 두 가지 역할 중 하나를 맡습니다:
- 클라이언트 에이전트: 작업을 시작
- 원격 에이전트: 작업을 수신 및 처리
작업은 보고서 생성, 데이터 검색, 워크플로 시작 등의 모든 형태의 작업을 포함할 수 있습니다. 결과는 아티팩트로 반환되며, 에이전트는 실행 중에 구조화된 메시지를 보내 조정하거나 명확히 할 수 있습니다.
협업 및 콘텐츠 협상
A2A는 단순 작업 요청보다 더 많은 것을 지원합니다. 에이전트는 텍스트, JSON, 이미지, 비디오 또는 인터랙티브한 콘텐츠를 포함하는 풍부하고 다중 파트로 구성된 메시지를 교환할 수 있습니다. 이는 각 에이전트가 처리하거나 표시할 수 있는 형식에 따라 형식 협상을 가능하게 합니다.
예를 들어, 원격 에이전트는 차트를 원시 데이터나 이미지로 반환하거나 인터랙티브 폼을 열 것을 요청할 수 있습니다. 이 디자인은 모듈리스틱, 모드 독립적인 통신을 지원하며, 에이전트가 내부 도구나 메모리를 공유할 필요가 없습니다.
사용 사례 예
다음은 A2A가 기업 시나리오에서 어떻게 사용될 수 있는지 보여주는 실제 사례입니다:
한 대기업에 새로운 직원이 입사합니다. 온보딩에는 여러 시스템과 부서가 관련됩니다:
- HR은 기록을 만들고 환영 이메일을 보내야 합니다.
- IT는 노트북과 회사 계정을 제공해야 합니다.
- 시설 관리팀은 책상과 출입 배지를 준비해야 합니다.
전통적으로 이러한 단계는 수동으로 처리되거나 내부 시스템 간의 밀접한 통합을 통해 처리됩니다.
각 부서는 A2A 프로토콜을 사용하여 각자의 에이전트를 노출합니다:
에이전트 | 책임 |
---|---|
hr-agent.company.com | 직원 기록 생성, 문서 전송 |
it-agent.company.com | 이메일 계정 생성, 노트북 주문 |
facilities-agent.company.com | 책상 할당, 출입 배지 발행 |
다중 에이전트 시스템 — 이를 OnboardingPro라고 부르겠습니다(예: onboarding-agent.company.com) — 전체 온보딩 워크플로를 조정합니다.
- 탐색: 각 에이전트의
.well-known/agent.json
을 읽어 기능과 인증을 파악합니다. - 작업 위임:
- HR 에이전트에
createEmployee
작업 전송. - IT 에이전트에
setupEmailAccount
및orderHardware
작업 전송. - 시설 관리 에이전트에
assignDesk
및generateBadge
작업 전송.
- HR 에이전트에
- 스트리밍 업데이트: 에이전트는 서버 발신 이벤트를 사용하여 진행 상황을 스트리밍합니다(예: "노트북 배송됨", "책상 할당됨").
- 아티팩트 수집: 최종 결과(예: PDF 배지, 확인 이메일, 계정 자격 증명) 는 A2A 아티팩트로 반환됩니다.
- 완료: OnboardingPro는 온보딩이 완료되면 담당 채용 관리자에게 알림을 보냅니다.
MCP(Model Context Protocol)란 무엇인가?
**MCP(Model Context Protocol)**는 외부 애플리케이션이 실행 중인 언어 모델 기반 에이전트에 구조화된 컨텍스트와 도구를 제공하는 문제를 해결하기 위해 Anthropic이 개발했습니다.
에이전트 간 통신을 가능하게 하는 대신, MCP는 컨텍스트 윈도우에 중점을 둡니다 — LLM의 작업 메모리입니다. 그 목표는:
- 모델의 추론 세션에 관련 도구, 문서, API 기능 또는 사용자 상태를 동적으로 삽입하는 것
- 프롬프트나 로직을 하드 코딩하지 않고 함수 호출 및 문서 가져오기를 허용하는 것
MCP 주요 아키텍처
MCP를 이해하기 위해서는 전반적인 아키텍처를 먼저 이해해야 합니다 — 모든 부분들이 어떻게 함께 작동하는지.
MCP 호스트: "이번에 사용하는 AI"
MCP 호스트는 AI 앱 자체로 생각할 수 있습니다 — Claude Desktop이나 코딩 도우미와 같은.
이는 당신이 사용하는 인터페이스입니다 — 당신이 입력하거나 대화하는 곳입니다.
모델이 더 나은 응답을 제공할 수 있도록