A2A는 Google이 2025년 공개한 개방형 규약으로, 만든 회사나 프레임워크가 달라도 AI 에이전트끼리 작업을 맡기고 결과를 받을 수 있게 한다. 도구를 연결하는 MCP와 달리 에이전트와 에이전트를 잇는 규약이라, 여러 에이전트를 묶어 하나의 일을 처리하는 멀티에이전트 시스템을 만들 때 쓴다.
| 구분 | MCP | A2A |
|---|---|---|
| 연결 대상 | 에이전트 ↔ 도구·데이터 | 에이전트 ↔ 에이전트 |
| 상대의 성격 | 정해진 기능을 실행하는 도구 | 스스로 판단하는 다른 에이전트 |
| 이럴 때 쓴다 | DB 조회, 파일 읽기, API 호출 | 다른 팀·회사 에이전트에 일 위임 |
A2A 에이전트는 자기 이름, 할 수 있는 일(스킬), 접속 주소, 인증 방식을 적은 에이전트 카드(JSON 문서)를 공개한다. 일을 맡기는 쪽은 이 카드를 읽고 맞는 에이전트를 골라 요청을 보낸다.
통신은 HTTP 위에서 JSON-RPC 형식으로 오가고, 요청 하나는 '작업(Task)' 단위로 관리된다. 작업은 진행 중, 추가 입력 필요, 완료, 실패 같은 상태를 거치며, 결과물은 텍스트·파일·구조화 데이터로 돌려받는다.
| 상황 | 받는 방식 |
|---|---|
| 금방 끝나는 일 | 요청 한 번에 바로 응답 |
| 진행 상황을 보고 싶은 일 | 스트리밍(SSE)으로 중간 결과 수신 |
| 몇 시간 걸리는 일 | 끝나면 알림(푸시)으로 통보 |
공식 SDK로 내 에이전트를 A2A 서버로 감싸 노출하거나, 다른 A2A 에이전트를 부르는 클라이언트를 만들 수 있다. Google의 에이전트 개발 도구(ADK)처럼 A2A를 지원하는 프레임워크를 쓰면 설정 몇 줄로 연결된다. 예를 들어 여행 예약 에이전트가 항공권·호텔·일정 에이전트에게 각각 일을 맡기고 결과를 모으는 구성을 만들 수 있다.
순서는 보통 이렇다. 맡길 에이전트의 카드를 확인하고, 인증 정보를 준비한 뒤, 작업을 보내고 상태를 확인하며 결과를 받는다. 에이전트 하나를 다른 것으로 바꿔도 규약이 같으니 나머지는 손댈 필요가 없다.
혼자 도구를 불러 처리하는 에이전트라면 MCP로 충분하고, 한 코드베이스 안에서 함수로 묶인 에이전트끼리도 굳이 A2A를 쓸 이유가 적다. 다른 팀이나 외부 회사의 에이전트와 엮어야 할 때 효과가 크다.
A2A는 상대 에이전트의 내부 동작을 보지 않고 결과만 주고받는 구조라, 상대를 얼마나 믿을지는 직접 판단해야 한다. 인증·권한 범위를 꼭 정하고, 규약이 아직 다듬어지는 중이라 SDK 버전 변화도 챙겨 보는 게 좋다.
가장 흔한 방식은 조율 역할의 에이전트 하나가 여러 에이전트의 카드를 보고 일을 나눠 맡기는 구성이다. 도구 연결은 MCP로, 에이전트끼리의 위임은 A2A로 나눠 함께 쓰는 경우가 많다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 사내 멀티에이전트 시스템 | 팀마다 만든 에이전트를 A2A 서버로 노출하고, 조율 에이전트가 필요한 곳에 작업을 보냄 |
| 외부 회사 에이전트 연동 | 상대 카드에 적힌 인증 방식에 맞춰 작업을 보내고 결과만 받음 |
| 오래 걸리는 백그라운드 작업 | 작업을 맡겨 두고 푸시 알림으로 완료를 받아 다음 단계로 넘김 |