30

A2A 프로토콜: 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 비교

비교MCPA2A
목적Agent ↔ 외부 시스템 연결Agent ↔ Agent 협업
비유USB 포트회의실
발표Anthropic (2024)Google (2025)
통신 대상데이터/도구 서버다른 AI Agent
핵심 기능Resources, Tools, PromptsAgent 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의 역할에 대해 오해하기 쉬운 부분이 있으면 짚어줘.
이 팁이 도움이 됐나요?