Agent-to-Agent란?
- AI 에이전트 간 정보·요청·작업을 직접 교환하고 협력할 수 있도록 정의한 개방형 통신 프로토콜
- 각 에이전트는 서로 다른 기반 기술이나 플랫폼에서 독립적으로 작동 가능
- 탈중앙화된 환경을 기반으로 에이전트 간 안전한 메 시지 교환 및 능동적인 실시간 협업 환경 제공
- 2025년 4월 Google에 의해 AI 에이전트 상호운용성 (interoperatbility)을 위한 핵심 프로토콜로 제안
→ 복잡한 기업 워크플로우 자동화 및 AI 에이전트 간 협업 생태계 혁신을 주도할 핵심 기술로 주목 - 이기종(Heterogeneous) 플랫폼 간 에이전트 협업 등 다양한 AI 에이전트 간 소통이 필요한 분야에 적용
작동 방식
- 사용하는 모든 Agent가 다른 Agent와 통신하기 위해 서로 다른 API 형식의 코드가 필요하므로 복잡성이 가중됩니다.
- Agent 간 통신 메시지 포맷 공통화
- Agent Card: 각 에이전트의 기능, 역할, 처리 가능한 작업 종류, 통신 인터페이스를 정의한 ‘프로필’ (=명함 역할)
- Task: 에이전트에 할당되어 수행해야 할 구체적인 작업 또는 목표
- Message: 에이전트 간 의사소통하기 위해 주고받는 구조화된 데이터 패킷
- Part: 메시지(message) 내 특정 데이터에 대한 구성 요소
- Artifact: 에이전트가 태스크(task)를 수행한 결과로 생성되는 산출물
- A2A 주요 구성 요소 (Core Actors)
- End-User: 에이전트 요청을 시작하는 주체
- A2A Client: 사용자를 대신해 작업을 요청
- A2A Server(=Remote Agent): 작업 처리 및 결과 반환
- A2A 실행 흐름
- 에이전트 탐색 (A2A Client)
- 작업 명세 전달 (A2A Client)
- 작업 실행 (A2A Server)
- 작업 완료 전달 (A2A Server)
- A2A 프로토콜의 주요 특징
- 기본적으로 안전한 설계 엔터프라이즈급 인증 및 권한 부여 지원을 목표로 설계, 출시 시점부터 Open API 인증과 동등한 수준의 보안 기능 제공
- 장기 실행 작업 지원 사람이 개입하여 수 시간 또는 수일이 소요될 수 있는 심층연구 까지 유연하게 지원 (+실시간 피드백, 알림, 상태 업데이트 제공)
- 에이전트 본연의 능력 포용 이기종 에이전트 간 협업할 수 있도록 지원하는데 초점, 에이전 트를 단순 “도구”로 제한하지 않고, 진정한 멀티 에이전트 시나리오 구현 가능
- 기존 표준 기반 구축 JSON-RPC, HTTPS 등 널리 사용되는 기존 표준 기술 기반 구축
OpenAI의 Handoff와 랭체인의 프로토콜도 비슷한 솔루션을 제공했지만, 현재 기업들이 다른 솔루션 대신 A2A를 선호하는 핵심 이유는 다음과 같습니다:
1. 사용자 친화적인 디자인(User-Friendly Design): API는 개발자에게 자연스럽게 느껴지는 직관적인 경험을 제공합니다.
2. 프로덕션에 대한 신뢰성(Reliable for Production): 실제 애플리케이션을 위해 설계되었으며, 안정성을 보장하는 강력한 오류 처리 기능이 포함되어 있습니다.
3. 다양한 호환성(Versatile Compatibility): Langchain, CrewAI, Flask, FastAPI, Django 등 다양한 프레임워크 및 API와 원활하게 통합됩니다.
4. 경량화(Lightweight): 핵심 기능은 요청 라이브러리에만 의존하므로 추가 요구 사항을 최소화합니다.
5. 최적화된 성능(Optimised Performance): 효율적으로 작동하도록 설계되어 빠르고 안정적인 기능을 보장합니다.
MCP와 같은 새로운 프로토콜이 아니라 엔터프라이즈급 개발 도구입니다. MCP를 대체하기 위해 개발된 것이 아니라 이를 사용하는 에이전트의 역량을 강화하기 위해 만들어졌습니다.
1. Query: 사용자가 특정 작업이나 정보를 요청하는 Query를 AI Agent 1(Client)에게 보냅니다.
2. Agent Card: Agent의 기능, 스킬, 엔드포인트 URL 및 인증 요구 사항이 포함된 공개 JSON 파일은 클라이언트를 위한 검색 카드 역할을 합니다. 이 Agent Card를 통해 Client는 다른 Agent의 기능을 검색하여 현재 필요에 가장 적합한 Agent를 선택할 수 있습니다.
3. Task: 작업은 중심 단위(central unit of work)입니다. Client는 메시지를 전송하여 task을 시작하며, 각 task에는 고유한 ID가 있고 states를 통해 진행됩니다.
4. Processing: 서버는 작업이 진행됨에 따라 SSE event(status updates, artifacts)를 스트리밍하거나 작업을 동기적으로 처리하여 최종 Task object를 응답으로 반환합니다.
- Interaction(선택 사항): Task에 input이 필요한 경우 Client는 tasks/send 또는 tasks/sendSubscribe를 통해 동일한 task ID를 사용하여 추가 메시지를 보냅니다.
5. Completion: Task가 최종적으로 종료 상태(terminal state)에 도달합니다.
6. Result: Task가 완료되면 선택한 Client Agent를 통해 사용자에게 결과가 다시 전송됩니다.
'NLP | LLM' 카테고리의 다른 글
[Paper Review] Evaluation of Retrieval-Augmented Generation: A Survey (Hao Yu et ak., 2024) (0) | 2025.07.16 |
---|---|
Agent/RAG 논문 리스트 (0) | 2025.07.15 |
[Langchain] 3. Langchain Agent (0) | 2025.07.02 |
[RAG] 3. Sparse Retrieval와 Dense Retrieval (+Ensemble, Reranker) (0) | 2025.06.24 |
[LangChain] 2. LangChain과 RAG에 대한 모든 것 (4) | 2025.06.24 |