티스토리 뷰

728x90

A2A 프로토콜: 동적 에이전트 디스커버리 및 핵심 인프라

Agent-to-Agent (A2A) 프로토콜은 자율 AI 에이전트 간 통신을 위한 사실상의 표준으로 부상하고 있습니다. A2A의 주요 관심사는 상태 저장 메시징에 집중되어 왔으나, 디스커버리, 명명, 및 해결이라는 핵심 개념은 충분히 탐구되지 않았습니다. A2A 사양은 에이전트 카드를 통해 디스커버리의 초기 단계를 제공하지만, 동적이고 확장 가능한 에이전트 생태계 구축을 위해서는 사양이 의도적으로 구현자에게 위임한 추가 구성 요소가 요구됩니다.

동적 에이전트 디스커버리란?

동적 에이전트 디스커버리는 AI 에이전트가 미리 정해진 정보에 의존하지 않고, 실시간으로 환경 내에서 다른 에이전트의 존재, 기능, 그리고 통신 방법을 능동적으로 검색하고 식별하는 능력을 의미합니다. 이는 에이전트 기반 시스템의 유연성, 확장성, 그리고 자율성을 극대화하여 변화하는 환경에 민첩하게 대응하고 복잡한 작업을 효율적으로 수행할 수 있도록 지원합니다.

동적 에이전트 디스커버리의 필요성

에이전트 간 통신은 호출할 에이전트와 사용 가능한 에이전트를 식별할 수 있을 때 가능합니다. 조직이 더욱 유용하고 자율적인 에이전트 솔루션을 도입함에 따라, 에이전트들이 상호 기술을 활용하여 복잡한 작업을 해결할 수 있는 메커니즘이 필수적입니다. 동적 디스커버리가 특히 중요한 실제 시나리오는 다음과 같습니다.

1. 감독/계획 에이전트

계획 에이전트는 환경 및 실시간 컨텍스트에 기반하여 사용 가능한 에이전트와 도구를 검색하고 조정해야 합니다. 예를 들어, 여행 계획 에이전트가 고객의 요구사항에 맞춰 최적의 여행 일정을 생성한다고 가정해 봅시다. 이 에이전트는 항공권 예약 에이전트, 숙소 예약 에이전트, 관광 정보 에이전트 등 다양한 전문 에이전트들을 동적으로 찾아 협업해야 합니다. 고객의 예산, 선호도, 여행 시기 등 시나리오에 따라 가장 적합한 에이전트를 선택하여 항공권, 숙소, 현지 활동 등을 유기적으로 연결하여 계획을 수립하는 방식입니다. 이는 사람이 여행 계획을 세울 때 여러 전문가의 도움을 받는 것과 유사합니다.

2. 기존 환경의 신규 에이전트

새로 배포된 에이전트는 환경을 신속하게 이해해야 합니다. 다른 에이전트의 실행 상태, 기능, 상호 작용 방식 등을 파악하는 것이 중요합니다. 이는 새로운 팀원이 기존 팀 구성원의 강점과 약점을 이해하는 것과 동일합니다. 디스커버리 기능이 없을 경우, 에이전트 온보딩은 수동적이고 비효율적이며 취약해집니다.

3. 서드파티 벤더 에이전트 통합

벤더들은 플랫폼 강화를 위해 자체 채팅 시스템 및 자율 에이전트를 개발합니다. 이러한 시스템의 통합은 정적인 구성이나 복잡한 IT 회의가 아닌, 동적인 방식으로 이루어져야 합니다. 기성 시스템은 자체 개발 에이전트나 기존 에이전트를 동적으로 검색하고 연동할 수 있을 때 더욱 큰 가치를 제공합니다. 예를 들어, 주요 벤더의 통합 관제 에이전트가 기존 알림 시스템을 동적으로 찾아 알림을 발행하는 시나리오를 들 수 있습니다.

에이전트 카드: 디스커버리의 첫 단계

A2A 사양의 에이전트 카드는 디스커버리를 위한 초기 단계입니다. 이 JSON 문서는 에이전트 이해 및 상호 작용에 필요한 모든 정보를 포함하는 디지털 명함 역할을 합니다. A2A 사양은 에이전트 호스트 이름의 /.well-known/agent.json에 에이전트 카드를 호스팅할 것을 권장합니다.

다음은 간단한 A2A 에이전트 카드 예시입니다.

{
  "name": "여행 계획 에이전트",
  "description": "고객의 요구사항에 맞춰 최적의 여행 일정을 분석하고 제안하는 AI 에이전트입니다.",
  "url": "https://travel-agent.example.com/a2a",
  "version": "1.0.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false
  },
  "securitySchemes": {
    "bearerAuth": {
      "type": "http",
      "scheme": "bearer",
      "bearerFormat": "JWT"
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "defaultInputModes": ["application/json", "text/plain"],
  "defaultOutputModes": ["application/json", "text/markdown"],
  "skills": [
    {
      "id": "analyze_travel_plan",
      "name": "여행 일정 분석 및 추천",
      "description": "고객의 예산, 기간, 선호 활동(예: 휴양, 관광, 액티비티)을 기반으로 최적의 여행 일정을 분석하고 추천합니다. 항공권, 숙소, 현지 교통편, 관광지 정보 등을 종합적으로 고려하여 맞춤형 계획을 수립합니다. 예상 비용, 이동 시간, 활동 제안 등을 포함한 상세한 설명을 제공합니다.",
      "inputModes": ["application/json", "text/plain"],
      "outputModes": ["application/json", "text/markdown"],
      "examples": [
        {
          "description": "유럽 7일 여행 계획 분석 및 추천",
          "input": {
            "travel_year": 2025,
            "destination_type": "europe_city_tour",
            "budget": 3000,
            "duration_days": 7,
            "preferences": ["historical_sites", "local_cuisine", "shopping"]
          },
          "output": {
            "recommended_cities": ["Paris", "Rome", "London"],
            "estimated_cost": 2800,
            "travel_plan_summary": "파리 3일, 로마 2일, 런던 2일 일정으로 주요 역사 유적지 방문 및 현지 음식 체험",
            "recommendations": ["미리 박물관 티켓 예약", "대중교통 이용 계획"]
          }
        }
      ]
    }
  ]
}

주요 특징:

  • 식별 정보: 이름, 설명, 제공자 세부 정보
  • 기능: 스트리밍 또는 푸시 알림과 같은 지원되는 A2A 프로토콜 기능
  • 보안 스키마: 필요한 보안 메커니즘
  • 기술 카탈로그: 에이전트가 수행할 수 있는 작업에 대한 자세한 설명(입출력 모드 및 예시 포함)

에이전트 카드의 skills 섹션은 에이전트의 기능, 한계, 추론 방식에 대한 상세하고 구체적인 설명을 제공하는 데 중점을 둡니다. 이는 잠재적 협력 에이전트가 에이전트 활용 여부를 정확하게 결정하는 데 기여합니다.

에이전트 카드는 "이 에이전트의 기능과 통신 방법"에 대한 기본 정보를 제공합니다. 그러나 디스커버리는 명함 이상의 기능을 요구하며, 필요에 맞는 에이전트를 찾기 위한 체계적인 시스템이 필요합니다.

필수 인프라

에이전트 카드가 기반을 제공하지만, 동적 디스커버리 시스템 구축을 위해서는 A2A가 의도적으로 구현자에게 위임한 세 가지 추가 구성 요소가 필요합니다.

1. 에이전트 등록 (Agent Registration)

에이전트 레지스트리(Agent Registry)는 생태계 내 승인된 A2A 에이전트의 중앙 저장소 역할을 합니다. 이는 기업 환경에 맞춰 엄선되고 체계적으로 관리되는 에이전트 앱 스토어로 볼 수 있습니다.

주요 특징:

  • 등록, 상태, 수정, 비활성화를 위한 API 제공
  • 엄선되고 승인된 에이전트 카드 목록 유지 관리
  • 신규 에이전트에 대한 승인 절차 구현(예: 스킬 증명, 프롬프트 인젝션 스캔, 증명 또는 서명 발행 포함)
  • 다양한 접근 권한 수준(공개, 조직별, 팀별) 지원

레지스트리는 환경 내에서 사용 가능하고 신뢰할 수 있는 에이전트에 대한 단일 정보원이 됩니다.

2. 기능 기반 디스커버리: 에이전트 명명 서비스 (Agent Naming Service)

에이전트 명명 서비스 (ANS)는 단순 카탈로그를 넘어 지능적이고 스킬, 보안, 기능 기반 디스커버리를 제공합니다. 특정 에이전트 이름을 알 필요 없이, 필요한 작업을 설명하여 에이전트를 검색할 수 있습니다.

주요 특징:

  • 에이전트 기능, 스킬, 보안 스키마 등에 대한 의미론적 검색
  • 다중 요구 사항을 결합한 복잡한 쿼리 지원
  • 현재 가용성 및 성능에 기반한 에이전트 점수를 통해 검색 결과에 영향

레지스트리에 검색 기능을 내장하는 것이 아닌, 전용 에이전트 명명 서비스가 필요한 이유는 디스커버리의 지능화에 있습니다.

예를 들어, "항공권" 태그가 지정된 에이전트 검색과 "최저가 항공권 찾기" 쿼리가 "항공권 예약", "항공편 비교", "할인 항공권" 기능이 있는 에이전트와 일치해야 함을 이해하는 것에는 차이가 있습니다. ANS는 의미론적 이해, 벡터 임베딩, 또는 LLM 기반 쿼리 해석을 통해 이러한 격차를 해소합니다. 더 중요하게는, "유럽 여행 일정을 짜고, 현지 투어 상품을 추천하며, 실시간 날씨 정보를 제공하고, 아시아 지역에서 고가용성을 갖는 에이전트를 찾으십시오"와 같이 기능 일치, 통합 요구 사항, 기술 기능, 운영 제약을 단일 지능형 쿼리로 결합하는 복잡한 다차원 쿼리를 처리할 수 있습니다.

에이전트 생태계가 여러 레지스트리(내부 도구, 신뢰할 수 있는 파트너, 공용 마켓플레이스)에 걸쳐 성장함에 따라, ANS는 모든 소스를 검색하고, 성능 지표 및 신뢰 수준에 따라 일관된 점수를 적용하며, "가족 단위 해외여행 계획에 도움이 필요합니다"와 같은 자연어 요청을 구조화된 기능 쿼리로 변환할 수 있는 통합 지능 계층이 됩니다.

ANS는 에이전트 디스커버리를 단순 조회 문제에서 지능형 매칭 문제로 전환시킵니다.

3. 해결 및 정책 시행: 에이전트 게이트웨이 (Agent Gateway)

에이전트 게이트웨이는 ANS가 이해하는 통합 에이전트 이름을 실제 네트워크 엔드포인트로 변환하고, 보안 및 정책 결정을 적용하며, 트레이싱 및 가시성(observability)을 통합하는 중요한 인프라 계층을 제공합니다. 이 구성 요소는 프로덕션 환경에서 필수적입니다.

주요 특징:

  • 이름 해결: 논리적 에이전트 이름을 실제 엔드포인트로 변환
  • 보안 시행: 인증, 권한 부여 및 정책 제어 적용
  • 탄력성: 라우팅, 실패, 재시도 및 폴백(fallback) 라우팅 처리
  • 가시성: 포괄적인 트레이싱, 로깅 및 모니터링
  • 로드 밸런싱: 동일한 에이전트 유형의 여러 인스턴스에 요청 분산

에이전트 게이트웨이는 에이전트 간의 통신이 대규모로 안정적이고 안전하게 작동하도록 보장합니다.

sequenceDiagram
    title A2A 동적 에이전트 핵심 인프라 구성

    participant CallingAgent as 호출 에이전트
    participant ANS as 에이전트 명명 서비스<br/>(Agent Naming Service)
    participant Registry as 에이전트 레지스트리<br/>(Agent Registry)
    participant Gateway as 에이전트 게이트웨이<br/>(Agent Gateway)
    participant TargetAgent as 대상 에이전트

    %% 검색 단계
    CallingAgent->>ANS: 1. 에이전트 검색 요청
    ANS->>Registry: 2. 에이전트 정보 조회 (기능/스킬 기반)
    Registry-->>ANS: 3. 에이전트 카드 반환
    ANS-->>CallingAgent: 4. 대상 에이전트 논리적 이름 반환<br/>(예: travel-planner-europe)

    %% 호출 단계
    CallingAgent->>Gateway: 5. 에이전트 호출 요청<br/>(논리적 이름 사용)
    Gateway->>ANS: 6. 논리적 이름 해석 요청
    ANS-->>Gateway: 7. 실제 엔드포인트 반환<br/>(예: https://travel.example.com/api/v1/europe)

    Gateway->>TargetAgent: 8. 정책 적용 및 에이전트 호출
    TargetAgent-->>Gateway: 9. 응답 반환
    Gateway-->>CallingAgent: 10. 최종 응답 전달

    %% Notes (Mermaid does not support side notes per component)
    note over Registry: 🗂️ 카드 목록 관리 및 승인 절차 포함
    note over ANS: 🔍 의미론적 검색, 스킬 기반 매칭<br/>📌 논리적 이름-엔드포인트 매핑
    note over Gateway: 🔐 이름 해석, 보안, 로드 밸런싱<br/>🛠️ 트레이싱 및 실패 처리

결론

AI 에이전트가 인간 팀처럼 유연하게 협력하는 시대가 도래하고 있습니다. 동적 디스커버리는 에이전트가 서로를 찾고, 기능을 이해하며, 복잡한 문제를 함께 해결할 수 있도록 지원하는 필수 인프라입니다.

A2A 프로토콜은 표준과 빌딩 블록을 제공합니다. 에이전트 카드는 기능 설명을 위한 첫 단계를 제공하지만, 진정으로 자율적이고 협력적인 AI 시스템의 비전은 이 모든 것을 통합하는 디스커버리 인프라 구축을 통해서만 실현될 수 있습니다.

---

아래글을 참고하여 살짝 수정해 올렸습니다.

https://blog.christianposta.com/dynamic-agent-discovery-with-a2a-and-ans/

[Agent Discovery, Naming, and Resolution - the Missing Pieces to A2A

The Agent-to-Agent (A2A) protocol is emerging as the de-facto standard for how autonomous AI agents talk to each other. While most of the interest around A2A has been around stateful messaging, one of its most powerful ideas remains largely unexplored: dis

blog.christianposta.com](https://blog.christianposta.com/dynamic-agent-discovery-with-a2a-and-ans/)

728x90

'프레임워크 > A2A' 카테고리의 다른 글

A2A 및 MCP: 에이전트 시스템을 위한 프로토콜  (0) 2025.07.17
A2A 프로토콜 핵심 개념  (0) 2025.07.17
댓글