Google, 에이전트가 설명한 화면을 앱 UI로 그리는 A2UI 1.0 공개
Google A2UI 팀은 에이전트가 화면 구성을 설명하면 각 앱이 자체 화면 요소로 표시하는 공개 프로토콜 A2UI 1.0을 11월 11일 첫 안정 버전으로 공개했습니다. 새 버전은 앱과 에이전트가 정해진 함수를 양방향으로 호출하는 기능과 접근성 지원을 추가했습니다. 도입하려면 앱의 구성요소 카탈로그·렌더러와 에이전트 SDK를 연결해야 합니다.

Google A2UI 팀과 A2UI 제품 관리자 비샬 모트와니는 11월 11일 공개 생성형 UI 프로토콜 A2UI의 첫 안정 버전 1.0을 발표했습니다. A2UI는 에이전트가 어떤 화면을 보여줄지 메시지로 설명하고, 앱이 그 내용을 자체 화면 구성요소로 그리도록 정한 규격입니다. 글로 된 답을 읽고 다시 질문하는 대신 앱 안에서 선택·수정·확인하는 화면을 제시하도록 개발자가 구성합니다.
개발자는 먼저 앱이 표시할 수 있는 구성요소와 각 요소가 받는 속성, 사용할 함수를 카탈로그에 등록합니다. 항공편 카드와 인원수 선택기, 확인 버튼을 마련하고 각 요소에 전달할 값과 속성의 규칙을 정하는 식입니다. 앱에는 이 구성요소를 실제 화면으로 그리는 렌더러를 둡니다. 서버 쪽 에이전트 SDK는 카탈로그를 바탕으로 모델에 줄 지침과 출력 문법을 만들고, 모델이 생성한 화면 설명이 규칙에 맞는지 검사합니다. 모델과 에이전트 로직은 SDK와 별도로 동작합니다.
예를 들어 사용자가 왕복 항공편을 찾으면 에이전트는 항공편 검색 도구에서 편명과 가격을 받아 화면에 쓸 정보를 마련합니다. 모델은 A2UI Express 같은 간결한 형식으로 왕복편 카드와 인원수 선택기, 확인 버튼을 설명할 수 있습니다. SDK 컴파일러는 각 구성요소가 카탈로그에 등록돼 있는지, 속성이 정해진 형식에 맞는지 확인한 뒤 화면 구성과 데이터 값을 담은 메시지를 앱에 보냅니다.
앱의 렌더러는 메시지에 지정된 구성요소를 플랫폼의 실제 화면 요소로 표시하고, 각 요소에 연결된 데이터 값을 반영합니다. 사용자가 인원수를 바꾸는 동안에는 렌더러가 앱의 데이터 모델을 갱신합니다. 확인 버튼을 누르면 선택한 인원수와 같은 값, 사용자의 동작이 에이전트로 전달되고 에이전트는 예약 등 다음 작업을 처리할 수 있습니다.
1.0은 화면과 에이전트가 정해진 함수를 서로 호출하는 기능을 추가했습니다. 0.9.1에서도 버튼을 누른 사용자의 의도를 이벤트로 에이전트에 전달할 수 있었지만, 함수 호출은 렌더러 안에서 실행되는 작업에 한정됐습니다. 1.0에서는 화면 구성요소가 에이전트 쪽 함수에 재고나 예약 가능 여부를 물을 수 있고, 에이전트가 렌더러에 등록된 함수를 요청해 기기 화면 크기 같은 정보를 받을 수도 있습니다. 함수는 대화 전체의 새 응답을 시작하지 않고 특정 작업의 결과를 돌려줍니다.
1.0에는 접근성 지원과 추가 메타데이터를 담는 확장 기능도 포함됐습니다. 에이전트 SDK는 Python뿐 아니라 TypeScript와 Dart용으로 제공됩니다. Python SDK의 Macros는 구성요소 확장과 데이터 연결을 프로그램으로 처리합니다. 웹에서는 React·Angular·Lit 렌더러를, Flutter에서는 모바일·웹·데스크톱 렌더러를 사용할 수 있고 iOS에는 SwiftUI 렌더러가 있습니다. Android용 Jetpack Compose 렌더러는 Google 발표 당시 0.9.1을 지원했으며 1.0 지원은 출시 예정이었습니다.
Google은 Atlassian이 A2UI를 Jira에 도입하고 있다고 소개했습니다. 소개된 흐름에서는 에이전트가 작업 항목을 마치는 데 필요한 정보나 결정을 요청할 때 항목 안에 대화형 카드를 띄우고, 팀은 Jira 안에서 답합니다. Alation의 피드에는 지표 카드와 차트가 들어가며, 차트에서 SQL 쿼리와 데이터를 볼 수 있습니다. Google은 같은 피드가 Claude 대화와 Alation 앱에서 거의 같은 배치로 표시된다고 설명했습니다. A2UI 웹·Flutter 렌더러는 MCP Apps를 지원하는 호스트 안에서도 작동합니다.