A2UI 实现跨平台渲染的核心机制是抽象组件树与原生映射的分离。智能体发送抽象组件树描述,包含组件类型(如Text、Button、Card等)和属性定义,但不包含任何平台特定的实现细节。客户端应用程序负责将抽象组件类型映射为自己的原生组件库。例如,同一个A2UI JSON负载中的Button组件,在React应用中映射为React Button组件,在Angular应用中映射为Angular Button组件,在Flutter应用中映射为Flutter Button小部件,在SwiftUI应用中映射为SwiftUI Button视图。这种映射由客户端开发者完全控制,确保UI与原生应用的外观和体验一致。
A2UI 通过组件目录(Catalog)机制实现跨平台渲染的灵活性和可扩展性。目录定义智能体能够请求的组件类型列表,客户端在连接时告知服务端它支持哪些Catalog。智能体根据目标客户端支持的目录生成UI,确保组件类型可被渲染。A2UI支持标准目录(包含Button、TextField、Card、DateTimeInput等通用组件)和自定义目录(业务可以注册领域特定组件,如StockTicker、GoogleMap、MedicalChart等)。目录协商机制使同一智能体能够根据不同客户端的目录能力生成适配的UI,实现真正的跨平台兼容性。
A2UI 拥有不断增长的多平台渲染器生态系统。Web端有Lit(Web Components)、Angular和React(v0.9官方支持)渲染器。移动端有Flutter(GenUI SDK)渲染器,支持iOS、Android和桌面端。计划中的渲染器包括SwiftUI(iOS/macOS,2026年Q2)和Jetpack Compose(Android,2026年Q2)。此外,社区还维护了a2ui-angular等第三方渲染器,以及@a2ui-sdk/react等SDK,提供开箱即用的React组件渲染能力。这种多平台渲染器生态使A2UI能够覆盖主流应用场景,实现"一次生成,多处运行"的愿景。