A2A(Agent-to-Agent) 프로토콜 소개
Google이 다양한 기술 파트너들과 함께 AI 에이전트 간의 상호 운용성을 위한 오픈 프로토콜 Agent2Agent(A2A)를 공개했습니다. Anthropic의 MCP와도 호환되는 이 프로토콜은, LangChain, Cohere, Salesforce, MongoDB, SAP 등 수십 개 기업이 참여하고 있어 향후 에이전트 기반 AI 서비스 구축에 중요한 기준이 될 것으로 보입니다.
최근 기업들이 도입하고 있는 AI 시스템은 점점 더 복잡해지고 있습니다. 단일 모델이 아닌, 여러 특화된 에이전트(Agent)들이 협업하며 사용자 요청을 처리하는 다에이전트(Multi-Agent) 구조가 대세입니다. 문제는 서로 다른 벤더나 프레임워크로 개발된 에이전트들이 협업하기가 어렵다는 점입니다. 이를 해결하기 위해 Google이 Agent2Agent(A2A)라는 오픈 프로토콜을 제안했고, 50개 이상의 기술 파트너와 함께 구현에 나섰습니다.
A2A는 "에이전트 간의 협업을 위한 통신 표준"입니다. 즉, 서로 다른 벤더가 만든 에이전트들이 작업(Task)을 주고받고, 산출물(Artifact)을 공유하며, 사용자 경험(UI)을 협의하고, 실시간 스트리밍으로 상태를 동기화하는 것을 가능하게 합니다.
Google은 이 프로토콜을 통해 다음과 같은 문제를 해결하려고 합니다:
- 에이전트 간 API 및 포맷 불일치
- 인증/인가 방식의 차이
- 텍스트 이외의 다양한 데이터 타입 (오디오, 이미지 등) 처리 문제
- 장시간에 걸친 작업(task)의 상태 동기화
A2A는 Anthropic의 MCP처럼 컨텍스트 공유도 지원하지만, 그보다는 작업 중심의 실시간 협업에 더욱 초점을 맞춥니다:
기능 | Anthropic MCP | Google A2A |
---|---|---|
주요 목적 | 모델 컨텍스트 공유 | 에이전트 간 협업 및 상호운용 |
구조 | 메모리/컨텍스트 포맷 중심 | 작업(Task), 메시지, 산출물 중심 |
실시간 통신 | 없음 | SSE 기반 스트리밍 및 Webhook 알림 |
인증 방식 | 한정적 | OpenAPI 인증 방식 기반 |
멀티모달 지원 | 제한적 | 텍스트, 오디오, 비디오, 웹폼 등 |
Agent2Agent의 핵심 구성요소
-
AgentCard:
/ .well-known/agent.json
에 위치하며, 해당 에이전트의 능력, URL, 인증 방식 등을 명시한 메타데이터입니다.{ "name": "MySmartAgent", "description": "전문적인 후보자 추천 에이전트", "capabilities": ["search", "rank", "schedule"], "endpoint": "https://agent.example.com/a2a", "auth": { "type": "bearer", "token_url": "https://auth.example.com/token" } }
-
Task: 클라이언트가 서버(에이전트)에게 수행을 요청하는 단위로, Task의 상태는
submitted → working → input-required → completed/failed
으로 변화합니다. -
Message / Part: Message는 사용자와 에이전트 간의 커뮤니케이션이며, Part는 메시지 내에서 텍스트, 이미지, 파일 등 실제 콘텐츠 단위를 뜻합니다.
-
Artifact: Artifact는 작업 수행 후 생성되는 결과물로, 요약된 문서, 생성된 이미지, JSON 데이터 등을 뜻합니다.
-
실시간 스트리밍 & Push 알림:
tasks/sendSubscribe
API를 통해 SSE 기반 실시간 상태 업데이트 수신 가능합니다. 또한,pushNotification/set
API로 Webhook 등록 후 서버 측 상태 변경 시 알림을 수신할 수 있습니다.
Agent2Agent의 아키텍처 & 동작 흐름
-
에이굵은 텍스트전트 등록 및 검색: 클라이언트가 AgentCard를 통해 적절한 에이전트를 탐색
-
작업 생성 및 요청: 클라이언트가
tasks/send
또는sendSubscribe
로 작업 요청 -
상태 처리: 서버는 작업을 수행하며 SSE 또는 Webhook을 통해 상태 전달
-
중간 입력 필요 시:
input-required
상태일 경우 클라이언트가 메시지 추가 전송 -
작업 종료: 작업이 완료되거나 실패하면 최종 결과물을 Artifact로 반환
라이선스
Google의 A2A 프로토콜 프로젝트는 Apache 2.0 License로 공개 및 배포되고 있습니다. 상업적 이용도 자유롭고 제약이 적습니다.
Agent2Agent 프로토콜 공개 블로그
Agent2Agent 프로토콜 GitHub 저장소
Agent2Agent 공식 문서 및 예제
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~