Jetpack Compose 智能体到界面 (A2UI) 渲染器提供了 A2UI 协议的实现,使 AI 智能体能够生成丰富的交互式界面,这些界面可渲染原生 Compose 组件,而无需执行任意代码。此库将 A2UI JSON 协议映射到 Compose 原语,同时遵循惯用的状态管理,并基于 Compose Snapshot 状态系统提供精细的反应性。
Compose A2UI 渲染器库提供以下功能:
- 高性能响应性 (
androidx.a2ui.compose:compose-runtime):利用 Compose 快照状态系统提供精细的界面更新,确保只有受流式传输代理更新或用户互动影响的特定组件会被重新组合。 - 灵活的组件 API 和自定义功能 (
androidx.a2ui.compose:compose-ui):提供了一种结构化模式,用于定义组件实现目录,将 JSON 协议架构映射到原生 Compose 界面。这样一来,您就可以构建支持以下功能的组件:渐进式渲染、子组件的自定义加载状态、动画过渡效果,以及可将数据发送回代理的双向数据绑定。 - 与设计系统无关的核心:使运行时和界面渲染层独立于任何特定设计系统,从而让您可以为应用的设计系统构建自定义目录,或采用提供的基本目录。
- 妥善处理 AI 幻觉(
androidx.a2ui:a2ui-model和androidx.a2ui:a2ui-engine):提供架构验证,以便在格式错误的内容到达状态模型之前将其拦截;通过组件错误状态妥善处理错误;自动向代理报告错误,以便进行自我修正。 - 内置基本目录 (
androidx.compose.material3:material3-a2ui):提供使用 Material 3 组件的即用型基本目录实现,支持在 Compose 渲染器之上进行渐进式渲染和 Material 主题设置。
概要架构
每个 A2UI 界面都由组件目录驱动。目录充当一种合约,用于定义代理可用的特定界面元素、属性和函数,而不是让代理生成任意界面代码或创建未注册的组件。目录声明组件;代理使用这些组件来构建界面。
为了支持此模型,Compose A2UI 渲染器将核心的、与设计系统无关的渲染引擎与上述 Jetpack 制品中的具体目录实现分离开来,并在 androidx.a2ui.compose:compose-ui-testing 中提供专用测试 API。
协议演变和 API 兼容性
Compose A2UI 渲染器目前支持 A2UI 规范的 0.9.1 版。
界面 (androidx.a2ui.compose:compose-ui) 和运行时层 (androidx.a2ui.compose:compose-runtime) 为应用和组件目录提供 API 表面,而底层数据层 (androidx.a2ui:a2ui-model 和 androidx.a2ui:a2ui-engine) 则管理特定于协议版本的解析和消息处理。由于这些库是 AndroidX 的一部分,因此需要遵守严格的二进制兼容性规则。例如,在公共 API 达到稳定版本 1.0.0 后,公共 API 表面(例如类和接口)不会发生重大变更。
Compose A2UI 渲染器使用以下策略来支持协议演变。
改进界面和运行时渲染器 API
随着 A2UI 协议的发展或新功能的添加,渲染器 API 通过以下方法支持这些更改:
- 非破坏性 API 添加:引入新功能时,该功能会成为具有默认实现的核心公共接口(例如
A2uiComponent或A2uiCatalog)的一部分。这样,应用组件就可以在不修改的情况下继续编译和运行。 - 重大更改会导致旧接口被弃用:如果未来的协议更新引入了不兼容的更改,则旧的不兼容接口(例如
A2uiComponent)会被弃用,同时引入并支持新接口(例如A2uiComponentV2)。
版本目录和组件架构
商品目录架构定义与特定协议版本相关联。当协议发展变化时,目录定义也会相应地发展变化并更新其版本。此“下一个”版本的组件实现可以使用更新后的渲染器 API。
为了帮助实现无缝迁移,您的客户端可以声明多个受支持的目录版本,智能体会在功能协商阶段获取这些版本。