스피너가 돌아가는 동안 사용자는 아무것도 모른다. 어떤 툴이 실행되고 있는지, 어떤 상태가 바뀌고 있는지, 어떤 서브에이전트가 개입했는지. 작업이 끝나면 긴 트랜스크립트를 뒤져서 뒤늦게 파악할 수 있을 뿐이다. Focused Labs가 'Agent UI Is Runtime Infrastructure'에서 지적한 이 문제는 단순한 UX 불편이 아니다. 그것은 현재 우리가 AI 에이전트 UI를 설계하는 방식 자체가 틀렸다는 신호다.
토큰 스트리밍은 '모델이 답변을 쓰는 순간'의 UX를 해결했다. 하지만 에이전트의 진짜 작업은 그보다 훨씬 넓다. 툴 호출, 서브에이전트 위임, 상태 패치, 승인 게이트, 백그라운드 잡, 재연결 가능한 세션—이 모든 것이 동시다발로 일어나는 동안 UI는 여전히 텍스트 파이프 끝에서 기다리고 있다. 문제의 핵심은 여기 있다: 트랜스크립트는 텍스트를 렌더링하지만, 에이전트 프로덕트는 '작업'을 렌더링해야 한다.
LangChain이 'From Token Streams to Agent Streams'에서 명명한 것처럼, 이제 스트림은 텍스트 파이프가 아니라 UI 계약이다. stream_events(..., version="v3")는 메시지, 툴 콜, 상태값, 서브그래프, 커스텀 프로젝션을 타입이 붙은 형태로 내려준다. 프론트엔드는 더 이상 로그를 파싱하고 텍스트 블록을 분기하는 것이 아니라, 프로덕트 명사(noun)를 구독한다. 툴 콜은 진행 상태와 실패 상태를 가진 카드로 렌더링되고, 에러는 재시도 컨트롤과 함께 노출되며, 최신 애플리케이션 상태는 실시간으로 반영된다.
이 계약을 가장 명확하게 정의한 것이 AG-UI(Agent-User Interaction Protocol)다. CopilotKit이 도입하고 Microsoft의 Agent Framework가 채택한 이 프로토콜은 에이전트 런과 프론트엔드 사이의 이벤트 어휘를 표준화한다. 라이프사이클 이벤트, 텍스트 메시지 이벤트, 툴 콜 이벤트, 상태 관리 이벤트, 리즈닝 이벤트. 런이 시작되고, 스텝이 끝나고, 툴 콜이 에러를 내고, 상태가 델타로 도착하는 모든 순간을 UI가 인식하고 반응할 수 있다. UI가 드디어 채팅 창이 아니라 소프트웨어처럼 동작할 수 있게 된다.
흥미로운 것은 이 개념의 실험적 구현이 이미 브라우저 안에서도 이루어지고 있다는 점이다. 웹 아키텍트 Quentin Merle의 'Ping Prompt' 프로젝트는 WebGPU와 WebLLM으로 Phi-3-mini를 브라우저 VRAM에 직접 로드해, 에어하키 게임의 DOM을 실시간으로 조작하는 로컬 SLM 에이전트를 구현했다. 여기서 등장한 구조적 해법이 흥미롭다: SLM은 60fps 물리 루프를 직접 제어할 수 없기 때문에(응답에 수백 ms가 걸린다), Brain.js로 만든 물리 예측 레이어와 역할을 분리했다. SLM은 내러티브와 이벤트 오케스트레이션을 담당하고, 즉각적인 반응은 경량 ML 레이어가 처리한다. 이 '두 뇌 구조'는 AG-UI의 이벤트 계층 설계와 정확히 같은 원리다—실시간 반응과 에이전트 추론의 분리.
구글이 Google I/O 2026에서 공개한 Gemini의 새 디자인 언어 'Neural Expressive'는 이 흐름에 시각 언어를 더한다. 텍스트 응답만이 아니라 이미지, 인터랙티브 요소, 시각적 카드를 함께 활용하는 구조로의 전환—이것은 단순한 UI 리프레시가 아니다. 에이전트가 생성하는 다양한 타입의 결과물을 화면에서 어떻게 표현할 것인가에 대한 디자인 시스템 차원의 대답이다. Material 3 Expressive와 같은 흐름에서 나온 이 변화는, AI 응답이 단일 텍스트 블록이 아니라 다중 미디어 복합체임을 디자인 언어 수준에서 공식화한 것으로 읽힌다.
여기서 'Generative UI'라는 개념이 오해받는 지점을 짚어야 한다. 모델이 컴포넌트를 그려낸다는 마법 같은 이야기가 아니다. 핵심은 훨씬 실용적인 질문들이다: 작업이 프론트엔드와 백엔드 중 어디서 일어나야 하는가? 승인은 어떻게 구현하는가? 상태 쓰기는 어떻게 통제하는가? 무엇을 재시도할 수 있는가? AG-UI의 툴 모델은 이 경계를 명확하게 설계한다. 캘린더 컴포넌트가 '미팅 시간 제안' 툴을 노출하더라도 에이전트에게 캘린더 쓰기 권한을 주지 않는다. 플랜 변경 페이지의 툴은 인간 승인 이벤트 없이는 커밋되지 않는다. UI가 런타임 경계의 일부가 된다는 것은 이 권한 설계를 UI 레이어에서 책임진다는 뜻이다.
프론트엔드 개발자로서 이 모든 흐름이 가리키는 방향은 하나다. 에이전트 UI 설계는 더 이상 '채팅 인터페이스를 예쁘게 만드는 일'이 아니다. 이벤트 스트림을 구독하고, 타입화된 프로젝션을 렌더링하고, 툴 라이프사이클에 반응하며, 승인 게이트와 상태 델타를 처리하는 런타임 인프라 설계다. AG-UI 같은 프로토콜이 에이전트 프레임워크를 평가하는 기준이 되어가고 있다는 사실은, 이 계약 설계 역량이 곧 프론트엔드 엔지니어의 핵심 경쟁력이 될 것임을 예고한다. 스피너를 없애는 것이 목표가 아니다—에이전트가 하는 '일'을 UI가 제대로 드러내는 것, 그것이 다음 설계 과제다.