A2UI v0.9定义四种核心消息类型。createSurface消息用于创建新的UI表面(面板、模态框、内联卡片等),可以指定目录ID(catalogId)和主题配置。updateComponents消息用于添加或替换Surface上的组件,采用扁平结构("component": "Text"而非嵌套对象),便于LLM生成。updateDataModel消息用于更新应用状态,支持JSON Pointer路径进行精细化数据更新,数据模型使用标准JSON对象而非类型化邻接表。deleteSurface消息用于关闭和清理Surface。此外,v0.9还引入watchDataModel消息用于配置数据模型监听,以及actionResponse消息用于从服务端返回操作响应(RPC模式)。
v0.9版本对消息格式进行了显著简化。组件格式从嵌套对象(v0.8的{"Text": {"text": "Hello"}})改为扁平结构("component": "Text", "text": "Hello"),更易于LLM生成。数据模型从类型化邻接表([{"key": "name", "valueString": "Alice"}])改为标准JSON对象({"name": "Alice"}),减少认知负荷。所有消息都包含"version": "v0.9"字段以实现向前兼容。v0.9还引入catalogId字段,显式声明使用的组件目录,增强安全性和可移植性。
客户端到服务端的通信通过独立的A2A消息处理,包含两种消息类型。userAction消息报告来自组件的用户发起操作,包含操作名称(name)和上下文数据(context),上下文数据中的路径会被解析为客户端数据模型中的实际数值。error消息报告客户端错误,包含错误类型和详细信息,便于服务端进行错误处理和LLM自我修正。这种分离设计使主数据流保持单向性(服务端到客户端),而交互事件通过独立通道传输,避免数据流混乱。
v0.8是A2UI 的早期稳定版本,目前已被v0.9.1取代。v0.8使用surfaceUpdate消息(对应v0.9的updateComponents)、dataModelUpdate消息(对应v0.9的updateDataModel)和beginRendering消息(对应v0.9的createSurface)。v0.8的消息格式较为复杂(嵌套对象、类型化数据模型),已被v0.9的简化格式替代。新项目应直接使用v0.9规范,v0.8仅用于维护遗留系统。