Evidence guide for auditors
Use this page to answer an auditor’s “show me”. Each stream below says what it records, where to read it, how it leaves the platform and how long it is kept by default.
Evidence streams
Section titled “Evidence streams”| Stream | Records | Read it | Export | Default retention |
|---|---|---|---|---|
| Run step records | Every model call, tool call, retrieval, approval, delegation, cap, error and output of an agent run, in order, with the agent release, hash-chained per run and anchored in the security audit log | Reconstruct an agent run | Audit export (run_steps stream) | Kept (step_record class); content per the step_content class |
| Administrative audit trail | State-changing and refused requests on admin and security routes: who, what, when, outcome. Hash-chained since the upgrade that introduced run step records. | Audit trail | Audit export (OpenTelemetry logs or a signed webhook) | Per the admin_audit retention class |
| Security audit log | Agent identity, credential grant, delegation, redemption and decision events, hash-chained per tenant | The security-audit verify CLI (credential governance) | Audit export | Kept (security_audit class) |
| LLM gateway request log | One row per model call: model, tokens, cost, latency, outcome and run id. Prompt and response text are not stored. | LLM proxy analytics | Database read | 92 days (gateway_request_log class) |
| Conversations and run events | Messages, tool calls shown in chat, and execution events | The conversation itself | — | Per the conversation class (kept unless set) |
| Suspensions | Every stop and resume, with scope, reason, actor and source | Runtime safety | Audit export | admin_audit class |
| Retention and legal hold changes | Policy edits, and holds placed and released | Audit evidence and retention | Audit export | admin_audit class |
The export schema is documented in Audit event schema. Every exported event carries its source, its actor and, for chained streams, its chain fields.
Verify that nothing was altered
Section titled “Verify that nothing was altered”Three streams are hash chains. Each record’s hash covers its content and the previous record’s hash, so a changed, removed or inserted record breaks the chain at that point.
| Chain | Verify with |
|---|---|
| Security audit log, one chain per tenant | The verification command on the credential governance page |
| Run step records, one chain per run, anchored in the security audit log when the run ends | GET …/run_steps/prompt_lib/{project_id}/{run_id}/verify (Reconstruct an agent run) |
| Admin audit trail, one platform-wide chain | GET /api/v2/elitea_core/audit_chain_verify/administration (Admin audit trail chain) |
Each answers with the first record that does not match.
In your SIEM or archive, a gap in sequence numbers or a hash that does not chain shows that events were lost or altered on the way.
Reconstruct what an agent did
Section titled “Reconstruct what an agent did”Every agent run has a chained step record: each model call, tool call, retrieval, approval, delegation, cap, error and the final answer, in order, tied to the exact agent release, with the content of each step kept by reference. Follow Reconstruct an agent run to go from a chat answer to its steps, read what went in and out, and verify the record.
For spend and latency per model call, the gateway request log rows carry the same run id.