Tuesday, December 23, 2025

New Google project builds app UIs using structured, declarative data

Good news! Amazing stuff! Declare the app user interface and AI agents will build it for you!

"Google released A2UI, an open-source project that lets AI agents generate user interfaces that render securely across different platforms and frameworks. The system uses a declarative JSON format that allows agents to compose interfaces from pre-approved component catalogs, avoiding the security risks of executing AI-generated code while giving host applications full control over styling and branding.
A2UI works with various UI frameworks including Lit, Angular, and Flutter, and integrates with Google's Agent-to-Agent protocol to enable remote agents to send interface descriptions as messages rather than executable code.
The project includes renderers, component libraries, and sample implementations like a restaurant booking agent that can generate date pickers and time selectors instead of relying on text-only chat interactions. Google built A2UI in partnership with teams including AG UI, CopilotKit, Opal, Gemini Enterprise, and Flutter, with the code now available on GitHub for community collaboration.
"

"... We are entering the era of the multi-agent mesh. Agents from Google are talking to agents from Cisco, IBM, SAP, and Salesforce to solve complex tasks. This is why we collectively created the Agent-to-Agent (A2A) Protocol and donated it to the Linux Foundation: to enable agents to collaborate even when they don’t share memory, tools, or context.

However, this decentralization creates a user interface problem.

If your agent lives inside your application, it can directly manipulate the view layer (e.g. DOM).

But in a multi-agent world, the agent doing the work is often remote—running in the background, on a different server, or owned by a different organization. It cannot touch your UI directly; it must send messages.

Historically, rendering UI from a remote, untrusted source meant sending HTML or JavaScript and sandboxing it inside iframes. This approach is heavy, can be visually disjointed (it rarely matches your app's native styling), and introduces complexity around security boundaries. ...

Core philosophy: Secure, updateable, and decoupled

We designed A2UI around a few key principles:

  • Security first: Running arbitrary code generated by an LLM may present a significant security risk. A2UI is a declarative data format, not executable code. Your client application maintains a "catalog" of trusted, pre-approved UI components (e.g., Card, Button, TextField), and the agent can only request to render components from that catalog. This helps you to reduce the risk of UI injection and other vulnerabilities.
  • LLM-friendly and incrementally updateable: The UI is represented as a flat list of components with ID references which is easy for LLMs to generate incrementally, allowing for progressive rendering and a responsive user experience. An agent can efficiently make incremental changes to the UI based on new user requests as the conversation progresses.
  • Framework-agnostic and portable: A2UI separates the UI structure from the UI implementation. The agent sends a description of the component tree and its associated data model. Your client application is responsible for mapping these abstract descriptions to its native widgets—be it web components, Flutter widgets, React components, SwiftUI views or something else entirely. The same A2UI JSON payload from an agent can be rendered on multiple different clients built on top of different frameworks. ..."

Introducing A2UI: An open project for agent-driven interfaces

Data Points newsletter




Supported integrations



No comments: