ai
Audit Evidence Packs: Answer Auditors With an AI Agent on Rails
AI audit trail evidence is only useful if someone else can verify it. An Evidence Packer agent, at read and propose levels (L1 to L2), answers one audit question from a customer data platform (CDP) consent ledger, reason codes and agent runs. It cites every entry, states every gap plainly and draws no compliance conclusion. The compliance lead reviews and releases each pack.
Rail level: L1 to L2 · Risk: medium · Function: compliance privacy security
By Art Kukharenko · Published · Updated
All AI agent railsWho this is for: compliance leads, DPOs and internal auditors who get record-level questions about customer data. This job is one rail in the vendor-neutral AI agent rails method. Take advice on what your auditor or regulator will accept.
Before: the manual workflow
The manual evidence workflow starts with an email and ends with a document nobody can fully check. A question arrives from an auditor. Compliance asks the data team for exports, the marketing team for screenshots and the platform team for logs. Someone writes a narrative from what came back, and time zones and identifiers rarely line up.
Two problems recur. The narrative is written from memory of how the process should work. And gaps appear late, sometimes first noticed by the auditor. Tool logs also expire quickly: Hightouch keeps row-level debugger logs for seven days and run summaries for 30 1, and Fivetran Activations keeps Sync Tracking for 14 days in its interface 2. A question about last spring cannot be answered from those screens, so evidence must live in your own ledger.
What counts as audit evidence for an AI agent?
Audit evidence for an AI agent is a record that bears on the question and that a third party can check. ISO 19011:2018 describes audit evidence as relevant to the audit criteria and "verifiable" 3. A model's account of what happened fails that second test unless each statement points to a record. The questions auditors actually ask are concrete: what was decided, on which data and version, who approved it, and whether you can reproduce it.
Several rules put the burden on you, without saying what a pack must look like. GDPR Art. 5(2) requires controllers to be able to demonstrate compliance, Art. 7(1) requires them to demonstrate consent, and Art. 58(1) lets authorities order information and obtain access 456. For high-risk AI systems, EU AI Act Art. 26(6) requires deployers to keep the logs they control for at least six months unless other law says otherwise 7. Annex III obligations apply from 2 December 2027, and marketing segmentation is not high-risk per se. Retention beyond that floor is a decision for your compliance team.
The table maps common questions to sources. It also shows what each source cannot prove, which is what a good pack says out loud.
Scroll horizontally to see all columns.
| Audit question | Evidence source | What it can show | What it cannot show |
|---|---|---|---|
| Did this person consent at the time of this send? | Consent ledger, by reference; consent-check ID on the send | The state the rule saw at that moment | That the original consent was valid, if the record was imported without proof |
| Why was this person in this audience? | Decision record: reason codes, catalogue version, model and policy versions | Which factors and versions applied | That the factors were appropriate |
| What did this agent do, and who authorised it? | Agent runs: correlation ID, tools called, approval hash | Actor, scope and payload version | What the approver actually read |
| Did the agent stay inside its rail? | Rail card version against ledger metadata, from the Policy Drift Checker | Calls outside the card | Harm done by a call inside the card |
| Was human review real? | Approval records, decisions, overrides by role | That a review step happened | Quality of the review. Sample it instead |
| Are the records intact? | Hash chain verification | Tampering after the entry was written | That the entry was right when written |
After: the job on rails, step by step
The evidence job on rails starts from a logged question and ends with a person's release.
- Compliance logs the question. Period, population and rule go on record. The agent never acts directly on an auditor's email.
- The agent reads (L1). It reads rail cards, policy versions and ledger views, and returns what exists, with references. For an internal question, this read-only answer may be all that is needed.
- Rules test coverage. A query compares what should exist with what does, such as sends in the period against consent-check IDs. The result feeds the gaps section.
- Rules test integrity. The chain is verified, and each cited entry's hash is recomputed.
- The agent drafts the pack (L2). It writes the question, an evidence index, statements with ledger references, and gaps stated plainly.
- Rules test the draft. Every reference must resolve, every figure must match its source, and uncited sentences or conclusion words such as "compliant" are rejected.
- The compliance lead reviews and releases. Release binds to the pack hash. Counsel reads anything going to a regulator.
- A separate service delivers it, and the ledger records entries cited, pack version and releaser.
- Lessons feed back. A returned pack or a found gap becomes a test case and, where needed, a remediation owned by the rail owner.
What rules do and what the model does
Rules establish the facts in an evidence pack, and the model arranges them in readable form. This split follows one principle: rules enforce and models explain. A model's silence about a period does not mean that period is clean.
Scroll horizontally to see all columns.
| Task | Done by | Why |
|---|---|---|
| Find what should exist and what does | Coverage query | A model only sees what it retrieves, so it cannot notice what never arrived |
| Prove records are unaltered | Hash verification | Must be repeatable by the auditor |
| Fetch entries | Fixed, read-only ledger views | Scope is enforced by the view, not the prompt |
| Link a statement to its entry | Model proposes, citation check confirms | A broken reference fails the draft |
| Write the narrative and index | Model | Useful, and checkable sentence by sentence |
| Decide what the evidence means | Compliance lead | A conclusion is a human judgement |
The Rule of Two also applies 8. An auditor's question is outside text, and past agent runs can contain injected instructions. The session reads that text and sees sensitive records, so it must not hold the third property, the ability to change state or send. Delivery runs as a separate service, and payloads stay out of the session where a reference will do.
How should an evidence pack state a gap?
An evidence pack should state each gap as a finding with a cause, a period and an effect on the answer. Absence of a record is not proof that nothing happened, and the pack must not imply it. A pack with an empty gaps section needs one line saying which coverage checks ran. The taxonomy below is ours, and the wording is illustrative.
Scroll horizontally to see all columns.
| Gap type | Plain statement in the pack | Owner of the next step |
|---|---|---|
| Never logged | "Consent-check IDs were not recorded for this destination before the date the control went live. We cannot show the check ran." | Rail owner |
| Expired | "Payloads for this period passed their retention date. Metadata remains. We cannot show the content sent." | DPO |
| Not connected | "This system is not connected to the ledger. Evidence for it was not searched." | Platform lead |
| Integrity failure | "Chain verification failed for these entries. We do not rely on them." | Security lead |
| Unresolved reference | "Identifiers are held by reference. A person must resolve them under separate authority." | Compliance lead |
Here is an illustrative answer. Asked whether every send in a quarter passed a consent check, the pack gives the count matched and names one destination with three weeks of missing check IDs. It says when the control began and what the data cannot show. The compliance lead adds the remediation and releases. Auditors tend to trust a pack more when it finds its own holes, though that is our judgement and not a measured result.
The rail card
The rail card below fixes what the Evidence Packer may do, and data views and tools enforce it.
Scroll horizontally to see all columns.
| Field | Value |
|---|---|
| Job | Assemble consent history, decision reason codes and agent runs to answer one audit question. |
| Trigger | An audit or regulator question logged by compliance. |
| Data scope | Audit ledger, consent ledger with identifiers by reference, rail cards and policy versions. |
| Tool scope | Read: ledger views, rail cards, policy versions. Propose: evidence pack with an index. Execute: none. |
| Output contract | Question, evidence index, ledger references, gaps stated plainly. |
| Gate | The compliance lead reviews and releases every pack. |
| Limits | Read-only ledger views, identifiers by reference, no outbound tools. |
| Ledger | Question hash, entries cited, pack version, releaser. |
| Evaluation | Past audit questions with accepted answers, plus seeded gaps. |
| Owner and kill switch | Compliance lead. An Orchestrator pause stops the agent, and ledger access continues for people. |
The level is L1 for a read-only answer inside the team, and L2 when the agent drafts something meant for release. It never reaches L3, because release is a judgement about what to tell a regulator and cannot be undone.
What the ledger shows for one run
The ledger entry for one pack lets an auditor test the pack itself. This example is illustrative, with invented values.
{
"question_hash": "c41e...",
"scope": {"period": "<quarter>", "rule": "consent_check_on_send"},
"checks": {"coverage_id": "cov_0092", "chain_verified": true, "citations_resolved": true},
"entries_cited": 412,
"gaps": [{"type": "never_logged", "destination": "ad_platform_b"}],
"pack": {"version": 3, "hash": "9ad0..."},
"released_by": {"role": "compliance_lead", "actor_ref": "usr_204"},
"model": "model-id@version"
}
Three ways it fails, and the control for each
Each failure below comes from how evidence work goes wrong, and each control sits outside the model.
Scroll horizontally to see all columns.
| Failure | What it looks like | Control |
|---|---|---|
| A conclusion in disguise | The narrative says "fully compliant" or "no issues", and it reads as the company's position. | The output contract bans conclusions, and a rule rejects those words. Only the compliance lead may conclude. |
| A silent gap | The model summarises what it found and leaves out a month that never logged. | Coverage is computed outside the model, and seeded gaps test that the pack reports them. |
| Too much in the pack | Personal data or named staff appear beyond what the question needs. | Identifiers by reference, views limited to the scope, and review before release. Report approvals by rail and role. |
The last control needs care. Approval records can tempt a team to compare individual reviewers. AI Act Annex III point 4(b) lists monitoring and evaluating workers' performance as a high-risk employment use 9, so take advice before reusing the ledger that way.
Metrics that are honest
Honest evidence metrics show whether packs survive contact with an auditor, using definitions from the AI marketing operations roadmap where they apply.
- Time to answer, from logged question to release.
- Packs returned by auditors, with the reason recorded.
- Gaps found before an audit, compared with gaps an auditor found first.
- Seeded gaps reported, by gap type.
- Audit coverage: the share of AI-assisted actions with a complete ledger record. Anything below 100% is a defect.
How vendor tools compare
Compliance automation tools collect control evidence well, and for a SOC 2 or ISO audit they are usually the right answer. They mostly answer "is this control operating?", while this rail answers "what happened to this person or this send?". We read these pages on 1 November 2026.
Scroll horizontally to see all columns.
| Tool | What the page says | Human step | Fit for this job |
|---|---|---|---|
| Vanta Agent | Captures screenshot evidence for document tests, using a recommended read-only service account. Policies and signed agreements stay manual 10. | Explicit approval before upload 10 | Control evidence, not record-level questions |
| Drata | Agentic third-party reviews, where people validate and decide 11. AI Agent Governance, reported in early access in June 2026, logs agent decisions tamper-evidently 12. | People make the final call 11 | Vendor risk, and possibly agent logs; confirm scope |
| AWS Audit Manager | Automates evidence collection and says it does not assess your compliance. It is no longer open to new customers 13. | Delegated review of controls | AWS usage, for existing customers |
A script or saved query is better than an agent when the same question recurs in the same form. Keep the coverage and integrity checks and drop the model. The agent earns its place when questions vary and the narrative takes real time. PrivyCDP's immutable audit ledger records each AI-assisted action with the human or system actor that authorised it. The Evidence Packer is a method you would build on a ledger like that, not a shipped feature. The boundary architecture patterns list the fields worth logging from day one, and withdrawal events come from your consent architecture.
Checklist
- Questions are logged with period, population and rule before the agent runs.
- The agent reads through fixed, read-only views.
- Coverage and integrity checks run outside the model.
- Every statement cites an entry, and broken citations fail the draft.
- A gaps section is mandatory and uses a fixed taxonomy.
- Conclusion words are rejected by rule.
- Release binds to the pack hash, and only the compliance lead releases.
- Delivery is a separate service.
- Reports use rails and roles, not named staff.
- Seeded gaps run before any model, prompt or tool change.
Evidence packs often follow an access request, and the wider function is in the compliance, privacy and security playbook. The method is on the AI agent rails hub. To write this rail for your team, download the rail card template.
Browse use casesFunction playbooksAgent roster
FAQ
What is AI audit trail evidence?
It is the set of records showing what an AI system did, on which data and version, under whose authority and with what result. To count as evidence, each record must be relevant to the audit question and checkable by someone else. A model's narrative is not evidence by itself, so each statement needs a ledger reference.
What should an AI agent audit trail include?
Record the agent and rail version, the human or system actor, tools called, hashes of inputs and payloads, the model version, the approval and approver, and the outcome. Keep it append-only, written outside the agent, and hold identifiers by reference. Our boundary article lists the fields and explains why erasure should not break the chain.
Can an AI agent answer a regulator directly?
No. An agent can assemble and draft, but the compliance lead reviews and releases, and counsel should read anything going to a regulator. The agent has no outbound tools. An unreviewed reply could contain a wrong statement of the company's position, and a release cannot be recalled.
How long should AI agent logs be kept?
There is no single answer. EU AI Act Art. 26(6) sets a six-month floor for deployers of high-risk systems, for logs they control, unless other law says otherwise. Sector rules may require longer, and vendor interface logs may expire within days or weeks. Set retention with your DPO and take advice.
What is the difference between a log and an evidence pack?
A log records events as they happen. An evidence pack answers one question: it restates the question, indexes the entries that bear on it, explains them in plain words and says what is missing. The log must exist first. A pack built on an incomplete log can only report the gap.
Does a complete ledger prove compliance?
No. A complete ledger proves what happened and who authorised it, which is necessary but not enough. It cannot prove that a consent was valid, that a review was careful, or that a legal basis was right. Those need human judgement, and the pack should say so instead of implying otherwise.
Sources
- Hightouch, debugging
- Fivetran Activations, Sync Tracking
- EU Agency for Railways terminology entry quoting ISO 19011:2018
- GDPR Article 5
- GDPR Article 7
- GDPR Article 58
- EU AI Act, Article 26
- Meta, Agents Rule of Two (31 October 2025)
- EU AI Act, Annex III
- Vanta, Agent screenshot evidence (updated 1 September 2026)
- Drata, Agentic TPRM assessment
- SecurityBrief, Drata AI Agent Governance (16 June 2026)
- AWS Audit Manager User Guide
This article is general information, not legal advice.
Further reading
- AI Audit Evidence Collection Agent
- AI Agents for Privacy Compliance
- AI Access Review Assistant
- Agent rails
- AI Agent Permissions Template Download
Published: · Updated:
Editorial dates describe content changes. Confirm current sources before making legal, security or purchasing decisions.