Problem
The answer says it checked the calendar and the room is free. Something did happen between the question and the answer, and the viewer has no way to see what was queried, what came back, or whether the sentence is a report or an invention.
Solution
Render each call as a compact row: the tool’s name in plain language, the significant arguments, the outcome, and the time it took. Collapsed by default, expandable to the actual request and response. The collapsed line is what most viewers read; the expansion is for the case where the answer is surprising and someone needs to find out why.
The distinction that matters more than any styling choice is between reads and writes. A search, a lookup, a file read changes nothing and can run freely with a trace shown afterwards. A call that sends a message, files a ticket, moves money or edits a document changes the world, and once it’s run no interface can undo it. HAX guideline 16 is explicit that consequences belong before the action rather than after it, so writes want an approval step showing exactly what’s about to happen, with the arguments visible and editable.
That approval gate is where most products under-invest. Approving “send email” tells the viewer nothing. Approving a call that shows the recipient, the subject and the body is a decision someone can actually make. The general rule is that the gate should display the payload—not the intent.
Failures need to be as visible as successes. A tool that timed out, returned nothing, or hit a permission wall usually leaves the model to write around the gap, and the resulting answer is confident and unsupported. A failed row in the trace is the only signal the viewer gets that the sentence they’re reading was assembled without the data it claims.
Arguments deserve care for a second reason: they’re the clearest statement of what the assistant understood. A search whose query reads nothing like the question is a misunderstanding caught in the act, and it’s often catchable before the answer finishes.
Use when
The assistant can act, retrieve, or reach systems the viewer can’t see from the 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 traces are the most honest option and read as debug output in a consumer product, so the collapsed summary has to carry real information rather than a spinner and a verb. Approval gates on writes prevent the failures that matter and add friction to every action, which pushes people toward blanket approvals that defeat the gate. Raw arguments and responses can contain credentials, personal data, or internal identifiers that shouldn’t be on screen. A long chain of calls produces a trace longer than the answer, which then needs collapsing of its own.
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 is the same fold applied to thinking rather than acting. Source list is what a retrieval call produces. Citation chip binds an individual claim to what a call returned. Scoped context determines which tools are available at all. Generation error covers the case where a failed call ends the turn instead of being written around.