What it solves
A2UI lets an agent “speak UI” as declarative data. The client maps abstract components onto its own trusted widgets, keeping styling, accessibility and execution under application control.
Where it sits
A2UI is the payload and rendering contract. It does not replace an agent-to-client transport: its own documentation lists AG-UI and A2A as compatible transports. This separation is especially useful when one agent surface must appear across web and native clients.
Maturity note
The project currently identifies its stable protocol family as a public preview while a version-one specification is being prepared. Pin the protocol version and isolate renderer adapters so upgrades do not leak through the application.
Security boundary
Only register reviewed components and actions. Reject unknown component types, validate bindings, constrain URLs and rich text, and keep high-impact actions behind explicit user confirmation and server authorization.
Minimal example
The exact envelope is version-specific, but the responsibility split is stable:
agent → declarative component tree + data bindings
client catalog → validates types and props → native trusted widgets
Pin the A2UI version before turning this conceptual flow into production JSON.