A2A Protocol
에이전트끼리 내부를 감춘 채 협업하는 개방 규약
git clone https://github.com/a2aproject/A2A.git서로 다른 회사가 다른 프레임워크로 만들어 다른 서버에서 돌리는 에이전트들이 도구가 아니라 에이전트로서 대화하게 만드는 개방 규약입니다. 상대가 무엇을 할 수 있는지 알아내고, 텍스트나 양식, 미디어 중 어떤 방식으로 주고받을지 협상하며, 오래 걸리는 작업을 안전하게 함께 처리합니다. 핵심은 내부 상태와 기억, 도구를 드러내지 않고도 협업이 된다는 점입니다. MCP 가 에이전트와 도구를 잇는다면 이 규약은 에이전트와 에이전트를 잇는 자리에 있습니다. 저장소는 규격과 스키마를 담고 있고 언어별 SDK 는 별도 저장소로 나뉘어 있습니다.
판단
이럴 때 씁니다
- 다른 팀이 만든 에이전트와 협업해야 할 때
- 상대 에이전트의 내부를 열지 않고 작업을 맡겨야 할 때
- 오래 걸리는 작업을 에이전트끼리 주고받아야 할 때
이럴 땐 쓰지 마세요
- 한 프로세스 안의 에이전트끼리는 규약이 과합니다
- 도구를 붙이는 것이 목적이면 MCP 자리입니다
- 규약이 1.0 에 막 도달해 생태계가 아직 얇습니다
차별점
- 에이전트를 도구가 아니라 대등한 상대로 다루는 규약입니다.
- 내부 상태와 기억, 도구를 드러내지 않고 협업합니다.
- 주고받을 방식을 협상하는 절차가 규약에 들어 있습니다.
- 여러 프레임워크와 회사가 함께 참여하는 공개 표준입니다.
워크플로
- 01규격 문서에서 에이전트 카드와 작업 모델을 읽습니다.
- 02쓰는 언어의 SDK 를 고릅니다.
- 03만든 에이전트를 서버로 노출합니다.
- 04상대 에이전트의 능력을 조회하고 주고받을 방식을 정합니다.
- 05작업을 맡기고 진행 상태를 받습니다.
주요 명령
| 명령 | 설명 |
|---|---|
git clone https://github.com/a2aproject/A2A.git | 규격과 스키마를 받습니다. |
https://a2a-protocol.org/ | 규격 문서와 언어별 SDK 목록이 있습니다. |
함정
설치 전에 확인하세요
- 이 저장소는 규격입니다. 실제로 붙이려면 언어별 SDK 저장소를 따로 찾아야 합니다.
- HTTP 결합에서 선호하는 콘텐츠 타입이 1.0.1 에서 바뀌었습니다. 오래된 구현과 붙일 때 확인이 필요합니다.
- 상대의 내부를 감춘다는 것이 설계 목적입니다. 디버깅할 때 상대 쪽 정보를 얻기 어렵다는 뜻이기도 합니다.
- MCP 와 경쟁 관계가 아닙니다. 도구 연결과 에이전트 협업은 서로 다른 층이므로 함께 씁니다.
비교
MCP 는 에이전트가 도구와 데이터를 부르는 규약이라 부르는 쪽과 불리는 쪽이 나뉩니다. 이쪽은 양쪽 다 에이전트인 상황을 전제하고, 서로의 내부를 모르는 채로 협상하고 협업하는 절차를 정의합니다. 층이 달라서 둘을 함께 쓰는 구성이 자연스럽습니다.
최근 변경
1.0.1 에서 HTTP 결합이 전용 콘텐츠 타입을 선호하도록 규격이 정리됐습니다. 규격 문서의 권고 표현도 함께 다듬어졌습니다.