§ PLATFORM / AUDIT TRAIL
An audit trail your auditor can check.
Logs say what happened. An audit trail also has to show that nothing was changed afterwards. Execlave writes every blocked agent action, every pause and every governance change to an append-only table, links each row to the one before it with a SHA-256 hash, and seals the chain with signed checkpoints. Export it, and anyone can recompute the hashes.
§ CAPABILITIES
Evidence that holds up when someone checks it
An auditor rarely asks whether you log. They ask how you know the log is complete and unchanged.
Evidence that holds up when someone checks it
01 / Capability
Hash-chained rows
Each row stores a SHA-256 hash of its action, actor, resource, state before and after, result, metadata and timestamp, together with the hash of the row before it. Editing, removing or reordering a row breaks the chain at that point.
02 / Capability
Append-only in the database
Database triggers reject every UPDATE and DELETE on the audit table, and the API connects as a database role that cannot switch them off. The protection lives in the database, not in application code that could skip it.
03 / Capability
Signed checkpoints
Hourly by default, the tip of each organization's chain is signed with an RSA-PSS key and linked to the previous checkpoint. Verification checks every signature against the chain it sealed, so a recomputed history no longer matches what was signed.
04 / Capability
Exports an auditor can use
Admins export the trail as CSV or JSON from the dashboard. The compliance package, available through the API, adds the chain status, coverage counts, step-by-step verification instructions and a SHA-256 hash of the package.
§ WHAT IS RECORDED
What lands in the trail
Every decision that changes what an agent may do gets its own row. Allowed calls are counted instead of logged one by one, so the trail stays readable and still shows how many calls were checked.
What lands in the trail
§ VERIFY IT YOURSELF
How to verify an Execlave audit trail
Steps two to four need only the exported file and a SHA-256 tool. They are the instructions the compliance package ships with.
How to verify an Execlave audit trail
Export the compliance package
As an organization admin, call GET /api/v1/audit-logs/package/export with a date range. It returns the entries, the chain status, coverage counts and a package hash.
Recompute each entry's hash
For each entry, compute SHA-256 over its fields in the order its hash version defines, with JSON fields serialized as key-sorted canonical JSON, and compare the result with content_hash.
Check the links
For each pair of consecutive entries, check that the later entry's previous_hash equals the earlier entry's content_hash. An inserted, removed or reordered entry fails here.
Check the package hash
Compute SHA-256 over the entries array and compare it with package_hash. A match shows the file was not edited after export.
Check the signed checkpoints
Call GET /api/v1/audit-logs/chain/verify. It replays the whole chain and checks every checkpoint signature against the point in the chain it sealed.
Entries written under the first hash version can have their links checked but not always their content hash. The package counts them separately as legacy entries instead of hiding them.
§ QUESTIONS
AI agent audit trails, answered
AI agent audit trails, answered
What is an AI agent audit trail?
An AI agent audit trail is a chronological, tamper-evident record of what agents were and were not allowed to do, and of every human decision that changed their permissions. Unlike application logs, it is built to show afterwards that no record was altered or removed.
What does Execlave record when an agent acts?
Every policy violation gets its own row with the agent, the policy, the policy version and whether the action was blocked. Allowed actions are counted in hourly rollups instead of being written one by one. Pauses, resumes and governance changes record who acted, when and why.
How is the audit trail made tamper-evident?
Three layers. Database triggers reject updates and deletes. Each row carries a SHA-256 hash of its own content and of the previous row, so an edit breaks the chain. Signed checkpoints seal the tip of the chain, so even a fully recomputed chain no longer matches what was signed.
Can an audit record ever be changed or deleted?
Not through the application or the API. The exceptions are narrow and deliberate: rows age out at the end of the retention period, erasing a user under the GDPR clears their IP address, user agent and email from their rows (fields outside the hash), and deleting an organization at the end of the service deletes its trail.
Is every audit record signed?
No. Checkpoints are signed, not individual rows: hourly by default, the tip of the chain is signed with RSA-PSS and SHA-256. The rows themselves are protected by the hash chain. Compliance reports generated from the trail are signed as a whole; the audit package export carries a SHA-256 hash, not a signature.
Does the audit trail cover EU AI Act Article 12?
Article 12 requires high-risk AI systems to allow the automatic recording of events over their lifetime, so that their operation can be traced. Execlave records those events for the agents it governs and keeps the record verifiable. Whether your system meets Article 12 depends on everything you log and keep; the trail supports that, it does not decide it.
Who can read the audit trail?
Organization admins and owners. Each organization's rows are isolated by PostgreSQL row-level security, so one customer's trail is never visible to another.
§ COMPARISON
An audit trail vs. the logs you already have
Application logs and tracing tools answer different questions. They show what ran and how fast. An audit trail has to show what was allowed, who decided, and that the record is intact.
An audit trail vs. the logs you already have
| Aspect | Application logs | Tracing and observability | Execlave audit trail |
|---|---|---|---|
| Built to show | What the code did | How a request performed | What an agent was allowed to do, and who decided |
| Edits and deletes | Possible with write access | Depends on the vendor | Rejected by database triggers |
| Proof nothing is missing | Not built in | Not built in | SHA-256 hash chain and signed checkpoints |
| Blocked actions | Only if the code logs them | As spans, if instrumented | One row per violation, with the policy version |
| Auditor export | Raw log files | Dashboards and an API | A package with verification steps |
Start the record before an auditor asks for it
Register an agent and every block, pause and policy change is on the record from the first request. Cloud or self-hosted.