EU AI Act Article 12: record-keeping for AI agents
Article 12 of the EU AI Act is the record-keeping obligation: high-risk AI systems must automatically record events over their lifetime so that what the system did can be traced and checked after the fact. This page covers what the article asks for and how verifiable execution receipts satisfy it.
This is an engineering explainer, not legal advice. For a compliance determination, consult qualified counsel. Citations are to Regulation (EU) 2024/1689.
What Article 12 requires
Article 12 of Regulation (EU) 2024/1689 requires that high-risk AI systems technically allow for the automatic recording of events ("logs") over the lifetime of the system. The purpose stated in the article is traceability: the records must be appropriate to identify situations that may cause the system to present a risk or undergo a substantial modification, and to support post-market monitoring. In short, the system has to keep automatically generated logs that let someone reconstruct and verify how it operated.
For an AI agent that calls tools, moves money, or reads records on a user's behalf, the operative questions an auditor will ask are: what did the agent do, under what authority, and can that account be trusted without taking the operator's word for it?
Where ordinary logging falls short
Most agent stacks already write logs. The gap Article 12 exposes is not whether events are recorded but whether the record can be trusted after the fact. A log that lives in the operator's own database is editable and deletable by the operator. An auditor reviewing it has to trust the very party whose system they are auditing, and a record that can be silently rewritten does not provide the traceability the article is after.
How verifiable receipts map to the requirement
A signed execution receipt turns "we have a log" into "here is a record you can verify without trusting us." The bilateral receipt pattern — normative guidance in the OWASP Agentic Skills Top 10 (AST09) — produces two signed records per action:
- Admission receipt: the agent, the intended action, the authorized scope, and the policy version in effect at that moment.
- Outcome receipt: what actually happened, linked to the admission by a content-derived hash (
action_ref).
Both are canonicalized with JCS (RFC 8785), signed with Ed25519, and hash-chained. That gives the three properties the article's traceability goal implies:
- Automatic: receipts are emitted around each action by the runtime, not written by hand.
- Tamper-evident over the lifetime: editing a record invalidates its signature; deleting one leaves a gap in the chain, so the record retains integrity across the system's life.
- Independently verifiable: a regulator or auditor checks a receipt offline with just the receipt and a public key — the traceability does not depend on trusting the operator.
What this looks like in code
Instrumenting an agent action to emit Article-12-friendly records is one decorator:
from nobulex import track
@track(agent_id="billing-bot")
def charge(invoice_id: str, amount_cents: int):
... # your existing code, unchanged
Verification is offline — no callback to the operator, the platform, or Nobulex:
from nobulex.agent import Agent
agent = Agent("billing-bot")
receipt = agent.act("charge", scope="invoice:042")
assert receipt.verify() # recomputes action_ref, checks the signature, offline
Timeline
The EU AI Act entered into force in 2024 with obligations phasing in over subsequent years. For the high-risk record-keeping obligations relevant here, the commonly cited enforcement milestone is December 2, 2027. Building verifiable records in now is cheaper than retrofitting them under deadline, and the same receipts serve internal audit and incident response long before any regulator asks.
Getting started
pip install nobulex
# or
npm install @nobulex/core
Nobulex is the open-source (MIT) reference implementation of the bilateral receipt pattern. For the broader mapping across the Act, see the EU AI Act compliance guide; for the AST09 background, see OWASP AST09 execution receipts; for a step-by-step build, the verifiable audit trail guide.
