Skip to content
Optimal Lab

AI Native · interactive

Designing for slow responses

The agent takes 6 seconds to book a trip, whatever you do. What changes is how long the user waits for any sign of life, and whether they trust it's working. Press play and compare.

user's screent = 0.0 s

Book me 3 nights in Lisbon next month, near the river.

…

  • Spinnerfirst feedback at 6 s
  • Progress stepsfirst feedback at 0.3 s
  • Skeleton + streamingfirst feedback at 0.8 s
  • Optimistic + backgroundfirst feedback at 0.1 s

Nothing meaningful for 6 seconds. Users start wondering if it's stuck, and some click again.

Pattern

0.0 s

Step 1 of 4

  1. 1

    Acknowledge within 100 ms

    Instantly show the request was received: echo the message, disable double-submit.

    Silence reads as broken.

  2. 2

    Narrate what's happening

    Agents have natural steps: searching, comparing, booking. Showing them builds trust and lets users catch mistakes early.

    Don't fake progress bars.

  3. 3

    Stream text into a stable layout

    Skeletons stop the page jumping; streaming lets people read as it writes.

    Let them stop generation.

  4. 4

    Move long work to the background

    For tasks over ~10 s, return immediately, run it as a job, and notify on completion. Keep a visible task list.

    Be ready to undo optimistic results.

In production

Tools and technologies

Design systems for AI products ship these patterns.

Not tied to one language — use these names when you search docs or design a system.