최근 AI 에이전트가 단순한 챗봇을 넘어 실제 업무를 수행하는 방향으로 발전하면서 새로운 문제가 등장했다.
각 에이전트가 사용하는 모델도 다르고, 연결해야 하는 도구도 다르며, 서로 다른 회사에서 만든 에이전트끼리 협업해야 하는 상황도 늘어나고 있다.
Google의 Agent Tools & Interoperability 백서는 이러한 문제를 해결하기 위한 핵심 표준들을 소개한다.

대표적으로:
- MCP (Model Context Protocol)
- A2A (Agent-to-Agent)
- Agent Card
- A2UI (Agent-to-UI)
- AP2 (Agent Payments Protocol)
- UCP (Universal Commerce Protocol)
이들은 AI 에이전트 생태계의 공통 언어 역할을 수행한다.
현재 대부분의 시스템은 다음과 같은 문제를 안고 있다.
- 도구마다 다른 API
- 모델마다 다른 연결 방식
- 서비스마다 다른 인증 구조
- 에이전트마다 다른 통신 규약
결국 개발자는 수많은 커스텀 연결 코드를 작성해야 한다.
이러한 기술 부채를 줄이기 위해 등장한 것이 바로 다양한 Agent Protocol이다.
MCP: Model Context Protocol
백서는 MCP를 다음과 같이 표현한다.
MCP acts as the "USB-C" within your agent's harness.
즉, MCP는 AI 모델과 외부 도구를 연결하는 표준 인터페이스다.
BigQuery, GitHub, Jira, Google Drive, Database, Internal APIs 같은 시스템을 하나의 방식으로 연결할 수 있다.

기존 방식에서는 $N$개의 모델, $M$개의 도구가 존재하면 $O(N \times M)$개의 통합 포인트를 관리해야 한다.
반면, MCP를 적용하면 모든 모델과 도구가 MCP만 지원하면 되며, 복잡도는 $O(N+M)$으로 감소한다.
에이전트 생태계가 성장할수록 엄청난 차이를 만들어낸다.
Distributed Multi-Agent Network
초기 AI Agent는 하나의 거대한 프롬프트에 모든 기능을 넣었다.

예를 들어 하나의 에이전트가
- 데이터 분석
- UI 생성
- 테스트
- 코드 작성
을 모두 수행한다.
하지만 곧 문제가 발생한다.
- Scaling Friction: 도구가 많아질수록 잘못된 도구를 호출할 확률이 증가한다.
- Context Overload: 모든 정보를 하나의 컨텍스트에 넣어야한다.
- Single Point of Failure: 한 부분의 오류가 전체 시스템에 영향을 준다.
그래서 등장한 개념이 전문화된 에이전트들의 네트워크이다.

예를 들면:
- Billing Agent
- HR Agent
- Compliance Agent
- Salesforce Agent
- Workday Agent
각 에이전트는 특정 분야만 담당한다.
그리고 중앙 Orchestrator가 작업을 분배한다.
A2A: Agent-to-Agent
문제는 서로 다른 회사가 만든 에이전트들이 서로 다른 방식으로 동작한다는 점이다.
이때 필요한 것이 A2A이다.
A2A는 서로 다른 환경에서 만들어진 에이전트들이 공통된 방식으로 발견되고, 연결되며, 협업할 수 있도록 하는 표준 프로토콜이다.
백서는 이를 "AI 생태계의 공용 언어(Lingua Franca)"라고 표현한다.
MCP와 A2A는 비슷해 보이지만 해결하려는 대상이 다르다.
MCP는 도구 연결 (Agent ↔ Tool), A2A는 에이전트 협업 (Agent ↔ Agent)을 담당한다.
도구는 일반적으로 입력과 출력이 명확하다.
날씨 API는 도시 이름을 입력받고 날씨 정보를 반환한다.
반면 Agent는 문제 해결 과정 자체가 열려 있는 경우가 많다.
예를 들어 여행 전문 에이전트에게 "출장 계획을 세워줘"라고 요청하면 추가 질문이 이어질 수 있다.
- 언제 출발하나요?
- 예산은 얼마인가요?
- 출장 목적은 무엇인가요?
- 선호하는 항공사가 있나요?
즉 Agent는 단순히 요청을 받아 결과를 반환하는 함수가 아니라, 중간에 사용자와 협의하고 상태를 유지하며 작업을 이어가는 협업 파트너에 가깝다.
이러한 특성 때문에 Agent는 일반적인 Tool 인터페이스만으로 표현하기 어렵고, 이를 위한 별도의 협업 프로토콜이 필요하다.
Agent Card
멀티 에이전트 환경에서는 "이 에이전트가 무엇을 할 수 있는가?"를 다른 에이전트가 이해할 수 있어야 한다.
이를 위해 A2A는 Agent Card라는 표준 메타데이터 구조를 사용한다.
- Capabilities: 에이전트가 수행할 수 있는 작업
- Security & Compliance: 데이터 처리 정책과 권한 요구사항 (OAuth 인증, 개인정보 처리 정책, 접근 권한 범위)
- Interaction Schema: 에이전트와 통신하는 방법 (지원 프로토콜, 입출력 형식, 상태 관리 방식)
A2UI: Agent-to-UI
에이전트가 복잡한 분석 결과를 반환한다고 가정해보자.
이럴 경우 사용자가직접 시각화해야 한다.

이제는 에이전트가 차트, 카드, 필터, 대시보드까지 생성할 수 있다.
이를 Generative UI라고 부른다.

AP2와 UCP
지금까지 살펴본 MCP, A2A, A2UI는 에이전트가 도구를 사용하고, 다른 에이전트와 협업하며, 사용자와 상호작용하는 방법에 대한 이야기였다.
하지만 실제 비즈니스 환경에서는 정보를 조회하는 것만으로는 충분하지 않다.
에이전트는 상품을 주문하고, 서비스를 구매하며, 결제를 수행하는 등 현실 세계의 행동(Action)까지 수행해야 한다.
AP2와 UCP는 이러한 에이전트 기반 상거래를 안전하게 구현하기 위해 등장한 프로토콜이다.

UCP: Universal Commerce Protocol
에이전트가 실제 구매를 수행하려면 "무엇을 살 것인가"와 "어떻게 결제할 것인가"를 분리해야 한다.
UCP는 상품 탐색과 주문을 담당한다.
AI가 음식 주문을 한다면 메뉴 조회 → 옵션 선택 → 장바구니 → 주문 생성을 수행한다.
AP2: Agent Payments Protocol
AP2는 실제 결제를 담당한다.
예를 들어 다음과 같은 가이드라인이 있을때,
$25 이하만 사용 가능
Taco Bell에서만 사용 가능
AI는 $18 주문 → 디지털 서명 기반 승인 → 결제 수행 → 규칙 위반 시 차단
승인, 감사 추적, 의도 검증, 책임성을 포함한 강력한 금융 가드레일을 제공하여 에이전트가 사용자의 자금을 승인된 범위 내에서만 사용할 수 있도록 통제한다.

Google AI Studio
오늘의 실습을 위해 Antigravity IDE를 설치한다.


Please build a web application for me using Python Flask and plain vanilla HTML, JavaScript and CSS that fetches the BigQuery Release notes from (https://docs.cloud.google.com/feeds/bigquery-release-notes.xml) and shows them to me.
A simple refresh button with a spinner is good enough, anytime I'd like to refresh the details.
I would also like the ability to take any specific update, select it and then Tweet about it.
Antigravity IDE를 실행 (`agy`)해서 위 프롬프트를 입력해 릴리즈 노트의 업데이트 웹페이지를 만들어보자.

앱을 만들기위해 필요한 파일 설치나 실행 권한을 그때그때 허용해준다.

작업이 완료되었다!
https://localhost:5000에 접속해서 확인해보자.

굉장히 깔끔한 형태의 페이지가 구축되었고, 특정 업데이트를 클릭하면 트위터에 글을 포스팅하는 것까지 완벽하게 구현되었다.

이번에는 Antigravity에서 Developer Knowledge MCP를 사용하는 방법을 실습하겠다.

먼저 프로젝트를 생성해주고,

API 키 생성 메뉴에 들어간다.

API 제한사항 선택 부분에서 Developer Knowledge API를 선택 후 생성 버튼을 클릭한다.
화면에 나오는 API 키를 복사해주자.

다음 MCP config 파일에 복사한 API 키 값을 입력한다.

이제 Antigravity에서 Google Developer Knowledge MCP를 사용할 수 있다.

그럼 이 MCP를 사용해서 구글 드라이브에 파일을 업로드하는 파이썬 코드를 생성해보자.

아래와 같이 코드가 생성되었다!

실제로 동작되는지 테스트하기위해 https://vision-ai.tistory.com/252를 참고해서 credientials.json을 다운로드한다.
이후 파일을 작업폴더와 같은 경로에 두고 코드를 실행한다.

구글 계정 로그인하는 창이 뜨는데 권한이 막혀 더 진행되지않는다.

데이터 엑세스 권한도 설정했는데 안된다.
혹시 해결하신 분은 댓글 달아주시면 감사하겠습니다.