Voor compliance + DPOs · 2026-05-25

AI Act artikel 12: wat je moet loggen als je AI gebruikt in een bedrijfsproces

Aanbieders en deployers van high-risk AI moeten elke LLM-call traceerbaar maken — terwijl GDPR PII-bewaring beperkt. Hoe je beide tegelijk respecteert met PII-redactie aan de bron en gesigneerde evidence packs.

De EU AI Act is van kracht. Artikel 12 verplicht aanbieders en deployers van high-risk AI-systemen om automatische logs bij te houden van de werking van het systeem. Maar wat betekent dat concreet als je vandaag al AI gebruikt in je bedrijfsprocessen?

Dit artikel is geen juridische interpretatie — daarvoor heb je een advocaat of DPO. Wat het wél geeft: een concreet overzicht van welke loggingverplichtingen er zijn, welke organisaties er onder vallen, en hoe je het technisch implementeert.

Wie valt onder artikel 12?

De AI Act maakt onderscheid tussen aanbieders (die AI-systemen op de markt brengen) en deployers (die AI-systemen gebruiken in een professionele context).

Aanbieders van high-risk AI-systemen (gedefinieerd in bijlage III van de AI Act) moeten technische documentatie produceren en logs bijhouden van de werking.

Deployers die high-risk AI gebruiken moeten:

High-risk toepassingen (bijlage III) omvatten onder andere:

Belangrijk: ook als je géén high-risk systeem hebt, gelden er transparantie-verplichtingen (artikel 50) en zijn er verwerkingsverplichtingen onder GDPR als je persoonsgegevens verwerkt via LLMs.

Wat artikel 12 concreet vraagt

Artikel 12(1): "High-risk AI-systemen zijn technisch in staat om automatisch logs te genereren van de werking van het systeem gedurende de levensduur ervan."

In de praktijk betekent dit:

Het GDPR-complicatie: PII in LLM-calls

Hier wordt het praktisch ingewikkeld. Als je een LLM gebruikt voor klantenservice en eindgebruikers sturen persoonsgegevens mee in hun berichten — een IBAN voor een rekeningvraag, een patiëntnummer voor een zorgvraag, een sollicitatienummer voor een HR-vraag — dan ben je verplicht om:

  1. Die gegevens te loggen voor AI Act-traceerbaarheid
  2. Die gegevens niet onbeveiligd op te slaan voor GDPR-doeleinden
  3. Een data-transfer te documenteren als de LLM-provider buiten de EU gevestigd is (OpenAI, Anthropic, Google)

Deze drie verplichtingen conflicteren met elkaar als je ze niet expliciet adresseert.

De aanpak van monsys: PII-redactie aan de bron, vóór opslag. De SDK herkent IBAN, Rijksregisternummer, BTW-BE, KBO, NL BSN, FR NIR, e-mailadressen en telefoonnummers via checksum-validatie en vervangt ze door [REDACTED-IBAN-BE] voordat de HTTP POST naar de hub vertrekt. De hash van het origineel blijft beschikbaar voor bewijs ("dezelfde IBAN als in span Y") zonder dat het origineel ergens bewaard wordt.

AI observability overzicht in monsys De AI-pagina toont per app het volume, kosten, pii-hit-rate, refusal-rate en alert-status. Alles gebaseerd op geredacteerde data.

Praktijkscenario: HR-recruitment AI onder AI Act artikel 6

Je gebruikt Claude om CV's voor te selecteren voor openstaande vacatures. Dat is high-risk AI (bijlage III, punt 4).

Wat je moet kunnen aantonen:

Praktisch probleem: een kandidaat dient een klacht in via de Gegevensbeschermingsautoriteit. Ze wil weten waarom haar CV werd afgewezen.

Zonder AI observability: je moet handmatig door deployment logs, prompt-configuraties, en Git-history zoeken om te reconstrueren wat het systeem zag en zei. Dat duurt dagen en de kans op volledigheid is laag.

Met monsys AI observability: filter traces op user_session_hash van de kandidaat, ontgrendel content via TOTP (eenmalig, gelogd), en reconstitueer de exacte prompt en respons binnen vijf minuten. Artikel 14 human oversight: de operator die de klacht behandelt is de human-in-the-loop.

Praktijkscenario: klantenservice-chatbot en FSMA

Je hebt een AI-chatbot die rekeningstandvragen beantwoordt voor klanten van een financiële instelling. FSMA komt vragen: bewijs dat de bot nooit IBAN-nummers van andere klanten heeft blootgesteld.

Zonder logging: je kunt dit niet bewijzen. Je kunt hooguit zeggen dat het systeem zo geconfigureerd is dat het niet zou moeten gebeuren.

Met monsys: elke span bevat pii_hits met hashes van geredacteerde PII. Een maandelijks evidence pack bevat een geaggregeerd rapport.

python verify.py evidence_bank-bv_april-2026.tar.gz
✓ Signature valid (Ed25519)
✓ 2847 spans intact
✓ PII summary: 312 IBAN-hits, all redacted
exit 0

De FSMA-inspecteur heeft een offline verifieerbaar artifact. Geen dashboard-toegang nodig, geen vertrouwen op claim.

Praktijkscenario: cost-spike preventie

Een developer pusht een nieuwe RAG-prompt met een bug: hij geeft per ongeluk de volledige documentatiedatabase mee als context in elke call. Elke prompt is plotseling 50KB in plaats van 2KB.

Zonder monitoring: je ontdekt dit op de maandelijkse OpenAI-factuur. Schade: €2.000-5.000.

Met monsys: een cost-spike alert vuurt binnen 15 minuten wanneer cost_per_minute > €1 (configureerbaar). Push-notificatie via ntfy op je telefoon. De developer rolt de bug terug. Schade: €4-8.

Dit is geen compliance-voordeel maar een direct financieel voordeel. AI-costs zijn volatiel en moeilijk te budgetteren zonder monitoring.

Wat monsys wél en niet doet voor AI Act compliance

Wat monsys levert:

Wat monsys niet doet:

De eerlijke boodschap: AI Act compliance is een combinatie van juridische analyse, organisatorische processen, en technische tooling. monsys levert de technische tooling voor de loggingverplichting. De rest is aan jou.

Integratie in drie stappen

Stap 1: Maak een AI-app aan in het dashboard. Token wordt één keer getoond.

Stap 2: Drop de SDK naast je LLM-call. Voorbeeld in Python:

from monsys_ai import Tracer
tracer = Tracer()  # leest MONSYS_AI_TOKEN uit environment

def process_customer_request(user_message: str, session_id: str) -> str:
    with tracer.trace(f"customer_service.{session_id}") as t:
        with t.span("claude.respond", provider="anthropic", model="claude-sonnet-4-6") as s:
            s.prompt = user_message
            response = claude_client.messages.create(
                model="claude-sonnet-4-6",
                messages=[{"role": "user", "content": user_message}]
            )
            s.completion = response.content[0].text
            s.input_tokens = response.usage.input_tokens
            s.output_tokens = response.usage.output_tokens
            return s.completion

Stap 3: Bekijk traces in het dashboard. Stel cost-alerts in. Exporteer maandelijks een signed evidence pack.

Eerste AI-app gratis per tenant. Geen creditcard voor de eerste 5.000 traces per maand.


AI observability is gedocumenteerd in docs.monsys.ai/nl/ai/quick-start. Start gratis: monsys.ai/nl/ai.

Terug naar blog