The deadline. The mechanism. The packs. The catalogue. How it compares. What's at stake. Eight short chapters, laid out so a compliance officer, a CISO and an auditor can each find the part they need.
The deadline moved. The requirement didn't. Under the Digital Omnibus (Regulation (EU) 2026/1744, in force 27 July 2026), the high-risk obligations — including Article 12 record-keeping — now apply from 2 December 2027 for stand-alone Annex III systems. Evidence can't be created retrospectively, so the trail you'll need to show then has to start being captured now.
Article 12 of the EU AI Act is short. Three paragraphs. The operational implications are enormous, and most firms reading the text the first time underestimate the engineering work required to comply.
Datadog and Splunk capture HTTP-level activity. Drata and Vanta collect static control evidence. None of them produce runtime agent action records in the format the AI Office has signalled as adequate.
Meanwhile, Lloyd's cyber and Tech E&O underwriters increasingly require AI logging at renewal — and price the answer.
Regulation (EU) 2024/1689, Article 12 §1–3. Penalties: Article 99. Applicable to stand-alone high-risk (Annex III) AI systems from 2 December 2027; high-risk AI embedded in regulated products (Annex I) from 2 August 2028, per the Digital Omnibus (Reg. (EU) 2026/1744). UK firms in scope where their AI systems are placed on the EU market or their outputs are used in the EU.
SHA-256 chain · receipts · timestamping authority
A receipt proves an action occurred — tamper-evidently. Bound beside it is the authority snapshot: what the agent was allowed to do at that instant — in scope, delegated, in force, not revoked. Corrections, disputes, authority changes and revocations chain in verifiable order, so nothing can be silently dropped or slipped in after the fact.
// One receipt per agent action { "event_id": "evt_8f2a4b...", "agent_id": "claims_triage_v3", "ts": "2026-06-07T14:23:11Z", "action": { "type": "tool_call", "name": "lookup_customer", "params_hash": "sha256:a1b2..." }, "resource": { "classification": ["PII", "financial"] }, "redacted_input": "lookup [REDACTED]", "redacted_output": "{age: 34, ...}", "prev_hash": "sha256:7c9d4e...", "signature": "30450221..." }
# pip install agentaudits import agentaudit from agents import Agent agentaudit.init( api_key="aa_live_...", agent_id="claims_triage_v3", ) agentaudit.adapters.instrument_openai_agents() # Your agent runs as normal — # receipts flow automatically. agent = Agent(name="claims_triage_v3", ...) agent.run(customer_query)
# Query every action on a customer curl -G https://www.agentaudit.co.uk/api/v1/receipts \ -H "Authorization: Bearer aa_live_..." \ --data-urlencode "agent_id=claims_triage_v3" \ --data-urlencode "resource_id=cust_4910" \ --data-urlencode "ts_from=2026-03-01T00:00:00Z" \ --data-urlencode "ts_to=2026-03-31T23:59:59Z" # Or generate the evidence pack curl https://www.agentaudit.co.uk/api/packs/eu-ai-act-12 \ -H "Authorization: Bearer aa_live_..." > pack.html
We engineered the EU AI Act Article 12 evidence pack from the regulation itself, the AI Office's published guidance, and conversations with external auditors at compliance review pilots.
Eight pages. Cover, executive summary, system inventory, operational summary, material event analysis, integrity proof, manifest, auditor sign-off. PDF for the auditor, machine-readable JSON for the regulator's analyst.
As the catalogue grows — ICO, FCA, NIST, insurance — the format stays consistent. But the real moat sits underneath every pack: one signed, independently timestamped as-of record — at the moment an action happened, what authority was in force, and what has happened since — reproducible byte-for-byte by anyone, trusting no one.
Six packs in active development. Each engineered against the underlying regulation and validated with practising auditors. The same hash-chained receipt feeds all of them — meaning when a new regulator gets its question ready, the answer is already in your data.
| Datadog / Splunk | Langfuse / Helicone | Drata / Vanta | Agent Audit | |
|---|---|---|---|---|
| Per-agent-action records | — HTTP only | ~ dev tracing | — static controls | ✓ Native |
| PII redaction at the SDK | — | — raw prompts stored | — | ✓ 7 patterns + Luhn |
| Cryptographic hash chain | — | — | — | ✓ SHA-256 + RFC 3161 |
| Authority pinned at moment of action | — | — | — | ✓ As-of record |
| Occurrence vs authorisation verdict | — | — | — | ✓ Both, separately |
| Offline completeness check — catches omission & back-dating | — | — | — | ✓ Not just integrity |
| Regulator-ready export packs | — | — | ~ SOC 2 / ISO only | ✓ 6 jurisdictions |
| Cross-vendor (OpenAI · Claude · MCP) | ~ via integrations | ✓ | — | ✓ Native adapters |
| UK data residency default | ~ region selectable | ~ EU option | ~ EU option | ✓ London by default |
| Built for | SRE teams | ML engineers | SOC 2 compliance | CISOs · auditors · regulators |
If our underwriting agent rejected a claim wrongly and the customer escalated to the ICO, I genuinely do not know whose desk that lands on. We log to Datadog. But could I produce an evidence pack for that specific decision in under a quarter? Probably not. And we have insurance renewal in March.
The answer: a signed as-of record of that one decision — what the agent was authorised to do the instant it acted, and everything that has happened to the case since. See one you can verify yourself →