Lab · Workflows · Generative UI across agents

Generative UI across agents

A customer asks Halden's support chat to refund the duplicate $84.90 charge on order 48213. Only the Payments agent can ask for that confirmation, so the support agent delegates to it over A2A, activating the A2UI extension and passing on which components the chat can draw. The Payments agent pauses its task (INPUT_REQUIRED) with a card: A2UI v0.9 messages, each in an A2A data part (application/json+a2ui). The support agent relays them unchanged to the chat over the A2UI lab's HTTP stream; the chat checks them with web_core against its own catalogue and draws the card in the App tab. The customer's press becomes an A2UI action that goes back over HTTP to the support agent and over A2A into the same task, where the Payments agent checks it against the card it sent before it refunds and returns a receipt artifact.

Real: the official A2A JavaScript SDK (protocol 1.0, client and server), @a2ui/web_core 0.12.0 with strict validation in the chat and in the Payments agent, LangChain agents. Simulated: the hosts, the ledger, and the agents' decisions unless you connect a model. The extension's shape follows the A2UI project's A2A extension as documented in its repository. Turn on Intercept to tamper across the seam: put a component the chat does not have, or a different amount, into the A2A part, or send the press on another task.

Simulationscripted modelready

Experiments

Who decides for the agents

Scenario