Close-up van een fijnmazig turquoise net met ongelijke mazen en openingen.
Inzicht17 augustus · 17:008 min leestijd

Het veiligheidsfilter dat je koopt is niet op Nederlands getest, en dat staat in de handleiding

Een contentfilter kopen zegt niets zolang je niet weet in welke talen het is getraind en getest. Bij Azure, AWS en Google staat Nederlands in de tweede rang, en de smalste functie is juist de belangrijkste.

Er staat één zin in de documentatie van Azure AI Content Safety die bijna niemand leest en die alles verandert aan wat je denkt te hebben gekocht: de hallucinatiecheck van Microsoft werkt met Engelse tekst. Niet "het beste in het Engels". Alleen. En stuur je er Nederlands in, dan krijg je geen foutmelding. Je krijgt een oordeel.

Mijn stelling is simpel. "Wij hebben een contentfilter" is geen beveiligingsmaatregel, dat is een productnaam. Een veiligheidsfilter heeft een taaldimensie, die staat per functie in de documentatie van je eigen leverancier, en voor Nederlands staat er zelden wat je hoopt.

De taalscope zit op de functie, niet op het product

Bij Azure AI Content Safety werken de detectie van beschermd materiaal, de hallucinatiecheck (groundedness detection) en eigen categorieën uitsluitend met Engels. De overige modellen zijn speciaal getraind en getest op acht talen: Chinees, Engels, Frans, Duits, Spaans, Italiaans, Japans en Portugees. Nederlands staat in diezelfde tabel als ondersteund, maar niet als speciaal getraind. Microsoft zet er zelf bij dat de kwaliteit kan variëren en dat je in alle gevallen je eigen tests moet doen.

Dat woord "ondersteund" is waar een inkoopgesprek op stukloopt. Het betekent niet dat het model op jouw taal is afgestemd. Het betekent dat je die taal mag insturen. Amazon is daar in zijn eigen documentatie explicieter over: het onderscheidt "optimized and supported", getuned én getest voor die taal, van "supported", getest maar niet getuned. En het schrijft er onomwonden bij dat guardrails niet werken bij talen die niet ondersteund worden.

Bij Google Model Armor zijn de filters voor schadelijke content en voor prompt-injectie getest op negen talen, en Nederlands staat daar niet bij, met dezelfde formulering erachter dat de kwaliteit van de resultaten kan verschillen. Drie leveranciers, drie verschillende talenlijsten, en drie keer zit Nederlands in de tweede rang. Zo ziet die taalscope per functie eruit in de documentatie zoals die vandaag online staat:

FunctieAzure AI Content SafetyAWS Bedrock GuardrailsGoogle Model Armor
Schadelijke content en jailbreakdetectiespeciaal getraind op acht talen, Nederlands alleen "ondersteund"Nederlands "geoptimaliseerd" in de Standard tier, in de Classic tier alleen Engels, Frans en Spaansgetest op negen talen, Nederlands niet
Hallucinatiecheck tegen je eigen bronalleen Engelsalleen Engels, Frans en Spaanszit niet in dit product
Wat de leverancier er zelf bij schrijftde kwaliteit kan variëren, doe je eigen testsguardrails werken niet bij talen die niet ondersteund wordende kwaliteit van de resultaten kan verschillen

De functie die je hier het hardst nodig hebt, is de smalste

Nu het deel dat zakelijk het meeste kost. Een hallucinatiecheck stelt vast of het antwoord van een model daadwerkelijk in het bronmateriaal staat dat je hebt meegegeven. Dat is de rem onder elke kennisbank, elke documentsamenvatting en elke vraag-en-antwoordtoepassing op je eigen archief. Microsoft noemt als scenario's letterlijk klantenservicebots en samenvattingen van interne documenten. Precies het werk waarvoor een Nederlands bedrijf zo'n filter aanzet.

En dat is dus de functie met de smalste taalscope van allemaal. In de beperkingen van de Azure-documentatie staat dat de API niet-Engelse invoer niet weigert, terwijl nauwkeurigheid en kwaliteit op Engels zijn geoptimaliseerd. Lees die zin twee keer. Geen foutmelding, geen waarschuwing, geen aparte zekerheidsscore die je kunt uitlezen. Er komt "grounded" of "ungrounded" terug, en jij logt dat als een uitgevoerde controle.

Bij Amazon is het beeld hetzelfde, alleen anders getekend. De Bedrock-guardrails dekken Nederlands wel voor schadelijke content en verboden onderwerpen, maar de contextual grounding check werkt alleen in het Engels, Frans en Spaans. Google biedt de functie in Model Armor helemaal niet aan: daar zitten schadelijke content, prompt-injectie, gevoelige gegevens en kwaadaardige links in, en geen check op feitelijke grond.

Dat is ook de functie waarvoor je het minst makkelijk een alternatief regelt. Een scheldwoord dat door het filter glipt kost je reputatie en je merkt het meteen. Een verzonnen bedrag dat als "gegrond" terugkomt uit je eigen leveranciersarchief kost je geld, en je merkt het pas als iemand het naleest.

De standaardinstelling beslist, niet je architectuurplaat

Azure detecteert de taal automatisch: voor tekstmoderatie en Prompt Shields geef je geen taalcode mee, de dienst bepaalt zelf wat er binnenkomt. Dat is comfortabel, en het betekent dat je er niet omheen kunt configureren. Er is geen knop "behandel dit als Nederlands".

Google doet precies het omgekeerde. Meertalige detectie staat daar niet aan, die moet je expliciet inschakelen. Wie dat niet weet, meet zijn Nederlandse stroom met een filter dat in de Engelse stand staat.

Bij Amazon zit de Nederlandse dekking alleen in de Standard tier. De Classic tier ondersteunt Engels, Frans en Spaans, punt. De Standard tier vereist bovendien inferentie over meerdere regio's, en daarover schrijft Amazon dat je invoerprompts en uitvoerresultaten buiten je primaire regio kunnen komen, binnen de geografie waar de data vandaan komt. Je Nederlandse vangnet kost je dus een beslissing over waar je verkeer verwerkt wordt. Dat is een reële afweging, geen voetnoot.

Wat er gebeurt als iemand dit allemaal niet uitzoekt en het gewoon aanzet, is in juni gemeten. Het Belgische AI-bedrijf ML6 zette vier commerciële guardrail-diensten op ongeveer 80.000 Nederlandse prompts, met een verhouding van 63 procent onschuldig en 37 procent kwaadwillend, op standaard of bijna-standaard instellingen. Cisco AI Defense kwam op een F1-score van 0,845 en AWS Bedrock Guardrails op 0,453, met Azure op 0,700 en Google Model Armor op 0,802. De cijfers achter die laagste score zijn het punt: een recall van 0,327, dus 67,3 procent van de kwaadwillende Nederlandse prompts kwam er ongehinderd door.

Zet dat naast de documentatie en je ziet de kern van dit stuk. Amazon is de enige van de drie die Nederlands op papier "geoptimaliseerd" noemt, en kwam op standaardinstellingen als laatste uit een Nederlandse test. Het gedocumenteerde label is niet het geleverde gedrag, want dat label geldt in een tier die je expliciet moet kiezen.

Het gaat ook niet alleen om wat er doorglipt. Google haalde de hoogste recall en tegelijk het hoogste percentage onterecht geblokkeerde prompts, 15,5 procent. En de scherpste illustratie van waarom taal geen bijzaak is staat in dezelfde analyse: het Nederlandse woord "hoe" kan een Engelstalig moderatiefilter laten afgaan, omdat het in het Engels iets heel anders betekent. Je klant vraagt hoe iets werkt, en je vriendelijke assistent geeft een blokkademelding.

Om eerlijk te zijn: Nederlands is geen zeldzame taal

Hier is het sterkste argument tegen mij, en het is een goed argument. Nederlands is geen marginale taal. Het staat volop in de trainingsdata van elk groot model, het is Germaans met Engels en Duits als naaste verwanten, en die twee staan bij alle drie de leveranciers wél in de speciaal-getrainde lijst. Overdracht tussen verwante talen werkt aantoonbaar. Daar bovenop: een filter is de buitenste laag van een verdediging, niet de enige, en documentatie loopt notoir achter op de implementatie. De Azure-taalpagina draagt een datum van 16 september 2025 met een bijwerking op 5 juni 2026; de dienst eronder is sinds die eerste datum vrijwel zeker verbeterd.

Dat klopt allemaal. En het verandert de conclusie niet, om drie redenen.

De eerste is dat het geen aanname meer hoeft te zijn. Iemand heeft het gemeten, in het Nederlands, twee maanden geleden, en de uitkomsten liepen van 0,45 tot 0,85. Als overdracht tussen verwante talen dit probleem oploste, zou die spreiding er niet zijn.

De tweede is dat achterlopende documentatie in je nadeel werkt, niet in je voordeel. Wat gedocumenteerd is, is wat je hebt gekocht en wat je bij een incident kunt aanwijzen. "Het werkt in de praktijk beter dan de handleiding zegt" is geen positie waarin je een toezichthouder, een verzekeraar of een klant wilt uitleggen wat je hebt gecontroleerd.

De derde is dat "het is maar één laag" precies mijn punt is. Een laag met een gedocumenteerd gat hoort geteld te worden als de buitenste en zwakste, en niet als de reden om de binnenste lagen over te slaan. Dat is dezelfde beweging als bij phishing, waar de verdediging die standhoudt begint bij hoe je je processen ontwerpt en niet bij je software. En het is precies waarom de onzichtbare tekstlagen uit een binnenkomend bestand halen voordat een model het leest meer waard is dan een filter erachter: die sluis draait op jouw regels, in jouw taal, en jij bepaalt wat hij pakt. Het onderliggende probleem verdwijnt namelijk niet, want een model kan jouw opdracht niet onderscheiden van de tekst die het onderweg leest.

Wat je hierna vraagt, en wat je zelf meet

Twee vragen aan je leverancier, en ze gaan per functie, niet per product. In welke talen is dit onderdeel getraind én getest, en welke functies zijn Engels-only? Krijg je "wij ondersteunen Nederlands" terug, dan heb je geen antwoord gekregen. Vraag er meteen bij hoe je het hoort als de taalscope of de standaardtier verandert, want dat is de stille wijziging die je dekking sloopt. Zulke antwoorden horen in de verwerkersovereenkomst en de subverwerkerslijst, niet in een mailtje.

Zelf meten kost minder dan je denkt. Je hebt geen 80.000 prompts nodig, je hebt tweehonderd echte Nederlandse regels uit je eigen verkeer nodig: de aanvragen die je klanten werkelijk sturen, met de scheldwoorden, de streektaal en de vaktermen erin, aangevuld met een handvol aanvallen in het Nederlands. Meet twee getallen: wat er doorglipt, en wat er onterecht wordt geblokkeerd. Dat tweede getal bepaalt of je collega's het filter na een maand nog aan laten staan.

En herhaal die meting na elke wijziging aan het model, de tier of de drempelwaarde. Een filter is geen instelling die je één keer goed zet.

De aanname die van de verkoper naar de koper verhuist

De reden dat dit stuk niet over Microsoft gaat, is dat Microsoft het netjes opschrijft. Alle drie de leveranciers doen dat. De talenlijsten staan open op internet, met datum, met de eerlijke waarschuwing erbij dat je je eigen tests moet doen. Er wordt niets verborgen. Er verhuist alleen een aanname van de verkoper naar de koper op het moment dat de dienst aangaat, en die aanname luidt: jouw werk gebeurt in het Engels.

Dat is wat een ingekochte beveiligingslaag altijd is. Geen bescherming, maar een aanname over jouw situatie, gedocumenteerd door degene die hem verkoopt en zelden gelezen door degene die hem koopt. Dat het merk op je AI-assistent niets zegt over wie je data verwerkt, omdat het model onder de motorkap dat bepaalt, is dezelfde blinde vlek, een verdieping lager. Taal is er de makkelijkst controleerbare variant van, en daarom de beste plek om te beginnen: één pagina documentatie en tweehonderd eigen regels.

Een net dat je nooit in je eigen taal hebt opgemeten is geen vangnet. Het is een gerust gevoel met een maaswijdte die iemand anders voor je heeft bepaald.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

AI die Nederlands echt aankan

Ik denk met je mee over waar je AI-stack in het Nederlands wegvalt, ontwerp de controles die je zelf in de hand houdt, en bouw ze end-to-end tot je kunt aantonen dat ze dicht zitten.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Gerelateerde artikelen

Google draagt A2A over aan de Agentic AI Foundation, naast MCP
Nieuws
5 min

18 aug 02:10

Google draagt A2A over aan de Agentic AI Foundation, naast MCP

Het Agent2Agent-protocol van Google komt als hosted project onder de Agentic AI Foundation, dezelfde stichting die MCP beheert. Daarmee staan de twee dragende agent-protocollen onder neutraal bestuur.

Verborgen instructies uit binnenkomende documenten halen voordat je AI ze leest
Gids
Uitgebreide gids13 min

17 aug 09:00

Verborgen instructies uit binnenkomende documenten halen voordat je AI ze leest

Een cv, een offerte of een factuur kan een instructie dragen die jij niet ziet en je assistent wel uitvoert. Zo bouw je de sluis die hem eruit haalt, met een testset die bewijst dat hij dicht zit.

Anthropic watermerkt alle tekst van Claude, wereldwijd
Nieuws
5 min

11 aug 02:10

Anthropic watermerkt alle tekst van Claude, wereldwijd

Anthropic weeft een onzichtbaar watermerk in alle tekst die Claude genereert, wereldwijd en op modelniveau, vanaf modellen van na 2 augustus 2026. Dat verandert de herkomst van je output, niet je eigen meldplicht als ondernemer.

Microsoft wil zijn Maia 300-AI-chip mogelijk al in september onthullen
Nieuws
4 min

10 aug 20:34

Microsoft wil zijn Maia 300-AI-chip mogelijk al in september onthullen

Microsoft wil zijn AI-chip Maia 300 dit najaar onthullen, mogelijk al in september, en onderhandelt met TSMC over ruim 300.000 exemplaren voor 2027. Wat dat betekent voor Azure-klanten die nu rekenkracht inkopen.

Nscale koopt Anyscale en levert straks ook de software boven zijn GPU's
Nieuws
4 min

30 jul 18:43

Nscale koopt Anyscale en levert straks ook de software boven zijn GPU's

Nscale neemt Anyscale over, het bedrijf achter Ray, en levert straks ook de software die AI-werk over GPU's verdeelt. Wat dat betekent voor wie rekenkracht bij een neocloud inkoopt.

Toegang intrekken bij vertrek, overname of leverancierswissel: het draaiboek per kanaal
Gids
Uitgebreide gids14 min

30 jul 09:00

Toegang intrekken bij vertrek, overname of leverancierswissel: het draaiboek per kanaal

Een account uitzetten trekt maar één ding in. Dit draaiboek loopt de zeven uitgiftekanalen af, met per overgang een andere startplek: iemand die vertrekt, een overname, of een leverancier die je wisselt.