People need to see which actions the assistant took and whether they succeeded.
Updated September 12, 2026
Problem
An assistant may say it checked a source or completed an action. People need a way to see what actually happened.
Solution
Show each lookup or action as a compact row with a plain-language name, relevant details, and its result. Let people expand the row for more information when needed.
Distinguish reading information from changing it. For actions that need approval, show the exact change before it happens. An email approval, for example, needs the recipient and message, not just the name of the action.
Show failed, empty, and blocked results as clearly as successful ones. Remove credentials and unnecessary private information from displayed details. Keep long sequences collapsed behind a useful summary.
Use when
The assistant retrieves information or takes actions outside the visible conversation.
Don’t use when
The model is answering from its own parameters. A trace panel that’s always empty teaches people to stop opening it, which costs exactly when a call finally does happen.
Trade-offs
Full details can overwhelm people and expose sensitive information. Compact summaries are easier to read but may hide the reason an action failed. Frequent approval requests can encourage people to approve without reviewing, so each request needs meaningful detail.
Checklist
Is the tool’s name written in language a viewer understands?
Are reads and writes visually distinguished?
Does a write require approval, and does the approval show the payload?
Are failed and empty calls as visible as successful ones?
Can the viewer see the arguments, and do they reveal what was understood?
Is anything sensitive in the arguments or responses redacted?
Does the trace collapse when there are twenty calls?
Is the elapsed time per call shown?
Can the viewer stop a chain of calls partway?
Does the answer say when it proceeded despite a failed call?
Compare
Perplexity shows its search steps as the primary disclosure, putting the verifiable part of its process on screen instead of the unverifiable reasoning. ChatGPT surfaces tool activity as collapsed status lines within the turn, keeping the transcript readable while the work is legible. Claude streams tool calls as first-class content blocks alongside text, so a call is part of the response rather than metadata attached to it. Microsoft Copilot in a tenant has the sharpest version of the write problem, since a call that edits a shared document affects colleagues who never saw the approval.
Related
Reasoning disclosure summarizes the assistant’s approach. Source list collects retrieved material, while Citation chip connects it to individual claims.
Scoped context defines available material and access. Generation error handles failures that prevent the answer from finishing.
Wireframe — the pattern's anatomy, not any one product's version of it
Implementation
Reads run. Writes ask first, and the approval shows the actual payload rather than a description of the intent. A read that failed stays in the trace, because the answer that proceeded around it depends on knowing that.