Overview

Designing UX for LLM-powered products means designing for a collaborator that is fast, capable, and unreliable in unpredictable ways. The interface must set honest expectations, expose uncertainty, and keep the user able to steer and reverse what the model does. Good AI UX reduces the cost of the model being wrong. This page covers interaction design; the engineering side is in ai-first-applications and the transport is in streaming-chat-interfaces.

Set expectations about what the model can do

Tell the user what the product is good at and where it fails, in the empty state and inline. Suggested prompts and examples teach capability faster than a help page. Promising a “magic” assistant guarantees disappointment on the first miss; an honest framing earns trust.

Make uncertainty visible

The model does not know what it does not know, so the UI must signal confidence and provenance. Show sources for factual claims, distinguish retrieved facts from generated prose, and flag low-confidence answers. Citations let users verify rather than trust blindly; see rag-citations.

Keep the user steering

Design for correction, not one-shot perfection. Offer regenerate, edit-and-resend, follow-up refinement, and granular controls (tone, length, format). The user should be able to nudge the output without restarting. This mirrors the answer-first principle of giving the direct result first, then detail; see answer-first-content.

Make every action reversible

Generated changes must be undoable. Preview before applying, diff before committing, and never let the model take a destructive action without explicit confirmation. Reversibility is what makes it safe to let users try things. See reliable-agents-in-production.

Design the latency, do not hide it

Streaming, progress states, and skeletons make multi-second responses feel responsive. Show the work in progress and let the user cancel. The detailed patterns are in streaming-chat-interfaces.

Guard the input and the trust boundary

User and third-party content can carry injection attempts. Make it clear when the model is acting on untrusted data, and require confirmation for consequential actions triggered by it. The defense is partly UX: surface what the agent is about to do. See prompt-injection-defense.

Keep it accessible and forgiving

Announce streamed output politely to assistive tech, support keyboard-only operation, and treat input forms with the same care as any other; see accessibility and forms. Forgive malformed input and ambiguous requests with a clarifying prompt rather than an error.

Pitfalls

  • A blinking cursor with no sense of progress or sources.
  • Presenting generated text as authoritative with no way to verify it.
  • One-shot outputs with no edit or regenerate affordance.
  • Destructive AI actions with no preview or undo.