Pattern 17 · Agents

Background tasks & notifications

Making users stare at a five-minute generation blocks their work and kills the tab when they leave.

By Aleksey StepikinUpdated October 20263 min readLive demo
Live demo · try it

An interactive mock built in plain HTML, CSS and JavaScript. Data is fictional; no model is called.

FitWhen to use it — and when not

Use it when

  • Jobs longer than ~30 seconds: research, reports, batch processing, video
  • Agents that wait on external systems
  • Mobile, where users will switch apps

Skip it when

  • Quick answers — background mode adds friction
  • When the user must review each step live

AnatomyThe parts of the pattern

  1. Hand-offClear message: running in background, rough ETA.
  2. Task trayRunning tasks with progress, always reachable.
  3. NotificationIn-app toast, plus push/email for long jobs.
  4. ResultOne click from the notification to the output.
  5. CancelStop a task you no longer need.

GuidelinesDo & don’t

Do

  • Give an ETA range, not a precise promise.
  • Let people keep working in the same window.
  • Deep-link the notification straight to the result.

Don’t

  • Lose the job when the tab closes.
  • Notify on every step — notify on done or needs-input.
  • Hide running tasks behind a settings page.

In the wildReal-world examples

ChatGPT deep researchOpenAI CodexDevinGoogle Jules

Products named for reference only — no affiliation, and the demo above is an original illustration, not a copy of their UI.

For engineersImplementation notes

  • Run jobs in a queue (not the request lifecycle); return a job id immediately.
  • Push status over websockets/SSE while the tab is open, and web push/email when it is not.
  • Make jobs idempotent and resumable so retries do not double-charge.

AgentsRelated patterns

All 26 LLM UX patterns

Building an AI product?

I design and ship AI products end to end — LLM interfaces, agents, RAG, billing — from concept to a live product in weeks, not quarters. Tell me what you are building and get a fixed estimate.

Get an estimateBook a call

Create bold.
Deliver better.

See our workGet in touch