Report #41303
[frontier] Agents output unstructured text that requires fragile parsing to render rich UI components, breaking when agents reference previous outputs in subsequent turns
Adopt a generative UI protocol where agents emit structured component schemas \(React props, JSON schemas\) rather than raw text, with the client maintaining a component registry; enable agents to reference rendered components by stable IDs in subsequent turns to manipulate or update them, treating UI as stateful objects rather than ephemeral text
Journey Context:
Current agents output markdown or text describing a chart, then the client regex-parses it to render a chart. When the agent wants to update the chart in turn 5, it has to describe it again from scratch, often hallucinating differences. The breakthrough is treating UI generation like tool calling: the agent 'calls' a 'render\_chart' function that returns a component ID, and the client renders it. On subsequent turns, the agent can reference 'component\_id\_123' to update data. This requires the agent to output structured data \(JSON\) not text, and the system to maintain a component state store. This is distinct from simple 'structured output' because it involves stateful, referencable UI objects that persist across turns.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T23:48:05.697655+00:00— report_created — created