본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 27. 03:36

A2A 및 에이전트 검색(Agent Search) 소개

요약

AI 에이전트 간의 표준화된 통신을 지원하는 Agent2Agent(A2A) 프로토콜의 개념을 소개합니다. A2A는 에이전트가 서로의 역량을 발견하고 안전하게 협업할 수 있는 개방형 프로토콜을 제공하며, MCP와 상호 보완적인 관계를 형성합니다.

핵심 포인트

  • A2A 프로토콜은 에이전트 간 메시지 및 데이터 교환 표준화
  • 에이전트의 역량 발견 및 안전한 협업 기능 제공
  • MCP는 도구 접근에, A2A는 에이전트 간 통신에 집중
  • 멀티 에이전트 시스템 구축을 위한 필수적인 상호작용 수단

David Tracey 작성

AI는 단순한 도구에서 추론과 의사결정이 가능한 점점 더 복잡한 에이전트(Agents)로 빠르게 진화하고 있습니다. 에이전트가 더 많은 작업에 사용됨에 따라, 여러 개의 협력하는 에이전트를 사용하는 능력은 특히 전문 지식이 필요하거나 여러 도메인에 걸친 접근이 필요한 작업에서 점점 더 중요해질 것입니다.

대규모의 유연한 솔루션을 위해서는 에이전트들이 신뢰할 수 있는 협업 수단을 사용하여 서로의 역량을 전달할 수 있는 공통된 수단이 필요합니다. 그것이 바로 Agent2Agent (A2A) 프로토콜이 제공하고자 하는 것입니다.

이 글은 3부작 시리즈의 첫 번째 게시물입니다:

  1. 1부 (본 게시물): A2A 개념 소개 및 "Hello World" 에이전트
  2. 2부: Bronto의 로깅 플랫폼을 포함한 여러 데이터 소스를 쿼리하기 위해 MCP 사용하기
  3. 3부: 여러 에이전트를 오케스트레이션(Orchestrating)하는 "SuperAgent"와 함께 A2A 및 MCP 결합하기

왜 A2A인가?

원래 Google에서 개발되었고 현재 Linux Foundation에서 오픈 소스 프로젝트로 관리되고 있는 Agent2Agent 프로토콜은 에이전트에게 HTTP를 기반으로 구축된 상호작용을 위한 개방형 프로토콜을 제공합니다. 이는 에이전트가 메시지, 요청 및 데이터를 교환하는 방식을 표준화하여 에이전트가 다음과 같은 작업을 수행할 수 있도록 합니다:

  • 내부 상태(Internal state), 메모리(Memory) 또는 구현(Implementation)을 노출하지 않고 서로의 역량을 발견(Discover)
  • 상호작용 세부 사항(텍스트, 양식, 미디어 등) 협상
  • 실행 중인 작업에 대해 안전하게 협업

IBM의 에이전트형 AI(Agentic AI) 정의는 이를 잘 포착하고 있습니다: "에이전트형 AI는 제한된 감독 하에 특정 목표를 달성할 수 있는 인공지능 시스템이다". 여기서 멀티 에이전트 시스템(Multi-agent system)의 각 에이전트는 AI 오케스트레이션(AI orchestration)을 통해 조정되는 특정 하위 작업(Subtask)을 수행합니다.

A2A와 MCP: 상호 보완적인 프로토콜

MCP와 A2A는 서로 다르지만 상호 보완적인 역할을 수행합니다:

  • MCP는 에이전트(Agent)에게 도구(Tools)와 구조화된 데이터 소스(Structured data sources)를 노출합니다. 이는 에이전트가 데이터베이스나 제품 API에 접근하는 방식을 표준화함으로써 에이전트의 역량을 확장합니다. MCP는 단일 에이전트가 도구에 접근하는 것에 집중하며, 내장된 에이전트 인증(Agent authentication) 기능은 부족합니다.
  • A2A는 구조화된 에이전트 간 통신(Agent-to-agent communication)을 제공합니다. 이를 통해 여러 자율 에이전트(Autonomous agents)가 에이전트 카드(Agent Cards)를 통해 노출된 역량(Capabilities)을 사용하여 협업하고, 작업을 위임하며, 정보를 교환할 수 있습니다. A2A는 보안 통신 및 역량 발견(Capability discovery)을 통한 멀티 에이전트 상호작용(Multi-agent interactions)을 가능하게 합니다.

MCP 도구(MCP Tools)는 일반적으로 정의된 입출력(Inputs/outputs)을 가진 기본적인 작업입니다. A2A는 추론(Reasoning)하고, 도구를 사용하며, 복잡한 문제에 대해 협업하는 자율 에이전트를 위해 설계되었습니다. 두 프로토콜은 상호 배타적이지 않습니다. 에이전트는 특정 도구 접근을 위해 MCP를 사용하고, 더 넓은 범위의 에이전트 협업을 위해 A2A를 사용할 수 있습니다.

이 시리즈의 파트 3에서는 A2A 에이전트가 MCP 서버 앞에 위치하는 새로운 패턴을 보여줄 예정입니다.

핵심 A2A 개념

에이전트 카드 (Agent Card) — 에이전트의 역량(Capabilities), 기술(Skills), URL 및 인증 요구사항(Authentication requirements)을 설명하는 공개 메타데이터(Public metadata)입니다. 다른 에이전트들은 이 카드를 검색하여 해당 에이전트가 무엇을 할 수 있는지 파악합니다.

A2A 서버 (A2A Server) — A2A 메서드(Methods)를 구현하는 HTTP API 엔드포인트(Endpoint)를 노출하고, 다른 에이전트를 대신하여 작업을 실행합니다.

A2A 클라이언트 (A2A Client) — 작업을 시작하기 위해 A2A 서버에 요청을 보내는 애플리케이션 또는 에이전트입니다.

작업 (Task) — A2A 메시지(역할: user)를 보내는 클라이언트에 의해 시작됩니다. 각 작업은 고유한 ID와 상태(submitted, working, input-required, completed)를 가집니다.

메시지 (Message) — 역할(user 또는 agent), 선택적 메타데이터, 그리고 파트(Parts) 배열(TextPart, FilePart 또는 구조화된 JSON 데이터)을 포함합니다.

통신 흐름 (Communication flows):

  1. 발견 (Discovery) — 클라이언트가 GET /.well-known/agent-card.json을 통해 에이전트 카드(Agent Card)를 가져옵니다.
  2. 시작 (Initiation) — 클라이언트가 작업 ID(Task ID)와 함께 서버 에이전트에게 요청을 보냅니다.
  3. 처리 (Processing) — 서버가 작업을 처리하며, 필요한 경우 서버 전송 이벤트(Server-Sent Events)를 통해 중간 업데이트를 스트리밍합니다.

A2A protocol diagram

Hello World A2A 에이전트 구축하기

설치 및 설정

이 예제들은 공식 A2A samples repository를 사용합니다. 요구 사항:

  • Python 3.12 이상
  • UV (권장되는 Python 패키지 매니저)

샘플 실행하기

# 저장소 클론
git clone https://github.com/a2aproject/a2a-samples.git
cd a2a-samples/samples/python/agents/helloworld
...

이 명령은 helloworld 디렉토리의 __main__.py를 실행하며, 이는 AgentCard, AgentSkill 및 확장된 카드를 정의한 후 uvicorn을 호출하여 localhost:9999에서 서버를 실행합니다.

별도의 터미널에서 클라이언트를 실행하세요:

uv run test_client.py

에이전트 카드(Agent Card) 응답

서버는 공개된 에이전트 카드(Agent Card)를 반환합니다:

{
  "capabilities": { "streaming": true },
  "defaultInputModes": ["text"],
...

인증된 클라이언트는 추가적으로 super_hello_world 스킬이 포함된 확장된 카드를 받게 됩니다. 이는 A2A가 인증 수준에 따라 기능 계층(capability tiers)을 어떻게 지원하는지 보여줍니다.

파트 2와 3에서 다룰 내용

파트 2에서는 Bronto의 REST API와 SQLite 데이터베이스를 위한 간단한 MCP 서버를 구축하는 방법을 보여줍니다. 그런 다음 Claude를 사용하여 데이터 이동 없이 자연어 프롬프트만으로 두 곳을 동시에 쿼리하는 방법을 살펴봅니다.

파트 3에서는 이를 확장하여 두 개의 A2A 에이전트(각 데이터 저장소당 하나씩)를 오케스트레이션(orchestrating)하는 "SuperAgent"가 포함된 전체 A2A 시나리오를 구현하며, A2A와 MCP가 어떻게 함께 작동하는지 보여줍니다.

더 큰 그림: A2A가 여전히 해결해야 할 과제들

A2A는 진화 중인 프로토콜입니다. 추가적인 개발이 필요한 현재 영역은 다음과 같습니다:

  • 멀티 에이전트 오케스트레이션 (Multi-agent orchestration) — 서로 다른 조직의 에이전트 간 충돌 처리(conflict handling) 및 장애 복구(failure recovery)에 대한 표준화된 지원
  • 공유 어휘 (Shared vocabulary) — 송장(invoices), 정책(policies), 영수증(receipts)과 같은 공통 항목에 대해 합의된 표준 정의가 없음
  • 신뢰 (Trust) — 조직의 경계를 넘나드는 에이전트 간의 신뢰 구축이 도입의 핵심임
  • 보안 (Security) — 인증(authentication)은 제공되지만, 조직 및 국가 간의 프라이버시를 위한 더 풍부한 방식이 필요함
  • 엔터프라이즈 준비성 (Enterprise readiness) — 표준화된 사용 관리(usage management), SLO(Service Level Objectives), SLA(Service Level Agreements) 및 자동화된 협상(automated negotiation)

Cisco, LangChain, Galileo 등이 지원하는 별도의 오픈 소스 프로젝트인 AGNTCY는 에이전트 기능 기술(capability descriptions)을 표준화하기 위한 또 다른 접근 방식으로서 오픈 에이전트 스키마 프레임워크 (Open Agent Schema Framework, OASF)를 제공합니다.

Bronto의 AI 기능 살펴보기

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0