A2A 정의 및 개요

황인범·2025년 8월 17일

LLM

목록 보기
2/2

1. 개요

  • 기존

    langGragh의 계층적 멀티 에이전트 아키텍처(피라미드 구조)
    state, key 관리 어려움 + 용량 부족
    복잡한 환경을 langGragh를 사용하여 하나의 에이전트로 모두 커버하기에 어려움
  • 개선

    에이전트간 종속성 분리 및 자율성 강화
    에이전트별 필요한 state만 독립적으로 관리(개별 에이전트 저장 공간 부담 완화)
    에이전트간 수직/수평 state 종속 제거
    분산 환경에서의 state 데이터 파편화 문제


2. 주요 구성 요소(Core Actors


1. End-User

  • 에이전트 요청을 시작하는 주체

2. A2A Client(=Client Agent)

  • 사용자를 대신해 작업을 요청

3. A2A Server(=Remote Agent)

  • 작업 처리 및 결과 반환


3. 기본 통신 요소(Agent간 메시지 포맷 공통화)

  • Agent Card
  • Task
  • Message
  • Part
  • Artifact


1. Agent Card

정의

  • 에이전트의 기능, 역할 처리가능 작업 종류, 통신 인터페이스를 정의한 프로필

구성

  • 이에전트의 이름 및 설명, 서비스 엔드포인트 URLs
  • 지원하는 A2A 기능(스트리밍, 푸시 알림 등)
  • 제공하는 특정 기술(skills) 또는 서비스 목록
  • 기본 입/출력 양식, 인증 요구 사항 등

상세 내용


2. Task

정의

  • 에이전트에 할당되어 수행해야 할 구체적인 작업 및 목표
  • 클라이언트의 요청을 이행하기 위해 성성되는 상태를 가지는(stateful) 공식적인 업무 단위

특징

  • 에이전트가 정의하는 고유 ID(taskId) 보유
  • 여러번의메시지 교환을 포함할 수 있음
  • 수명 주기(Lifecycle)
    : submitted / working / input-required / completed / failed 등

상세 내용


3. Message

정의

  • 에이전트 간 의사소통 하기 위해 주고받는 구조화된 데이터 패킷
  • 클라이언트와 에이전트 간 단일 대화 턴(turn) 또는 통신 단위

구성

  • role: user(클라이언트 발송) | agent(서버 발송)
  • messageId: 메시지 발신자가 설정하는 고유 식별자
  • 하나 이상의 Part 객체를 포함하여 실제 콘텐츠(지시, 맥락, 질문, 답변 등) 전달

상세 내용


4. Part

정의

  • 메세지 또는 아티팩트 내 콘텐츠의 기본단위

구성

  • 각 파트는 특정 타입을 가지면 다른 종류의 데이터를 운반
  • TextPart: 일반 텍스트 콘텐츠
  • FilePart: 파일(인라인 base64 인코딩 또는 URI 참조 방식) 파일명, 미디어 타입 등 메타데이터 포함
  • DataPart: 구조화된 JSON 데이터(파라미터, 폼 등 기계가 읽을 수 있는 정보)

상세 내용


5. Artifact

정의

  • Task 처리 중 remote agent가 수행한 결과로 생성되는 산출물(tangible)

구성

  • 하나 이상의 Part 객체로 구성
  • 증분 방식(incrementally), 즉 부분적으로 나누어 스트리밍 가능
    ex: 생성된 문서, 이미지, 스프레드 시트, 구조화된 데이터 결과물(JSON, CSV 등)


4. 기본 통신 방식

  • Request/Response(Polling)
  • Streaming(SSE)
  • Push Notifications

1. Request/Response

용도

  • 한번 요청하고 바로 응답 받는 방식
  • 클라이언트가 주도적으로 상태를 확인하는데 사용

동작 방식

  • 클라이언트가 message/sent 등으로 요청 전송
  • 장기 작업인 경우 서버는 우선 working 상태로 응답
  • 클라이언트가 작업이 끝날때 까지 주기적으로 task/get을 호출하여 상태 확인(polling: 폴링)

2. Streaming(Server-Sent Events, SSE)

전제 조건

  • 서버의 에이전트 카드에 streaming 기능이 명시되어 있어야 함

용도

  • 지속적인 결과 생성 또는 실시간 진행 상황 업데이트가 필요한 경우

동작 방식

  • 클라이언트가 message/stream 으로 상호작용 시작
  • 서버는 연결을 유지하며 서버 전송 이벤트(SSE) 스트림을 지속적으로 전송
  • 보낼 수 있는 이벤트 종류
    : Task, Message, TaskStatusUpdateEvent(상태 변경), TaskArtifactUpdateEvent(아티팩트 조각) 등

3. Push Notifications(Webhook)

전제 조건

  • 서버의 에이전트 카드에 pushNotifications 기능이 명시되어 있어야함

용도

  • 매우 긴 작업 또는 지속적인 연결 유지가 필요하지 않은 시나리오

동작 방식

  • 클라이언트가 작업 시작 시 Webhook URL 제공(tasks/pushNotificationConfig/set)
    서버의 작업 종료 여부를 전달한 유일한 방법
  • 작업 상태에 중요한 변경이 생기면 (완료, 실패, 입력 요구 등) 서버가 해당 Webhook으로 비동기 알림(HTTP POST) 전송

5. 그 외 주요 기능 요약

1. Context(컨텍스트)

  • 여러 관련 Task를 논리적으로 그룹화하는 서버 생성 식별자
  • 전체 과정의 맥락을 유지하기 위한 장치

2. Transport and Format(전송 및 포맷)

  • 통신은 HTTP(S) 상에서, 페이로드는 JSON-RPC 2.0형식 사용

3. Authentication & Authorization(인증 및 권한)

  • 표준 웹 보안 방식(OAuth 등) 사용
  • 요구 사항은 에이전트 카드에 명시

4. Agent Discovery(에이전트 탐색)

  • 클라이언트가 에이전트 카드를 찾아 작업을 수행할 수 있는 가장 적합한 에이전트를 식별하는 과정


6. A2A 실행 흐름

  • 에이전트 탐색(A2A Client)
  • 작업 명세 전달(A2A Client)
  • 작업 실행(A2A Server)
  • 작업 완료 전달(A2A Server)

MCP vs A2A

0개의 댓글