Google A2A

ponyo721._.·2025년 6월 7일
post-thumbnail

  • 이미지 출처: [https://developers.googleblog.com/ko/a2a-a-new-era-of-agent-interoperability/]

오늘은 구글이 발표한 A2A Protocol이 무엇이고 A2A로 무엇을 할 수 있는지 정리해보려 합니다.

A2A를 알기전에 간단한 사전지식으로 AI AgentMCP에 대해 이해해야 합니다.

AI Agent란?

AI Agents가 정확히 무엇이다 라고 정해진 정의는 없으나 많은 기업에서 AI를 다음과 같이 정의하고 있다.

"사용자의 개입 없이 자율적으로 작동하며, 스스로 복잡한 문제를 해결하고 판단하며, 자율적으로 학습하여 주어진 목표를 달성하거나 문제를 해결하는 지능형 소프트웨어 시스템"

정의만 보면 우리가 영화속에서 AI(터미네이터, 자비스 ...)의 모습을 AI Agent라는 이름으로 정의해둔 느낌이다.

기업들이 정리한 AI Agent
1. Google: https://cloud.google.com/discover/what-are-ai-agents?hl=ko
2. Samsung SDS: https://www.samsungsds.com/kr/insights/what-are-ai-agents.html
3. Amazon: https://aws.amazon.com/ko/what-is/ai-agents/

MCP란?

MCP(Model Context Protocol)란 AI 모델이 외부 데이터나 도구와 상호작용할 수 있도록 연결하는 표준화된 프로토콜입니다. 쉽게 말해, AI가 외부 정보를 활용해서 더 똑똑해지도록 도와주는 기술이다.

예를 들어 AI가 날씨에 대한 정보를 학습하기 위해 기상청에 데이터를 요청하거나, 최신 20대 트렌트를 학습하기 위해 Youtube에 데이터를 요청하는 것 즉, AI가 내가 가진 데이터가 아닌 외부의 데이터를 요청하는 통신 Protocol을 MCP라고 한다.


자 그럼 드디어 이제 A2A가 무엇이고 Google에서 오픈한 A2A Sample Code를 실제로 동작시켜 보도록 하겠습니다.

A2A란?

A2A(Agent2Agent)는 AI Agent가 MCP를 통해 자신이 아닌 다른외부 서비스와 통신하는 프로토콜이 생겼듯이 AI들 끼리 데이터를 교류하고 활용할 수 있도록 Google에서 만든 통신 Protocol입니다.

  • 이미지 출처: [https://google-a2a.github.io/A2A/]

A2A가 탄생하여 AI(AI Agent)는 이제 스스로 학습하며 데이터가 없으면 외부에서 데이터를 가져오고(MCP) 더불어 자신과 같은 다른 AI(AI Agent)와도 통신하여 새로운 정보를 취득할 수 있게 되었습니다.

마치 회사(AI Agent)가 기관(MCP)에 도움을 받고 업체들끼리 협업(A2A)하는 것과 비슷한 모양처럼 보이네요.

A2A Demo

Google은 A2A를 발표하면서 자신들의 프로토콜을 테스트 할 수 있는 Demo Project도 함께 공유하였습니다.

sample: https://github.com/google-a2a/a2a-samples

A2A Demo를 이용해서 실제 A2A Protocol이 어떤식으로 동작하는지 테스트 해보겠습니다.


1. host 실행

  • ${sampleCodePath}/demo 에 있는 README.md 파일을 읽고 demo/ui/main.py 를 실행시켜 줍니다.

  • 앱을 실행하면 localhost:12000 으로 아래와 같은 UI로 A2A를 테스트 할 수 있는 로컬 host서버가 실행됩니다.

host앱을 실행시켰으니 이제 Agent 앱을 실행시켜 보도록 하겠습니다.


2. Agent 실행

  • ${sampleCodePath}/samples/python/agents README.md를 읽고 하위 경로에 존재하는 agent 중 자신이 원하는 agent 를 실행시켜 줍니다. 저같은 경우는 "langgraph" agent를 실행시켜 주었습니다.

  • "langgraph" agent를 실행하면 localhost:10000 앱이 실행되며 README.md 파일을 통해 환율을 알려주는 Agent라는 것을 확인할 수 있습니다.

자 그럼 이제 해당 Agent가 정확히 환율을 알려주는지 테스트 해보도록 하겠습니다.


3. Host & Agent 연동

  • localhost:12000 로 접속하여 좌측 탭을 이용해서 localhost:12000/agnets 경로로 이동해 줍니다. 내가 실행시킨 agent 경로를 작성하여 agent를 추가해 줍니다.

  • 실행시킨 localhost:10000 를 입력 후 Read 버튼을 클릭합니다.

  • 추가될 Agent 정보를 확인하고 save 버튼을 눌러 Agent를 저장합니다.

  • 저장이 완료되면 다음과 같이 Agent목록에 추가됩니다.

  • 실제 "langgraph"를 실행시킨 터미널에 가보면 Agent와 Host가 연결된 로그를 확인할 수 있습니다.


4. Host & Agent 연동 확인

  • 이제 Agent와 Host가 연결되었으니 Agent Card에 나와있는 것처럼 환율에 관한 질문을 해보도록 하겠습니다!

  • Conversation 탭으로 이동하여 100UDS 를 KRW로 변환해 달라고 요청하였고 정확한 응답이 오는것을 확인할 수 있습니다.

  • Event List 탭으로 이동하면 질문에 대해 어떤 이벤트들이 발생했는지 확인할 수 있습니다.


5. Agent Card에 벗어나는 기능 테스트

  • Host가 통신하고 있는 Agent가 모든 질문에 대한 대답을 할 수 있는지 테스트 합니다.

  • 현재 Host는 "langgraph" Agent만을 알 고 있으며 "langgraph"가 가진 기능을 벗어난 질문에 대해서는 응답하지 못하는 것을 확인할 수 있다.


6. Agent 추가

  • 자 이번엔 "crewai" Agent를 실행시켜 주고 Host에 추가해주도록 하겠습니다.
  • Agent Card를 확인해보면 "crewai"는 이미지를 생성해주는 Agent라는 것을 확인할 수 있습니다.

  • 질문이 이상하긴 했지만 Agent를 추가한 후 이미지를 생성해주는 것을 확인할 수 있습니다.

  • 이미지 생성 Agent를 추가한 후 내 Host가 환율과 더불어 이미지까지 생성에 대한 응답까지 가능한 것을 확인하였습니다.


7. A2A (Multi Agent) 테스트

  • 마지막으로 내 Host가 단일 Agent를 사용하는 것이 아닌 Multi Agent를 정말로 사용할 수 있는지 확인해 보도록 하겠습니다.

  • 위에 테스트를 통해 오늘자 1달러는 대략 1376원이라는 것을 확인하였습니다.
    아래와 같은 2가지 질문을 해보았습니다.

  1. "오늘 환율이 1500 이상이면 사과 이미지를 생성해주고 1500미만이면 바나나 이미지를 생성해줘
  2. "오늘 환율이 1300 이상이면 사과 이미지를 생성해주고 1300미만이면 바나나 이미지를 생성해줘
  • Event List를 확인해보면 일단 "langgraph"를 통해 현재 환율을 확인하고 그에대한 응답과 요청을 비교하여 "crewai"를 이용하여 이미지를 생성하는 것을 확인할 수 있습니다.

마치며

Sample 코드를 동작해보면서 정말 머지않아 대부분 인력이 AI로 대체될 수 있다고 생각이 되었다. 앞으로 기업들이 다양한 버티컬 AI를 만들어 내고 이들이 MCP와 A2A를 통해 시너지를 낸다면 AI는 한 분야의 전문가를 넘어선 다양한 산업을 대체할 수 있는 조직이상에 가치를 지니게 될 것이라고 생각된다.

profile
macOS Native Application Developer

0개의 댓글