A tool-activity pattern explains observable work without pretending to expose the model’s private reasoning. It helps people distinguish progress from a stalled request.
When to use it
Use it when a task has meaningful stages, such as searching a knowledge base, reading selected documents, and assembling an answer. A short operation does not need an elaborate timeline.
Build the interaction
Use labels that describe work the system can actually confirm. Keep the answer separate from the activity list so a finished result remains easy to scan.
- Pending: name the next action without claiming it started.
- Running: indicate the active stage and provide cancellation when supported.
- Complete: show the outcome and any sources that can be inspected.
- Failed: identify the failed stage, keep completed work visible, and offer recovery.
The homepage demo is illustrative and local. Its example source count and state changes are authored UI states, not a live agent run.
Keep it honest
Do not animate fabricated tool calls or make up a percentage when the underlying task has no measurable total. Exposing raw internal logs is not the same as explaining progress. Never include secrets or private document excerpts in status labels.
Verify the states
Test a quick success, a slow stage, an empty result, a partial failure, cancellation, and retry. Status updates should be available to assistive technology without announcing every token. Respect reduced motion.