# Audit

> One trail across the platform for people and AI employees alike, carrying the actor, the operation, the outcome and - for model calls - the model, prompt hash, tokens and cost

Source: https://aipril.dev/docs/platform/audit

## One trail, both kinds of actor

People and [AI employees](https://aipril.dev/docs/ai-organisation/employees.md) are recorded on the same trail, under their
own identities. "Who changed this in March" is answerable without first establishing whether the
answer is a person.

## What is recorded

| Source | Examples |
|---|---|
| Platform operations | Access changes, installs, configuration, administrative actions |
| Connector calls | Every operation invoked from a workflow, with its actor and outcome |
| Agent decisions | Every tool call an agent makes, in chat and in background execution |
| Denials | A refused tool call, with a reason code distinguishing a guardrail block from a refused approval |
| Model calls | Model id, prompt content hash, token counts, cost, latency, attempts |

The last two rows are what make an agent's behaviour investigable and not merely visible. See
[The decision trace](https://aipril.dev/docs/harness/traces.md).

## Redaction before persistence

Arguments and output pass through a redaction pipeline on the way to the trail, so the record of an
action does not itself become a store of personal data.

## Scope and access

The trail is per organisation, like everything else in the platform - see
[Tenant isolation](https://aipril.dev/docs/platform/access/tenant-isolation.md) - and reading it is an ordinary platform
permission, not a developer-only surface.

## The activity stream is a different record

The audit trail records actions. The record of **what changed on an object over time** is the object's
own activity stream, alongside the discussion about it - see
[Collaboration](https://aipril.dev/docs/collab.md). The two answer different questions and are stored separately.
