Most teams that ship an “AI feature” in 2026 still ship the same UI: a text box, a streaming response, maybe a markdown table if the model feels like formatting one. Design agency Wavespace published a framework this week called Beyond the Chatbox that names a problem I’ve been running into on every agent-facing product I’ve touched this year — the chat window is a debugging interface that escaped into production, and it’s actively working against the thing agentic products are supposed to deliver.

The actual argument

The framework’s claim isn’t “chat is bad.” It’s that chat-as-the-only-interface conflates three things that should be separable: how the agent reasons, what state the task is in, and what the user needs to look at or act on right now. A pure text stream forces all three into one linear channel, which means the user has to parse prose to figure out “did it actually finish step 2” or “is this table editable or just a summary.” Generative UI — where the agent decides what component to render, not just what words to say — lets a product separate those concerns again: visible reasoning in one place, state in another, and a task-specific interface (a form, a table, a progress wizard) for whatever the user actually needs to do next.

The framework centers on a handful of principles that map cleanly onto engineering decisions, not just design taste:

  • Visible reasoning — surface the agent’s plan or intermediate steps as structured state, not narrated prose the user has to read to understand progress.
  • Explicit trust cues — the UI should show confidence, source, or “this is a draft vs. this is final” distinctly, rather than relying on hedging language in the text.
  • Human approval checkpoints as UI, not chat turns — an approval gate should be a button on a rendered diff or form, not “type yes to confirm” buried in a chat thread.
  • Task-specific interfaces — the agent picks the right widget (table for comparison, form for correction, wizard for multi-step) instead of a chat bubble for everything.

The number that makes this concrete

Wavespace cites a case study: a sales-ops tool that replaced a chat-only flow with generative UI — a live pipeline table, an inline form to fix data issues, a step-by-step wizard for multi-stage tasks — and saw 38% faster task completion and a 22% drop in support tickets over four weeks. Take the specific percentages with the appropriate grain of salt (single case study, vendor-published), but the mechanism behind the number is believable on its face: users complete tasks faster with a form than with a paragraph telling them what to type, and that’s true whether a human or an AI generated the form.

What this actually looks like in an implementation stack

This isn’t a novel idea in the abstract — generative UI has been a research topic for a couple of years — but 2026 is the year the tooling caught up enough that it’s a reasonable default rather than a science project. The pattern that’s converging across frameworks:

// Agent emits a typed UI directive instead of free text
type AgentAction =
  | { type: "render_table"; data: Row[]; editable: boolean }
  | { type: "render_form"; schema: JSONSchema; onSubmit: string }
  | { type: "render_wizard"; steps: WizardStep[] }
  | { type: "request_approval"; diff: Diff; actions: ["approve", "reject"] }
  | { type: "text"; content: string };

// The frontend maps directives to real components — the agent
// never controls markup directly, only which component and what data
function renderAgentAction(action: AgentAction) {
  switch (action.type) {
    case "render_table": return <PipelineTable {...action} />;
    case "render_form": return <DynamicForm schema={action.schema} />;
    case "request_approval": return <DiffApprovalCard {...action} />;
    default: return <ChatBubble text={action.content} />;
  }
}

The critical design decision — and the one worth getting right before you build anything — is that the agent should choose which component, not generate arbitrary markup. Letting a model emit raw HTML or JSX is both a security problem (prompt injection becomes a UI injection vector) and a consistency problem (your design system stops being a design system). A constrained action vocabulary — a fixed set of typed UI directives the agent picks from — gets you the flexibility of “the agent decides what to show” without giving up control over what actually renders. This is the same instinct as constrained function-calling schemas applied to the frontend instead of the backend.

There’s an emerging protocol layer here too — AG-UI and similar agent-to-UI wire formats are trying to standardize this directive vocabulary the way MCP standardized tool-calling, so agents and frontends built by different teams can speak the same “render this kind of thing” language. Worth watching before you invent your own schema from scratch.

Where I’d push back

The framework is right about the destination but underplays the cost of the path there. Chat is the default agent UI not because nobody thought of alternatives, but because it’s the only interface that degrades gracefully when the agent is wrong about what the user needs. If your agent picks the wrong component — renders a form when the user wanted a quick answer, or a wizard when one field needed fixing — you’ve built a worse experience than plain text, because now the user has to fight a rigid structure instead of just reading past an irrelevant sentence. Generative UI raises the cost of the agent’s routing decision being wrong. Teams adopting this pattern need a fallback path (plain text or a generic card) for the cases the constrained vocabulary doesn’t cover, and they need to instrument how often the agent picks a component the user immediately abandons — that number tells you whether your action vocabulary actually matches your users’ tasks or whether you’ve just built a prettier wrong answer.

The takeaway for a tech lead evaluating this

If your product’s core loop is “user asks, agent answers, user reads” — chat is fine, don’t add complexity. If your core loop is “user needs to review, correct, approve, or compare something the agent produced” — which describes most B2B agent products I’ve seen shipped this year — a chat stream is actively the wrong shape for the interaction, and the fix isn’t a fancier prompt, it’s giving the agent a small, well-typed vocabulary of UI components to choose from instead of one. That’s a frontend architecture decision as much as a prompt-engineering one, and it’s worth making deliberately before your chat window accretes markdown-table hacks trying to be a UI it was never designed to be.

Sources:

Export for reading

Comments