2025년 6월 8일
Agent2Agent (A2A)
1. Agent2Agent (A2A)의 개요
(1) Agent2Agent (A2A)의 개념 및 필요성
개념 | 멀티 에이전트형 시스템 구현을 위해 AI 에이전트 간 JSON-RPC, SSE 표준 기반 상호작용하며 작업을 조율하는 개방형 프로토콜 |
---|---|
필요성 | ![]() |
(2) Agent2Agent (A2A)의 특징
- 에이전트에 유용한 도구와 컨텍스트를 제공하는 MCP(Model Context Protocol) 보완
- 대규모 멀티 에이전트형 시스템을 배포하는 과정에서 식별된 문제를 해결
- 다양한 공급자의 에이전트를 결합할 수 있는 유연성 제공
- 다양한 플랫폼과 클라우드 환경에서 에이전트 관리 위한 표준화된 방법 제공
2. A2A의 구성도 및 구성 요소
(1) A2A의 구성도
![]() |
(2) A2A의 구성요소
구분 | 구성요소 | 역할 |
---|---|---|
Agent 측면 | 사용자 (User) | – 에이전트 도움이 필요한 요청이나 목표를 정의하는 최종 사용자(인간 또는 자동화된 서비스) |
A2A 클라이언트 (Client Agent) | – 사용자를 대신하여 원격 에이전트에 작업이나 정보를 요청하는 App 또는 다른 AI 에이전트 | |
A2A 서버 (Remote Agent) | – HTTP 엔드포인트를 통해 연결하는 원격 AI 에이전트 – 클라이언트로부터 요청 수신, 작업 처리, 결과/상태 반환 | |
A2A 연동 측면 | 에이전트 카드 (Agent Card) | – 클라이언트 에이전트가 적합한 원격 에이전트를 선택하기 위해 참조하는 JSON 메타데이터 문서 – Agent ID, 엔드포인트, URL, 버전, A2A 기능, 입출력 방식 |
태스크 (Task) | – 에이전트 간 주고 받는 작업의 단위로, 상태 기반으로 관리 – 고유 ID, 정의된 수명주기(제출됨, 작업중, 실패 등) | |
메시지 (Message) | – 클라이언트와 에이전트 간 단일 통신 또는 통신 단위 – 지침, 컨텍스트, 질문, 답변 또는 상태 업데이트를 전달 | |
파트 (Part) | – 메시지 또는 아티팩트 내 콘텐츠의 기본 단위 – 텍스트 파트, 파일 파트, 데이터 파트 | |
아티팩트 (Artifact) | – 작업 처리 중 원격 에이전트가 생성하는 실질적인 출력/결과 – 문서, 이미지, 구조화된 데이터 결과 또는 작업 결과 정보 |
- A2A는 MCP와 달리 도구를 사용하는 것이 아닌 원격 에이전트와 JSON-RPC, SSE 등 표준 기반 상호작용하여 다중 에이전트를 구현
3. A2A의 설계 원칙 및 상호작용 메커니즘
(1) A2A의 설계 원칙
# | 설계 원칙 | 구현 방안 |
---|---|---|
① | 에이전트 기능 활용 | – 도구, 컨텍스트를 공유하지 않더라도 비정형 방식으로 협업에 중점 – 에이전트를 “도구”에 국한시키지 않고 다중 에이전트 시나리오 구현 |
② | 개방형 표준 준수 | – HTTP, SSE, JSON-RPC 등 표준을 기반으로 구축 – 기존 IT 스택과 쉽게 통합하여 상호 운용성을 보장 |
③ | 기본적으로 보안 강화 | – OpenAPI 인증 체계를 따르고 엔터프라이즈급 보안을 제공 – 출시 시점부터 인증 및 권한 부여를 지원하도록 설계 |
④ | 장기 실행 작업 지원 | – A2A는 백그라운드 작업, 사용자 참여형 승인 및 스트리밍 작업 처리 – 처리중 사용자에게 실시간 피드백, 알림 및 상태 업데이트를 제공 |
⑤ | 모달리티 독립적 | – 에이전트 세계는 텍스트에만 국한되지 않고 다양한 모달리티를 지원 – 이미지, 오디오, HTML, JSON, 기타 구조화/비구조화 형식을 처리 |
(2) A2A의 상호작용 환경에 따른 동작 메커니즘
상호작용 환경 | 메커니즘 | 상세 수행 방식 |
---|---|---|
상태 저장형 장기 실행 작업 필요한 경우 | Request /Response (Polling) | ① 클라이언트는 message/send RPC 메서드 등으로 전송 ② 서버로부터 응답 수신 후 서버는 처음 작동 상태로 응답 ③ 이후 클라이언트는 작업이 종료 상태(완료, 실패)에 도달할 때까지 주기적으로 task/get 메서드를 호출하여 업데이트 폴링 |
점진적 결과 생성, 실시간 진행 상황 업데이트 제공 필요 경우 | Streaming (Server- SentEvents, SSE) | ① 클라이언트는 메시지/스트림사용하여 서버와 상호작용시작 ② 서버는 열려 있는 HTTP 연결로 응답하고, 이 연결을 통해 서버 전송 이벤트(SSE) 스트림을 전송 ③ 서버는 Agent Card에 스트리밍 기능을 광고 |
장기 실행 작업, 지속적 연결 유지가 어려운 경우 | Push Notifications | ① 클라이언트는 작업 시작 시 웹훅 URL을 제공 ② 작업 상태가 크게 변경되는 경우, 서버는 클라이언트가 제공한 웹훅으로 비동기 알림(HTTP POST 요청) 전송 ③ 서버는 Agent Card에 pushNotifications 기능을 광고 |
- A2A의 메커니즘 중 다른 중요한 요소 컨텍스트, 전송 양식, 인증/인가 등이 있으며, 에이전트 간 상호작용하는 A2A는 도구/API와 연결하는 프로토콜인 MCP와 차이점 존재
4. A2A와 MCP 비교
비교 항목 | A2A (Agent2Agent) | MCP (Model Context Protocol) |
---|---|---|
사용 목적 | 에이전트 간 직접 통신 및 협업 | 에이전트와 도구/API 연결 |
특징 | 비동기 처리, 다중 에이전트 협업 | 컨텍스트 효율성, 병렬 처리 |
핵심 기능 | 태스크, 메시지, 아티팩트 기반 협업 | 함수 호출, API 연동 |
통신 방식 | 동적, 비구조화, 멀티모달 기반 | 구조화된 입력/출력 기반 |
- A2A와 MCP 두 프로토콜은 서로 다른 목적을 위해 설계되어 상호 보완적 관계이며, 멀티 에이전트 시스템에서 병행하여 운영되면 시너지를 발휘할 것으로 전망
[참고]
- Google for Developers, Agent2Agent(A2A) 프로토콜 발표, 2025.4
- Google Cloud, A2A Overview, 2025.4
- datacamp, Google’s Agent2Agent Protocol (A2A), 2025.5