Home / 에이전트 프로토콜 / A2A 프로토콜
Note

A2A 프로토콜

Agent Card, Task 라이프사이클, 멀티에이전트 위임

⏱ 40분 120 / 189

A2A 프로토콜

Agent Card, Task 라이프사이클, 멀티에이전트 위임

연결의 표준화

에이전트 ↔ 도구, 에이전트 ↔ 에이전트, 에이전트 ↔ 사용자

A2A

Agent Card · Task Lifecycle · 위임과 결과

PART 3 · A2A

A2A

독립 배포된 에이전트끼리 작업을 위임하고 결과를 받는 표준 — 발견에서 반환까지

Agent Card · Task · Artifact

에이전트가 서로의 능력을 발견하고, 태스크를 위임하고, 산출물을 구조화하여 돌려받습니다.

  • Agent Card — /.well-known 능력 선언
  • Task Lifecycle — submitted → working → 터미널 상태
  • Message Parts — text · file · data
  • MCP와 상호 보완 — 도구는 수직, 위임은 수평
takeaway

발견 → 위임 → 진행 보고 → 결과 반환의 흐름을 따라가고, 마지막에 MCP와의 역할 경계를 확인합니다.

PART 3 · A2A

A2A 핵심 개념

독립 에이전트가 서로를 발견하고, 작업을 위임하고, 결과를 받는 표준

  1. 1
    Agent Card 발행
    • /.well-known/agent-card.json에 능력 선언
    • 이름, 설명, 지원 스킬, 인증 방식 명시
    • 다른 에이전트가 이 카드를 읽어 능력 발견
  2. 2
    태스크 생성
    • calling agent가 JSON-RPC로 message/send 요청
    • Task ID 발급 → 상태 추적 시작
    • 입력 데이터를 Message Parts(text/file/data)로 전달
  3. 3
    처리 (working)
    • called agent가 비동기로 작업 수행
    • SSE 스트리밍 또는 push notification으로 진행 보고
    • 중간 artifact(산출물)를 점진적으로 반환
  4. 4
    결과 반환
    • 상태: completed / failed / canceled
    • 최종 artifact를 Message Parts로 반환
    • calling agent가 결과를 자기 컨텍스트에 통합
takeaway

calling agent는 Task ID로 상태를 추적할 뿐, 실제 수행은 called agent가 자율적으로 판단합니다 — 도구 호출과 갈라지는 지점입니다.

PART 3 · A2A

Task Lifecycle

태스크 상태 전이 — submitted에서 시작하여 completed/failed/canceled/rejected 터미널 상태로 종료

  1. 1
    submitted

    calling agent가 message/send 호출
    Task 객체 생성 — 고유 ID 부여
    아직 처리 시작 안 됨

  2. 2
    working

    called agent가 작업 수행 중
    SSE로 진행 이벤트 스트리밍 가능
    중간 산출물(artifact) 점진 반환

  3. 3
    input-required

    추가 정보가 필요하여 대기
    calling agent에게 질문 전송
    응답 후 working으로 복귀

  4. 4
    터미널 상태

    성공 completed — 최종 artifact
    실패 failed — 에러 메시지
    취소 canceled — tasks/cancel 요청
    거절 rejected — called agent가 수행 거부

takeaway

input-required는 비터미널 왕복 지점입니다 — 응답하면 working으로 복귀합니다. 스펙에는 인증 대기용 비터미널 상태 auth-required도 정의되어 있으며, 나머지 전이는 터미널 상태로 직행합니다.

PART 3 · A2A

MCP vs A2A — 언제 무엇을

MCP = 도구 연결(수직), A2A = 에이전트 위임(수평) — 상호 보완적

takeaway

동기적 함수 호출이면 MCP, 자율 판단이 필요한 비동기 위임이면 A2A입니다 — 하나가 다른 하나를 대체하지 않습니다.

도구는 MCP로, 에이전트는 A2A로, 사용자는 AG-UI로 연결합니다.

각 프로토콜의 역할을 구분하면 아키텍처가 명확해집니다.