A2A에 대해 알아보기

Jae·2025년 6월 15일

MCP와 같이 자주 나오는 A2A에 대해 알아본 내용을 정리하였습니다.

정의

에이전트 간에 직접 통신하게 하여 다양한 시스템과 애플리케이션 간의 소통하는 방법에 대한 프로토콜의 일종

특징

  • 에이전트 간의 수평적인 상호 운용 프로토콜
  • 표준화된 통신 방식 : HTTP, JSON-RPC, Server-Sent Events(SSE) 등의 웹표준 사용
  • 보안 중심 : Oauth 2.0 등 안전한 에이전트 간 통신 보장
  • 멀티 모달 데이터 지원 : Text, Audio, Video, JSON 등 다양한 데이터 형식 간의 상호작용 지원
  • 오픈소스 표준

구성요소

  1. Agent Card
  • 에이전트의 기능, 기술, 엔드포인트 URL, 인증 요구 사항 등의
  • 에이전트 카드를 통해서 작업에 필요한 에이전트를 식별한다.
  1. A2A Client
  • A2A Server의 서비스를 소비하는 에이전트로 서버에게 요청하여 서비스를 제공받는다.
  1. A2A Server
  • HTTP 엔드포인트를 통해 A2A 프로토콜 메서드를 구현한 후, 클라이언트에게서 전달받은 요청을 처리하여 응답한다.
  1. 작업(Task)
  • 클라이언트가 에이전트에게 전달하는 작업 단위
  • submitted, working, input-required, completed, failed, canceled 등의 상태를 가진다.
  1. Message
  • 클라이언트 에이전트와 서버 에이전트가 메시지를 통하여 통신하며 작업 상황을 조정하거나 명확하게 할 수 있다.
  1. 부분 (Part)
  • 메시지나 아티팩트 내의 기본적인 콘텐츠 단위
  1. 아티팩트 (Artifact)
  • 작업 중 에이전트가 생성한 출력물로, 생성된 파일이나 최종 구조화된 데이터를 포함하며 Parts를 포함.

작동 방법

  1. 발견
  • client는 Agent Card를 통해 Server의 기능, API, 기술 등을 확인하여 어떠한 요청을 처리할 수 있는지 파악한다.
  1. 작업 요청
  • client는 단순 요청인 tasks/send, 스트리밍인 tasks/sendSubscribe API를 호출하여 작업을 생성하여 초기 메시지와 Task ID를 Server(Agent)에게 전송합니다.
  1. 처리(Execution): Server(Agent)는 작업을 처리하며, 단순 요청에서는 최종 결과를, 스트리밍 시 SSE로 실시간 상태를 반환한다.
  2. 추가 입력
  • Server(Agent)가 추가 정보를 요구하면, Client는 동일한 Task ID로 API를 통해 후속 메시지를 전송하며, 이 과정이 반복될 수 있다.
  1. 완료
  • completed, failed, canceled 중 하나의 최종 상태로 종료되머, 최종 결과는 응답 또는 SSE를 통해 client에게 전달된다.
  1. push
  • Client가 webhook을 등록하게 되면, Server는 작업 상태/ 결과 변경 시 해당 URL로 HPPT POST 알림을 보낸다.

참고

https://marcus-story.tistory.com/160

0개의 댓글