Step 1
Build the composer first
The composer is where users spend their effort, so it deserves the most care. It needs a growing text area, attachments, a model or mode selector, and a primary button that switches between send, stop, and voice.
Handle the async states explicitly: disabled while empty, a stop action while streaming, and an error state that keeps the user's text so they can retry.
Step 2
Show what answers are based on
For research or knowledge products, trust depends on sources. Let users pick which sources the assistant can use, search them, and see the selected context as removable chips before sending.
Step 3
Let the assistant ask clarifying questions
Some requests are ambiguous. Instead of guessing, an agent can pause and ask a few structured questions with suggested answers. Support single and multiple choice, free text, keyboard shortcuts, and skipping.
Step 4
Add voice mode
Voice is now an expected mode for assistants. Show a clear state for listening, thinking, and speaking, and keep the control in a consistent place so users can switch between typing and talking without hunting for it.
Step 5
Make usage and limits visible
Paid AI products need to show what requests cost and how much budget is left. Break usage down by category or workflow, and warn before a limit is reached rather than after.