30분
A2A 프로토콜: Agent 간 협업의 표준
Day 2: A2A (Agent-to-Agent) 프로토콜
A2A 프로토콜: Agent 간 협업의 표준
AI Agent 심화 > Day 2: A2A (Agent-to-Agent) 프로토콜
학습 목표
A2A 프로토콜의 핵심 개념(Agent Card, Task, Message)을 이해한다 A2A와 MCP의 차이점을 명확히 구분한다 A2A의 통신 흐름을 설명할 수 있다
A2A란 무엇인가
A2A = Agent-to-Agent Protocol
Google이 2025년 발표한 오픈 프로토콜
핵심 비유:
MCP = AI가 "도구"와 대화 (Agent ↔ 시스템)
A2A = AI가 "다른 AI"와 대화 (Agent ↔ Agent)
MCP vs A2A 비교
| 비교 | MCP | A2A |
|---|---|---|
| 목적 | Agent ↔ 외부 시스템 연결 | Agent ↔ Agent 협업 |
| 비유 | USB 포트 | 회의실 |
| 발표 | Anthropic (2024) | Google (2025) |
| 통신 대상 | 데이터/도구 서버 | 다른 AI Agent |
| 핵심 기능 | Resources, Tools, Prompts | Agent Card, Task, Message |
| 관계 | 상호 보완적 | 상호 보완적 |
중요: MCP와 A2A는 경쟁이 아니라 보완 관계!
MCP: Agent가 "손"을 가지게 해준다 (도구 사용)
A2A: Agent가 "입"을 가지게 해준다 (다른 Agent와 대화)
제조 현장에서는 둘 다 필요하다:
- 각 Agent는 MCP로 자기 담당 시스템에 접근
- Agent끼리는 A2A로 협업
A2A 핵심 개념 3가지
1. Agent Card (명함)
{
"name": "설비 관리 Agent",
"description": "공장 설비 상태 모니터링 및 진단",
"url": "https://factory.local/agents/equipment",
"capabilities": {
"streaming": true,
"pushNotifications": true
},
"skills": [
{
"id": "equipment-status",
"name": "설비 상태 조회",
"description": "설비 ID로 실시간 상태 조회"
},
{
"id": "fault-diagnosis",
"name": "고장 진단",
"description": "증상 기반 고장 원인 분석"
}
]
}
Agent Card는 "내가 누구고 무엇을 할 수 있는지" 알려주는 명함이다. 다른 Agent는 이 명함을 보고 누구에게 무엇을 요청할지 결정한다.
2. Task (작업 요청)
Task = Agent 간 작업 단위
상태 흐름:
submitted → working → completed
↘ failed
↘ input-required (추가 정보 필요)
예시:
품질 Agent → 설비 Agent에게:
Task: "B라인 설비 이상 여부 확인해줘"
Status: submitted → working → completed
Result: "PRESS-002 온도 72도, 경고 수준"
3. Message (메시지)
Message = Task 내에서 주고받는 대화
role: "user" (요청하는 Agent) | "agent" (응답하는 Agent)
parts:
- TextPart: 텍스트 메시지
- FilePart: 파일 첨부 (이미지, CSV 등)
- DataPart: 구조화된 데이터 (JSON)
A2A 통신 흐름
┌──────────────┐ ┌──────────────┐
│ 품질 Agent │ │ 설비 Agent │
│ (Client) │ │ (Server) │
└──────┬───────┘ └──────┬───────┘
│ │
│ 1. GET /.well-known/agent.json │
│ ──────────────────────────────────>│
│ Agent Card 반환 │
│ <──────────────────────────────────│
│ │
│ 2. POST /tasks/send │
│ Task: "B라인 설비 확인해줘" │
│ ──────────────────────────────────>│
│ │
│ 3. Task 상태: working │
│ <──────────────────────────────────│
│ │
│ 4. Task 상태: completed │
│ Result: "PRESS-002 과열 감지" │
│ <──────────────────────────────────│
│ │
제조 현장 A2A 아키텍처
┌─────────────────────┐
│ 오케스트레이터 │
│ (공장 총괄 Agent) │
└──────────┬──────────┘
│ A2A
┌────────────────┼────────────────┐
│ │ │
┌────────▼──────┐ ┌──────▼───────┐ ┌──────▼───────┐
│ 설비 Agent │ │ 품질 Agent │ │ 생산 Agent │
│ │ │ │ │ │
│ MCP↓ │ │ MCP↓ │ │ MCP↓ │
│ ┌────────┐ │ │ ┌────────┐ │ │ ┌────────┐ │
│ │PLC/ │ │ │ │QMS │ │ │ │MES/ │ │
│ │SCADA │ │ │ │SPC DB │ │ │ │ERP │ │
│ └────────┘ │ │ └────────┘ │ │ └────────┘ │
└──────────────┘ └──────────────┘ └──────────────┘
각 Agent는:
- MCP로 자기 담당 시스템에 접근
- A2A로 다른 Agent와 협업
AI로 학습하기 — 꿀팁
✅A2A Agent Card 개념 정확성 점검AI 학습 팁
AI가 설명한 A2A의 Agent Card, Task, Message 개념이 Google 공식 A2A 사양과 정확히 일치하는지 검증하세요.
A2A 프로토콜의 Agent Card, Task, Message 세 개념을 설명받았는데, 이 정의들이 Google이 공개한 A2A 공식 사양과 정확히 일치하는지 확인하고, 특히 Task의 상태 전이(state machine)와 Message의 역할에 대해 오해하기 쉬운 부분이 있으면 짚어줘.
이 팁이 도움이 됐나요?