A2UI icon indicating copy to clipboard operation
A2UI copied to clipboard

Ensure specification has no ambiguity about how A2UI is transported over A2A

Open jacobsimionato opened this issue 3 weeks ago • 1 comments

In v0.8 and the draft v0.9, we don't describe exactly how A2UI messages fit into A2A. The source of truth is essentially the example agent implementations - see [create_a2ui_part](https://github.com/google/A2UI/blob/e14d693b16ccda6362a8254bd3cc1cf156184ee6/a2a_agents/python/a2ui_extension/src/a2ui/a2ui_extension.py#L29 etc in the a2ui_extension python library.

Some things to specify:

  • Use of DataPart to represent A2UI messages
  • MIME type used to identify A2UI messages - currently application/json+a2ui as defined in https://github.com/google/A2UI/blob/main/a2a_agents/python/a2ui_extension/src/a2ui/a2ui_extension.py#L29
  • What exact JSON structure is in the message content - let's provide an example
  • Use of arrays (or not) to allow multiple messages per part
  • What unit of message should be applied atomically? (I think we should define that each Part must be applied atomically by a renderer), but that one Message might have multiple A2UI parts
  • client_to_server event vs server_to_client event - do they use the same MIME type etc? Can servers ever use the client_to_server.json schemas, e.g. an orchestrator forwarding events to a subagent?

jacobsimionato avatar Dec 07 '25 22:12 jacobsimionato