AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Google A2UI 프로토콜: AI 에이전트가 UI를 직접 만드는 시대

AI 에이전트에게 “레스토랑 예약해줘”라고 말하면 어떻게 될까요? 지금까지는 “몇 명이세요?”, “언제요?”, “몇 시요?” 같은 질문을 주고받는 번거로운 대화가 이어졌습니다. 하지만 만약 AI가 직접 날짜 선택기와 시간 선택 폼을 만들어서 보여준다면 어떨까요?

사진 출처: Google Developers Blog

Google이 바로 이런 비전을 실현하기 위한 오픈소스 프로토콜 A2UI(Agent-to-UI)를 공개했습니다. AI 에이전트가 상황에 맞는 사용자 인터페이스를 직접 생성하고, 이를 어떤 앱이나 플랫폼에서도 안전하게 렌더링할 수 있게 만드는 표준입니다. Google 내부에서 여러 제품에 사용하던 기술을 커뮤니티와 함께 발전시키기 위해 공개한 것이죠.

출처: Introducing A2UI: An open project for agent-driven interfaces – Google Developers Blog

왜 AI는 UI를 ‘말할’ 수 있어야 할까요?

멀티 에이전트 시대가 오고 있습니다. Google의 에이전트가 Cisco, IBM, SAP의 에이전트들과 협업해서 복잡한 작업을 처리하는 세상이죠. Google이 Agent-to-Agent(A2A) 프로토콜을 만들어 Linux Foundation에 기증한 이유도 여기 있습니다.

그런데 문제가 있습니다. 내 앱 안에서 돌아가는 에이전트는 화면을 직접 조작할 수 있지만, 외부 서버나 다른 회사가 운영하는 원격 에이전트는 그럴 수 없습니다. 메시지를 보내는 방식으로만 소통해야 하죠.

기존에는 원격 소스에서 UI를 렌더링하려면 HTML이나 JavaScript를 보내고 iframe으로 샌드박스 처리했습니다. 하지만 이 방식은 무겁고, 앱의 디자인과 따로 노는 느낌이 들며, 보안 문제도 복잡합니다. 데이터처럼 안전하면서도 코드처럼 표현력 있는 방법이 필요했습니다.

A2UI는 어떻게 작동하나요?

A2UI의 핵심 아이디어는 단순합니다. UI를 JSON 형태의 선언적 데이터로 표현하는 거죠. 에이전트는 “이런 버튼, 저런 입력창을 이 순서로 배치해줘”라는 설계도를 보냅니다. 실제 렌더링은 클라이언트 앱이 자신의 네이티브 컴포넌트로 처리합니다.

예를 들어 사용자가 사진을 업로드하면, 원격 에이전트가 Gemini로 이미지를 분석하고 그에 맞는 맞춤형 폼을 즉석에서 만들어 보냅니다. 또 다른 예로는 에이전트가 상황에 맞게 인터랙티브 차트와 Google Maps가 포함된 커스텀 컴포넌트를 응답으로 보낼 수도 있죠.

이 방식의 장점은 세 가지입니다:

보안 우선: A2UI는 실행 가능한 코드가 아니라 선언적 데이터 포맷입니다. 클라이언트 앱은 사전에 승인된 컴포넌트 카탈로그(예: 카드, 버튼, 텍스트 필드)를 유지하고, 에이전트는 그 목록에서만 선택할 수 있습니다. LLM이 생성한 임의의 코드를 실행하는 위험을 피할 수 있죠.

점진적 업데이트: UI가 ID로 참조되는 컴포넌트의 평면 리스트로 표현되어 있어서 LLM이 점진적으로 생성하기 쉽습니다. 대화가 진행되면서 UI를 효율적으로 업데이트할 수 있죠.

플랫폼 독립성: 같은 A2UI JSON 페이로드를 웹 컴포넌트, Flutter 위젯, React 컴포넌트, SwiftUI 뷰 등 어디서든 렌더링할 수 있습니다. UI 구조와 구현을 분리했기 때문입니다.

다른 방식들과 뭐가 다른가요?

최근 AI UI 생태계에서 여러 접근법이 등장하고 있습니다. Model Context Protocol(MCP)의 MCP Apps는 UI를 리소스로 취급해서 ui:// URI로 접근하고 iframe에 렌더링합니다. OpenAI의 ChatKit은 OpenAI 생태계 안에서 고도로 통합된 경험을 제공하죠.

A2UI는 “네이티브 우선” 접근을 취합니다. 샌드박스 안에 불투명한 페이로드를 표시하는 대신, 네이티브 컴포넌트의 청사진을 보냅니다. 덕분에 호스트 앱의 스타일링과 접근성 기능을 완벽하게 상속받을 수 있습니다. 멀티 에이전트 시스템에서 오케스트레이터 에이전트가 서브 에이전트의 A2UI 메시지를 쉽게 이해할 수 있어서 에이전트 간 협업도 더 유연해집니다.

이미 실전에서 쓰이고 있습니다

A2UI는 처음부터 Google 내외부 여러 팀과 협력해서 실제 문제를 해결하기 위해 만들어졌습니다.

Opal은 수십만 명이 자연어로 AI 미니 앱을 만들고 공유하는 서비스인데, A2UI의 핵심 기여자입니다. “A2UI 덕분에 AI가 고정된 프론트엔드에 제약받지 않고 새로운 방식으로 사용자 경험을 주도할 수 있습니다”라고 Opal 팀의 Principal Engineer Dimitri Glazkov는 말합니다.

Gemini Enterprise는 기업이 강력한 커스텀 AI 에이전트를 구축할 수 있게 해주는 플랫폼입니다. A2UI를 통합해서 엔터프라이즈 에이전트들이 데이터 입력 폼부터 승인 대시보드까지 복잡한 워크플로우에 필요한 동적 UI를 생성할 수 있게 준비 중입니다.

Flutter의 GenUI SDK는 이미 A2UI를 UI 선언 포맷으로 사용하고 있습니다. 원격 서버 사이드 에이전트와 앱 사이의 커뮤니케이션 레이어로 쓰이고 있죠. AG UI(CopilotKit) 팀은 첫날부터 A2UI와의 호환성을 보장하여 개발자들에게 강력한 통합 경험을 제공합니다.

아직은 초기 단계, 하지만 가능성은 큽니다

A2UI는 현재 버전 0.8입니다. 초기 사용 사례를 위한 여러 차례의 테스트를 거쳤지만, 아직 진화하고 발견해야 할 것이 많죠. 현재 Flutter, Web Components, Angular용 초기 클라이언트 라이브러리가 있고, 더 많은 프레임워크 지원이 계획되어 있습니다.

이것이 업계 표준이 될지는 지켜봐야 합니다. 하지만 Google이 오픈소스로 공개하고 Apache 2 라이선스로 배포하며, CopilotKit 같은 외부 팀들과 적극 협력하고 있다는 점은 긍정적입니다.

AI 에이전트들이 서로 협업하면서도 각자의 앱에서 일관된 UI 경험을 제공해야 하는 멀티 에이전트 시대에, A2UI 같은 표준화 노력은 필수적입니다. 지금 당장 프로덕션에 적용하기보다는, 이런 방향으로 생태계가 움직이고 있다는 걸 주목할 때입니다.

참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다