데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      A2A 서비스 사용사례 및 고찰

      조경진 25.09.04
      2,814 7 2
      DEVOTEE 요약
      본 블로그는 A2A(Agent-to-Agent) 프로토콜을 활용한 실무 사례를 소개하며, 여러 AI 에이전트가 협력해 복잡한 사용자 요청을 처리하는 구조에 대해 설명합니다. A2A는 호스트 에이전트가 사용자 요청을 분석해 적합한 리모트 에이전트를 호출하고 작업 결과를 종합하는 방식으로 동작하며, 이 과정에서 표준화된 JSON-RPC, HTTP 등을 활용해 통신이 이루어집니다. 이를 통해 개인 및 기업별 AI 에이전트 간 원활한 소통이 가능해지고, 미래의 혁신적인 서비스 환경 구성을 위한 기초가 될 수 있습니다.
      DEVOTEE 추천 블로그

      안녕하세요! SK AX AI engineer 조경진입니다.

      오늘은 A2A 실무 사례에 대해서 소개드리고자 합니다.

      최근 엄청 핫한 A2A를 실무에 적용해야 하는 서비스가 있어서 제가 리서치한 내용과 실무에 적용하면서 고민이 필요했던 내용을 공유드리고자 합니다.


      A2A 프로토콜의 배경

      image

      구글이 2025년 4월에 A2A(Agent-to-Agent) 프로토콜은 AI 에이전트 모델끼리 서로 연결되고 협력하는 방식을 지칭합니다.

      하나의 AI 에이전트 모델이 사용자의 쿼리를 처리하는 것 뿐만 아니라, 여러 AI 에이전트 모델이 서로 소통하며 문제 해결을 확장하는 구조라고 볼 수 있습니다.


      AI 에이전트 모델이 발전하면서 단순한 쿼리 요청이 아닌 다양한 context와 복잡한 요청을 처리해야 하는 경우가 늘어나고 있습니다. 예시를 들어보겠습니다.

      예시: "최근 일주일 사이에 시장의 변동성을 고려해서 주식 차트에 추세선을 그려줘" 라는 사용자 쿼리는 생각보다 단일 AI 에이전트가 처리하기엔 복잡할 수 있습니다.

      이러한 상황에서 하나의 에이저트가 모든 것을 담당하는 것 보다, 여러 도메인과 테스크를 다루는 에이전트들이 서로 협력하는 방식이 필요하게 되었습니다.


      A2A 아키텍쳐

      A2A 아키텍쳐는 간단합니다. host agent가 remote agent를 호출하고 remote agent는 A2A 표준을 통해 A2A server에서 수행한 결과를 다시 host agent에게 전달하는 방식입니다.

      (단, 서버 관리와 여러가지 버전 체계, A2A server 유저별 권한관리들이 필요하겠죠?)

      A2A 프로토콜이란?

      A2A 프로토콜은 AI 에이전트간의 표준화 규칙입니다.

      공식 문서에 따르면 다양한 플랫폼과 프레임워크에서 만들어진 AI 에이전트들이 서로 통신을 주고받을 수 있는 개방형 표준입니다.

      A2A 프로토콜은 이미 잘 알려져있는 웹 표준을 따르고 있습니다.

      • HTTP: 기본적인 통신 프로토콜

      • JSON-RPC 2.0: 데이터 교환 형식

      • SSE(Server-Sent Events): 실시간 업데이트

      이 세가지 표준을 활용하여 통신을 수행합니다. (JSON RPC는 이미 **well-known **데이터 통신 방식이라 한번 보시면 좋을 듯 합니다!)

      A2A 작동 방식

      A2A 프로토콜의 작동방식은 다음과 같습니다

      Agent Card

      image

      각 AI 에이전트는 고유의 정보를 담고 있는 에이전트 카드를 가져야 합니다.

      이 카드에는 해당 에이전트가 무엇을 할 수 있는지, 어떤 스킬을 가지고 있는지 정보를 담고 있습니다. (언급하진 않았지만 A2A는 push notification도 할 수 있습니다..!)

      Agent Skill

      image

      A2A에서 에이전트 스킬은 각각의 에이전트가 수행할 수 있는 구체적인 기술을 의미합니다.

      예를 들어, 여행 에이전트라면 '항공권 검색', '호텔 예약' 등의 스킬을 가질 수 있습니다.

      이러한 skill 정보들이 에이전트 카드에 명시되어, 다른 에이전트들이 어떤 작업을 요청할 수 있는지 파악할 수 있습니다.

      여기서 skill 정보들을 자세히 나열하고 태그들을 명확하게 기입해야 나중에 host agent가 다수의 remote agent를 매끄럽게 call 할 수 있습니다.

      Task Management

      에이전트간 모든 소통은 작업(Task) 중심으로 이루어집니다.

      한 에이전트가 다른 에이전트에게 특정 작업을 요청하면, 해당 작업에 고유 ID가 부여되며 그 작업을 트래킹할 수 있습니다. (ID는 UUID로 관리합니다.)


      Host Agent와 Remote Agent

      위에서 설명한 A2A 프로토콜을 기반으로 에이전트들이 호스트 에이전트(client agent)와 리모트 에이전트(server agent)의 관계로 서로 커뮤니케이션을 수행합니다.

      image

      사진에서는 host agent, remote agent가 모두 MCP server를 가지고 있지만 없어도 됩니다.

      단 잘 보시면 host agent와 remote agent간의 데이터를 주고받는 방식을 /.well-known/agent.json 이라는 JSON 파일로 주고받습니다.

      해당 JSON 파일엔 remote agent의 name, description, tag, skill, example 정보들을 담고 있습니다.

      Remote Agent (server agent)

      리모트 에이전트는 실제로 작업을 수행하는 전문화 에이전트입니다.

      호스트 에이전트에서 받은 작업 요청을 받아 결과를 만들어서 다시 호스트에게 전달합니다.

      리모트 에이전트는 호스트 에이전트가 호출할 수 있도록 자세한 description과 example을 기술하는 것이 좋습니다.

      Host Agent (client agent)

      호스트 에이전트는 작업을 시작하고 관리하는 에이전트입니다.

      사용자의 쿼리를 받아 어떤 작업이 필요한지 파악하고, 적절한 리모트 에이전트를 찾아서 작업을 요청합니다.

      호스트 에이전트가 사실상 A2A의 머리 역할을 담당하는데요, host agent의 성능이 곧 A2A 서비스 성공의 척도이며 올바른 서비스를 구동할 수 있습니다.

      (현재 저는 실무에서 langgraph 기반의 workflow를 작성하여 remote agent를 call 하고 있습니다.)


      사용 예시

      사실 실제 서비스에서는 더 복잡한 context와 host agent가 remote agent calling 을 더 잘해야하는 경우들이 많은데요,

      대외비라 자세한 설명을 드리지 못하는 점이 있습니다. 최대한 비슷하게 Public 환경에서의 사용 예시를 설명드리겠습니다.


      위에서 언급한 여행 계획을 세우는 상황을 고려해보겠습니다.

      1. 사용자 요청: "뉴욕 3박 4일 여행 계획을 작성해줘"

      2. 호스트 에이전트 동작: 여행 계획 에이전트가 요청을 받고, 필요한 리모트 에이전트들의 에이전트 카드를 확인하여 리모트 에이전트를 식별

      3. 작업 분배: 항공편 에이전트, 호텔 예약 에이전트, 가이드 에이전트등 각각의 에이전트들에게 고유의 작업 ID를 부여하여 작업을 요청

      4. 리모트 에이전트 실행: ID를 발급받은 에이전트가 결과를 도출하고 호스트 에이전트에게 결과를 전달

      5. 결과 종합: 호스트 에이전트가 모든 리모트 에이전트들의 결과물을 종합하여 완성된 결과물로 만들어 사용자에게 전달

      이렇게 host agent와 remote agent를 사용한 A2A 서비스 사용 사례를 기술해보았습니다.

      생각보다 고려해야 하는 점이 현저히 많고 google a2a-sdk도 지속적인 버전 업이 되고 있어 있었던 기능이 사라지거나 새로 생기는 기능들이 무수히 많은 것 같습니다.


      그럼에도 불구하고 미래의 각각의 개인별 agent, 기업 agent들을 바탕으로 서로 소통하는 a2a 서비스를 위해선 지금부터 기초를 다지는 건 매우 좋은 것 같습니다!


      Reference

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      조경진 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기