포스트

A2A란 무엇인가?

목차

  1. A2A란?
  2. A2A 사용
  3. A2A와 MCP 비교

A2A란?

4월 10일 구글은 A2A(Agent to Agent)라는 이름의 오픈소스 에이전트 간 프로토콜을 발표
여러 개의 A2A 서버를 실행한 다음 A2A 클라이언트에 연결하는 방식으로 A2A를 사용하는 방식은 MCP와 유사함
이미 Anthropic의 MCP(Model Context Protocol)가 많은 주목을 받고 있는 상황에서 구글은 A2A가 MCP를 보완하는 관계라고 주장
Accenture, Atlassian, Box, MongoDB, Capgemini, Salesforce 등 50개 이상의 테크 기업이 함께 참여하고 있는 오픈소스 기반 프로젝트

A2A 설계 원칙

  • 에이전트 중심 기능 지원: 공유된 메모리, 도구, 컨텍스트가 없어도 에이전트 간 자연스러운 협업을 지원함
  • 기존 표준 기반: HTTP, SSE, JSON-RPC와 같은 이미 널리 쓰이는 기술 위에 구축되어 IT 환경과 쉽게 통합 가능함
  • 기본적으로 보안 강화됨: OpenAPI 수준의 인증 체계를 기본으로 제공하여 엔터프라이즈급 보안 보장함
  • 장기 실행 작업 지원: 수 초에서 수 일에 이르는 작업도 실시간 피드백과 상태 업데이트를 통해 지원 가능함
  • 다양한 모달리티 수용: 텍스트뿐 아니라 오디오, 비디오 스트리밍도 지원하여 다양한 데이터 형태에 대응함

A2A 작동 방식

  • 클라이언트 에이전트와 원격 에이전트 간 상호작용: 클라이언트 에이전트는 작업 요청을 보내고, 원격 에이전트는 이를 수행함
  • Capability Discovery: JSON 형식의 “에이전트 카드”를 통해 각 에이전트가 수행 가능한 작업을 알리고, 적합한 에이전트를 선택 가능함
  • 작업 관리: Task는 A2A에서 정의된 구조로, 단기 작업 또는 장기 작업 모두 지원되며 출력 결과는 artifact로 표현됨
  • 협업 기능: 에이전트 간 메시지를 주고받으며 컨텍스트, 답변, artifact, 사용자 지시사항 등을 공유함
  • 사용자 경험 협상: 메시지 구성 요소(parts)는 명확한 콘텐츠 형식을 가지며 클라이언트와 원격 에이전트 간 UI 형식(iframe, 동영상, 웹폼 등)을 협상함

A2A 주요 개념

  • Agent Card : 외부에 자신의 기능, 엔드포인트, 인증 방식 등을 설명하는 JSON 파일
  • Task : 클라이언트가 에이전트에게 수행을 요청하는 단위로 상태 기반으로 관리됨(submitted → working → input-required → completed/failed)
  • Message : Task 속에서 사용자와 에이전트 간의 대화
  • Part : Message 속에서 실제 콘텐츠 단위
  • Artifact : Task 수행 후 생성되는 결과물로 요약된 문서, 생성된 이미지, JSON 데이터 등

A2A 사용

웹 앱이 실행되면 브라우저를 통해 localhost:12000로 접속할 수 있음

  • 디자인은 Gemini AI Studio와 유사한 Google Material UI 기반
  • 등록된 에이전트 리스트, 에이전트와의 채팅 히스토리 ,각종 이벤트 및 Task 리스트를 UI에서 확인 가능

접속하면 클라이언트에 에이전트를 추가해야하는데 각 에이전트의 base URL을 지정해줘야함
실제로 사용해보고 싶다면 A2A GitHub를 참고

A2A 사용 후기

  1. 클라이언트와 서버를 각각 원격에서 실행하거나 호스팅할 수 있다는 점에서 유연성이 높음
  2. 라이언트는 개별 에이전트를 직접 지정하거나 실행하는 부담이 없음(2A 클라이언트를 실행할 때 모든 A2A 에이전트를 같이 실행할 필요는 없음)
  3. Base URL만 지정하면 되어서 에이전트 구성이 단순하고 Agent Card가 컨텍스트 교환 처리를 함
    • Agent Card : A2A 서버가 외부에 자신의 기능을 JSON 형식으로 정의
  4. 클라이언트를 이미 실행한 이후에도 에이전트를 추가하거나 제거할 수 있음
    • Claude Desktop의 경우 에이전트를 추가, 제거하려면 해당 프로그램을 종료 후 재실행 필요
  5. OpenAPI 및 OAuth 2.0를 지원하여 안전한 데이터 교환을 보장함
  6. 작업 관리 용이
    • 장시간에 걸친 task의 상태 동기화
    • 작업의 라이프 사이클을 구조화하여 명확한 워크플로우를 제공
  7. 멀티모달 지원
    • 텍스트 이외의 오디오, 이미지 등의 다양한 데이터 타입 처리 가능

A2A와 MCP 비교

항목A2AMCP
주요 사용 목적에이전트 간 커뮤니케이션 및 협업LLM에 컨텍스트와 도구(API/SDK) 제공
핵심 아키텍처클라이언트-서버 (에이전트 간)클라이언트-호스트-서버 (앱-LLM-외부 리소스)
표준 인터페이스JSON 명세, Agent Card, Task, Message, ArtifactJSON-RPC 2.0, 리소스, 도구, 메모리, 프롬프트
핵심 기능멀티모달, 동적 협업, 보안성, 작업 관리, 기능 탐색모듈성, 보안 경계, 커넥터 재사용, SDK/도구 탐색
통신 프로토콜HTTP, JSON-RPC, SSEJSON-RPC 2.0 (stdio), HTTP + SSE (또는 stream HTTP)
성능 초점비동기 통신으로 로드 분산고속 처리 위한 컨텍스트 관리, 병렬 처리, 캐싱
생태계와 채택산업계 초기 호응, 생태계는 이제 시작 단계대기업과 개발자 커뮤니티의 빠른 채택, 빠른 성장세

구글은 A2A가 MCP를 보완하는 프로토콜이라고 설명하였지만 MCP를 대체하기 위해서 나온 것 같음

  • 기능적으로 상당 부분 겹치고 더 많은 영역을 커버한다고 생각됨