Agent-Driven Interfaces with A2UI

Agent-Driven Interfaces with A2UI

A2UI (Agent-to-User Interface) is an open specification and library set from Google that lets agents “speak UI” — request and describe interactive interfaces without sending executable code. It gives users native forms and controls instead of text-only back-and-forth.

The problem it solves

Most chat agents are stuck in text. Booking an appointment or filling out a form becomes a slow, multi-turn dialogue when what the user wants is a native form with a date picker and a submit button.

A2UI lets the agent send a structured, declarative JSON payload describing the interface it wants. The client application interprets that payload and renders it with its own native components — React, Angular, SwiftUI, Flutter. Three properties fall out of this design:

  • Security — the agent sends data (JSON), never executable HTML or JavaScript, so there’s no UI injection and no arbitrary remote code.
  • Consistency — the client controls the final render, so the UI matches the host app’s design system.
  • Portability — one agent can drive web, mobile, and desktop, because the payload is framework-agnostic.

Design principles

  1. Security first. The protocol is declarative: the agent can only request components from a catalog the client pre-approves. The host app keeps full control.
  2. LLM-friendly representation. The UI is a flat list of components with identifier references — easy for a model to generate, stream, and update incrementally, so interfaces can render progressively as the agent works.
  3. Framework-agnostic. The agent describes structure and data, not implementation. The client maps that description to its own native widgets.

How it works

  1. A user interacts with the agent.
  2. The agent’s LLM generates an A2UI response — JSON describing components, layout, and data bindings.
  3. The payload streams to the client.
  4. The client’s A2UI renderer parses it and maps each component to a native widget from its trusted catalog.
  5. The native UI displays.
  6. User actions (a button click) return to the agent as events, which can trigger further UI updates.

This is the interface layer for the full-stack agent pattern — the standardized way the back-end tells the front-end what to render. See Building Full-Stack Agent Applications.

Keep going

A2UI’s core move is to send description, not code — the same instinct that keeps tool calls structured and typed, applied to the interface itself.

This entry was posted in . Bookmark the permalink.