What is recorded, and what never is
The recorder sends one record per model call or tool call: who it was for, what was called, how many tokens, how long it took and whether it worked. Never what was said.
What never leaves your process
- Prompts and completions.
- Tool arguments and tool results. Only their size is recorded.
- Error messages. A failure is kept as its code, because a provider's message often quotes the prompt back.
- Names and email addresses on a record. A record carries only the identifier your sign-in issued; a name, if you send one, is stored once, apart from the records.
This is not a setting. A record has no field a prompt could go in.
What a record carries
| Field | What it is |
|---|---|
| Workspace | Which of your customers the call was for, or default. |
agent |
Which agent made the call. |
request |
Your identifier for the end-user request it was part of. |
session |
The conversation, where there is one. |
user |
Your sign-in's identifier for the person. |
callerService, callerComponent, skill |
Which part of your product made the call. |
project |
A unit of work inside the customer, where you set one. |
model, billedBy |
What was called, and who bills for it. |
| Token counts | Input, output, cached, cache-write and reasoning, as the provider reported them. |
durationMs, status, errorCode |
How long it took, how it ended, and the error code if it failed. |
estimatedCostMicros, billedCostMicros |
What it cost. See how cost is calculated. |
Records are never changed or deleted once written. The one later addition is the billed figure, written beside the estimate.
Who a person is
A record carries an identifier, whatever your sign-in issued. Agent Pulse never sees your sign-in, so it cannot turn an identifier into a name. Send the name once with the user and it is shown wherever they appear; send none and the console shows identifiers.