#2690·a2ui

How should `components` and `dataModel` be represented in multi-turn agent conversation history?

Author: zhangHongEnCreated Sep 18, 2026Updated Sep 18, 2026
Labelsstatus: needs-triage

How should components and dataModel be represented in multi-turn agent conversation history?

I'm trying to understand the intended way to integrate A2UI responses into a multi-turn agent conversation.

Suppose the user asks for a list of orders, and the agent responds with both dataModel and components:

Turn 0

messages = [
  user: "Query my orders",

  assistant: {
    dataModel: [
      { id: "order1", ... },
      { id: "order2", ... }
    ],
    components: {
      ...
    }
  }
]

On the next turn, the user refers to something rendered by the previous A2UI response:

user: "Cancel the first order"

For the next agent/LLM invocation, is the intended approach to preserve only the semantic/data state from the previous A2UI response and omit the component tree?

For example:

Turn 1

messages = [
  user: "Query my orders",

  assistant: {
    dataModel: [
      { id: "order1", ... },
      { id: "order2", ... }
    ]
  },

  user: "Cancel the first order"
]

instead of replaying the full A2UI response:

messages = [
  user: "Query my orders",

  assistant: {
    dataModel: [...],
    components: {...}
  },

  user: "Cancel the first order"
]

My assumption is that components mainly represents presentation/rendering state, while dataModel contains the semantic state needed to resolve references such as "the first order".

So my questions are:

  1. Is it correct to omit components from subsequent conversation history and retain only dataModel?
  2. Does A2UI have a recommended representation for previous A2UI responses when constructing the next agent/LLM request?
  3. Should dataModel be considered sufficient conversational context for references to previously rendered entities, or is the application expected to maintain a separate semantic/conversation state?
  4. Is conversation-history management intentionally outside the scope of A2UI?

I'm specifically asking about the agent/LLM conversation context across turns, rather than how A2UI surface updates are transported to the renderer.