Adaptive Software
A2UI Protocol: Google's New Agent-Driven Interface Standard
undefined
If you're building apps with AI capabilities, you've probably hit this wall: your users interact with an AI agent, but the agent can only respond with text. Need a booking form? The agent walks through it question by question. Need to show data? Here's a text description of what the chart would look like.
Google's new A2UI protocol changes that. It lets the AI agents inside your app generate rich, interactive interfaces on the fly: forms, charts, buttons, entire UI components, rendered natively for your users.
For developers building conversationally with Claude Code or Cursor, this opens up powerful new capabilities for the products you're shipping.
What Is the A2UI Protocol?
A2UI (Agent to UI) is a declarative protocol that lets AI agents generate rich, interactive user interfaces—not just text responses. Google announced it publicly on December 15, 2025, and it's already being adopted by major frameworks including CopilotKit, Flutter's GenUI SDK, and AG-UI.
Think about the difference between these two experiences for your app's users:
Old way (text-only agent):
User: "Book a table for 2 tomorrow at 7pm"
Your app's AI: "Okay, for what day?"
User: "Tomorrow"
Your app's AI: "What time?"
User: "I said 7pm"
Your app's AI: "Got it. And for how many people?"
With A2UI:
User: "Book a table for 2 tomorrow at 7pm"
Your app's AI: generates a booking form with date picker, time selector, party size field, and a submit button—all pre-filled based on the request
The agent in your application doesn't just respond with words. It responds with an actual interface that matches your app's design system and works natively on web, mobile, or desktop.
Think about the difference between these two experiences for your app's users:
Old way (text-only agent):
User: "Book a table for 2 tomorrow at 7pm"
Your app's AI: "Okay, for what day?"
User: "Tomorrow"
Your app's AI: "What time?"
User: "I said 7pm"
Your app's AI: "Got it. And for how many people?"
With A2UI:
User: "Book a table for 2 tomorrow at 7pm"
Your app's AI: generates a booking form with date picker, time selector, party size field, and a submit button—all pre-filled based on the request
The agent in your application doesn't just respond with words. It responds with an actual interface that matches your app's design system and works natively on web, mobile, or desktop.
Why This Matters for Multi-Agent Systems
Here's where things get interesting—and complicated.
We're entering what Google calls "the era of the multi-agent mesh." Your AI coding assistant might call out to specialized agents: one for database design, another for API integration, another for UI/UX decisions. These agents live on different servers, owned by different organizations.
In a single-agent world, the AI can directly manipulate your interface. But when the agent doing the work is remote, it can only send messages. A2UI gives those messages a universal language for expressing user interfaces.
The protocol works by sending declarative component descriptions as JSON. Your client application renders these using its own native widgets—so everything looks and feels consistent with your app, even though the UI was generated by a remote agent.
We're entering what Google calls "the era of the multi-agent mesh." Your AI coding assistant might call out to specialized agents: one for database design, another for API integration, another for UI/UX decisions. These agents live on different servers, owned by different organizations.
In a single-agent world, the AI can directly manipulate your interface. But when the agent doing the work is remote, it can only send messages. A2UI gives those messages a universal language for expressing user interfaces.
The protocol works by sending declarative component descriptions as JSON. Your client application renders these using its own native widgets—so everything looks and feels consistent with your app, even though the UI was generated by a remote agent.
How A2UI Actually Works
For the technically curious, A2UI operates on a few key principles:
Declarative, not executable. The agent sends a description of what components to render—not code that runs on your machine. This means agents can only use pre-approved components from your catalog. No UI injection attacks.
Streaming by design. The JSON structure is flat and designed for incremental generation. LLMs can build UIs progressively without needing to produce perfect JSON in one shot. Users see the interface building in real-time.
Native rendering everywhere. The same agent response can render on Angular, Flutter, React, or native mobile. Your components, your styling, your accessibility features—all preserved.
Built for multi-agent collaboration. Because A2UI messages are lightweight and declarative, an orchestrator agent can understand and modify UI descriptions from sub-agents. The protocol layers cleanly on top of Google's A2A (Agent-to-Agent) protocol.
Declarative, not executable. The agent sends a description of what components to render—not code that runs on your machine. This means agents can only use pre-approved components from your catalog. No UI injection attacks.
Streaming by design. The JSON structure is flat and designed for incremental generation. LLMs can build UIs progressively without needing to produce perfect JSON in one shot. Users see the interface building in real-time.
Native rendering everywhere. The same agent response can render on Angular, Flutter, React, or native mobile. Your components, your styling, your accessibility features—all preserved.
Built for multi-agent collaboration. Because A2UI messages are lightweight and declarative, an orchestrator agent can understand and modify UI descriptions from sub-agents. The protocol layers cleanly on top of Google's A2A (Agent-to-Agent) protocol.
The Emerging Protocol Stack
A2UI is part of a broader standardization happening across the AI development ecosystem:
MCP (Model Context Protocol): How agents connect to tools and data sources
A2A (Agent-to-Agent Protocol): How agents communicate with each other across organizational boundaries
AG-UI (Agent-User Interaction Protocol): The connection layer between agentic backends and frontends
A2UI: The format for expressing generative, cross-platform UI responses
These protocols are complementary, not competing. CopilotKit's AG-UI, for example, provides day-zero compatibility with A2UI. You can use A2UI as the data format while AG-UI handles state synchronization, chat history, and input handling.
MCP (Model Context Protocol): How agents connect to tools and data sources
A2A (Agent-to-Agent Protocol): How agents communicate with each other across organizational boundaries
AG-UI (Agent-User Interaction Protocol): The connection layer between agentic backends and frontends
A2UI: The format for expressing generative, cross-platform UI responses
These protocols are complementary, not competing. CopilotKit's AG-UI, for example, provides day-zero compatibility with A2UI. You can use A2UI as the data format while AG-UI handles state synchronization, chat history, and input handling.
What This Means for Developers
If you're building apps through conversation—not through traditional code-first workflows—A2UI represents a significant new capability to integrate into your products.
The opportunity: The apps you build can now have AI agents that show users things, not just tell them. Your product's AI can generate the exact interface needed for the current interaction, adapting on the fly to what each user needs.
The challenge: Implementing A2UI means more architectural decisions. Component catalogs. Agent behavior rules. UI constraints. When you're building conversationally with Claude Code, those decisions happen in chat—and they're easy to lose.
The teams adopting A2UI internally at Google describe it as "foundational" because it lets AI drive the user experience without being constrained by a fixed front-end. That flexibility is powerful for the apps you're building—but it also means more decisions to track, more rationale to preserve.
The opportunity: The apps you build can now have AI agents that show users things, not just tell them. Your product's AI can generate the exact interface needed for the current interaction, adapting on the fly to what each user needs.
The challenge: Implementing A2UI means more architectural decisions. Component catalogs. Agent behavior rules. UI constraints. When you're building conversationally with Claude Code, those decisions happen in chat—and they're easy to lose.
The teams adopting A2UI internally at Google describe it as "foundational" because it lets AI drive the user experience without being constrained by a fixed front-end. That flexibility is powerful for the apps you're building—but it also means more decisions to track, more rationale to preserve.
Preserving Intent in an Agent-Driven World
As the apps you build become more capable—with agents that dynamically generate UI components for your users—the question of context preservation becomes critical.
Now, to be fair: A2UI's current design actually limits this problem somewhat. Because agents pick from predefined component catalogs, the model's runtime choices are constrained. It's selecting from a menu you defined, not inventing UI from scratch. The intent behind any given generation is bounded.
But that's today. Google's Opal team is already using A2UI for "user-generated apps" where "UIs adapt to each use case automatically." The trajectory is clear: more generative, more free-form, more autonomous. As agents gain latitude to create novel interfaces—not just pick from catalogs—the gap between "what got generated" and "why" widens fast.
Git captures what code you shipped. But when you're building GenUI features through conversation, you need something that captures why. What behavior did you specify for your agent? What constraints did you set on the component catalog? Why did you configure things one way versus another?
This is the problem Differ was built to solve. Every conversation you have while building—the prompts, the tradeoffs discussed, the iterations you went through—gets linked directly to your codebase. As generative UI gets more powerful, that context only becomes more valuable.
Now, to be fair: A2UI's current design actually limits this problem somewhat. Because agents pick from predefined component catalogs, the model's runtime choices are constrained. It's selecting from a menu you defined, not inventing UI from scratch. The intent behind any given generation is bounded.
But that's today. Google's Opal team is already using A2UI for "user-generated apps" where "UIs adapt to each use case automatically." The trajectory is clear: more generative, more free-form, more autonomous. As agents gain latitude to create novel interfaces—not just pick from catalogs—the gap between "what got generated" and "why" widens fast.
Git captures what code you shipped. But when you're building GenUI features through conversation, you need something that captures why. What behavior did you specify for your agent? What constraints did you set on the component catalog? Why did you configure things one way versus another?
This is the problem Differ was built to solve. Every conversation you have while building—the prompts, the tradeoffs discussed, the iterations you went through—gets linked directly to your codebase. As generative UI gets more powerful, that context only becomes more valuable.
Key Takeaways
• A2UI is a new protocol from Google that lets AI agents in your apps generate rich, interactive UIs for end users—not just text responses
• It's designed for multi-agent systems where the agent doing the work may be remote and can't directly manipulate the host application's interface
• The protocol is declarative and secure, using pre-approved component catalogs rather than executable code
• Major frameworks are already adopting it, including CopilotKit, Flutter GenUI SDK, and AG-UI
• For vibe coders building these capabilities, A2UI means more architectural decisions happening in conversation—decisions worth preserving
Differ automatically captures, indexes, and links your AI coding conversations to your codebase. Every decision. Every rationale. Instantly searchable.
• It's designed for multi-agent systems where the agent doing the work may be remote and can't directly manipulate the host application's interface
• The protocol is declarative and secure, using pre-approved component catalogs rather than executable code
• Major frameworks are already adopting it, including CopilotKit, Flutter GenUI SDK, and AG-UI
• For vibe coders building these capabilities, A2UI means more architectural decisions happening in conversation—decisions worth preserving
Differ automatically captures, indexes, and links your AI coding conversations to your codebase. Every decision. Every rationale. Instantly searchable.