AI-agents detecteren: hoe browsers van Claude, ChatGPT en Perplexity verschillen van mensen
AI-agents doen zich voor als browsers, maar gedragen zich niet als mensen — korte doelgerichte sessies, pixel-perfecte klikken, nul typefouten. De 11 signalen die Computer Use, Operator en Perplexity onderscheiden van echte bezoekers.
In 2024 maakten AI-agents hun overstap van experimentele demo's naar productieverkeer. De Computer Use API van Claude kan een browser aansturen. De browse-tools van ChatGPT navigeren door websites om vragen te beantwoorden. De answer engine van Perplexity crawlt in realtime. En een groeiende categorie AI-aangedreven assistenten — Browserbase, Anthropics Computer Use, OpenAI Operator — voert end-to-end webtaken uit namens gebruikers.
Voor een website ontstaat hierdoor een nieuwe categorie bezoeker die in geen van beide hokjes van traditionele bot detection past. AI-agents zijn geen scrapers die op grote schaal data onttrekken. Het zijn geen mensen die door een UI klikken. Ze zijn iets ertussenin — één bezoeker per sessie, één doel per bezoek, maar uitgevoerd op machinesnelheid met mechanische precisie.
Ze detecteren is anders van belang dan bots detecteren. Soms wil je ze bedienen (een behulpzame agent die voor een klant winkelt). Soms wil je ze blokkeren (ongeautoriseerd scrapen via een AI-wrapper). Hoe dan ook moet je eerst weten dat ze er zijn.
Hoe AI-agents architectonisch verschillen
Drie hoofdarchitecturen produceren AI-agentverkeer op het web:
Browser-aansturende agents draaien een headless of headful browser die door een LLM wordt bestuurd. Anthropics Computer Use, OpenAI Operator, Browserbase en Skyvern passen allemaal hierin. De browser is een echte Chrome of Chromium. De agent stuurt hem aan via DOM-manipulatie of via screenshotanalyse en coördinaatklikken.
API-only agents halen pagina's op via HTTP-libraries (Node.js, Python, Go) en geven de HTML door aan een LLM voor verwerking. De meeste op Perplexity en zoekopdrachten gebaseerde agents werken zo. Er is geen browser — alleen een ophaallaag die tekst naar een model voedt.
Hybride agents gebruiken een browser voor JavaScript-zware sites en API-ophaling voor statische content. Veel productieagents vallen in deze categorie en kiezen dynamisch op basis van het doelwit.
Elke architectuur laat andere fingerprints achter.
Signaal 1. Levensduur van de browsersessie
Echte gebruikers hebben lange, ongerichte sessies. Ze openen tabbladen, raken afgeleid, komen terug. De mediane menselijke sessieduur bij een beslissingstaak is 8–20 minuten.
AI-agents hebben korte, gerichte sessies. Een typische Computer Use-taak — een vlucht boeken, boodschappen bestellen, productdata onttrekken — duurt end-to-end 30 seconden tot 3 minuten. De sessie begint met het laden van de pagina, voert 5–30 acties op een rij uit en eindigt.
Een sessieduur onder 5 minuten met meer dan 10 afzonderlijke acties en geen wisselen van browsertabbladen is atypisch menselijk gedrag en typisch agentgedrag.
Signaal 2. Precisie van coördinaatklikken
Browser-aansturende agents van Anthropic en OpenAI gebruiken screenshotanalyse om UI-elementen te identificeren en klikken vervolgens op coördinaten. De coördinaatberekening is tot op de pixel nauwkeurig.
Echte gebruikers klikken binnen regio's. Een knop van 200x40 pixels krijgt klikken verspreid over het volledige oppervlak, met een zwaartepunt naar het midden maar met menselijke variatie. AI-agents klikken binnen een smalle band — vaak binnen 2–3 pixels van het geometrische midden van het element. Honderd klikken met een gemiddelde afwijking onder 3 pixels is geen menselijke verdeling.
Detectie vereist het verzamelen van klikcoördinaten en die analyseren ten opzichte van de elementgrenzen. Dit werkt goed op data ter grootte van een sessie.
Signaal 3. Afwezigheid van verkennend scrollen
Mensen scrollen om te zien wat er op een pagina staat. Ze scrollen omlaag, dan weer omhoog, dan halverwege. Ze pauzeren bij content die hun aandacht trekt. Hun scrollsporen zijn rafelig.
AI-agents scrollen alleen wanneer het nodig is. Als het doel is om op In winkelwagen te klikken en de knop above the fold staat, scrollt de agent misschien helemaal niet. Als het doelelement below the fold staat, scrollt de agent één keer, rechtstreeks naar het doel, en voert dan uit.
Sessies met minder dan 2 wisselingen van scrollrichting, of met een scrollsnelheid die constant is over alle scroll-events, wijzen op taakgedreven browsen in plaats van verkenning.
Signaal 4. Timing van tekstinvoer
Echte gebruikers typen met een snelheid van 30–60 woorden per minuut, met variabele pauzes, af en toe verwijderingen en microcorrecties. De timing van toetsaanslagen volgt een verdeling met hoge variatie en een verwijderingspercentage dat niet nul is.
AI-agents vullen formulieren door waarden te plakken of door toetsaanslagen te simuleren op een vaste cadans — vaak 50–100 tekens per seconde, uniform, zonder verwijderingen. Een veld dat in 200ms wordt gevuld met een string van 30 tekens en nul backspaces is geen menselijke invoer.
Signaal 5. Afwezigheid van typefouten
Verwant maar afzonderlijk: mensen maken typefouten. In 1000 tekens tekstinvoer produceren echte gebruikers 15–40 correcties. AI-agents produceren er nul. Een formulierinzending met 3 velden van in totaal 100+ tekens en nul correcties is ongebruikelijk voor een mens.
Signaal 6. Inconsistenties in de user agent
Sommige AI-agents gebruiken aangepaste user agents die zichzelf expliciet identificeren: perplexity-user, ChatGPT-User, ClaudeBot. Dit zijn beleefde agents die de conventie van zelfidentificatie volgen en vaak robots.txt respecteren.
Detectie is hier triviaal — lees de user agent, match tegen bekende lijsten. De waarde zit in weten wanneer je ze anders moet bedienen (of blokkeren als je geen scraping wilt).
Andere agents draaien browser-aansturende frameworks en erven de user agent die de browser gebruikt — meestal Chrome. Deze zijn moeilijker te identificeren op basis van alleen de user agent en vereisen gedragssignalen.
Signaal 7. WebGL-rendering onder headless
Browser-aansturende agents die Chromium in headless modus gebruiken, tonen de SwiftShader-renderer die we in het Puppeteer-artikel bespraken. Elke sessie waarin de WebGL-renderer SwiftShader bevat en de bezoeker 10+ doelbewuste acties uitvoert, is vrijwel zeker een browser-aansturende AI-agent.
Nieuwere agent-frameworks (Browserbase, sommige Skyvern-opstellingen) draaien headful Chrome om dit signaal te vermijden. Ze tonen echte GPU-strings. Dit betekent dat WebGL alleen onvoldoende is voor detectie van moderne agents — noodzakelijk als beginfilter, niet als volledige oplossing.
Signaal 8. Perfecte naleving van de paginastructuur
Echte gebruikers klikken op links, zelfs terwijl er een paginaredirect bezig is. Ze onderbreken zichzelf. Ze dubbelklikken terwijl één klik zou volstaan. Ze klikken op dingen die geen links zijn.
AI-agents volgen de DOM. Als ze willen navigeren, geven ze een actie uit tegen een specifiek element. Ze klikken niet op het verkeerde element en verversen niet halverwege het laden. Hun sessies ontvouwen zich met een mechanische lineariteit die geen afgeleide mens produceert.
Sessiesporen met perfecte naleving — elke klik op een geldig element, elk formulierveld gevuld in DOM-volgorde, elke paginaovergang voorafgegaan door een bewuste actie — lezen als agentgedreven.
Signaal 9. Time-to-interactive is nul
Echte gebruikers hebben tijd nodig om een pagina te verwerken. Ze lezen. Ze scannen. Ze begrijpen voordat ze handelen.
AI-agents parseren de DOM onmiddellijk. De tijd tussen het volledig laden van de pagina en de eerste gebruikersactie is voor een echte gebruiker doorgaans 1,5–4 seconden, zelfs op eenvoudige pagina's. Voor AI-agents kan het onder de 200ms zijn — de tijd die de LLM nodig heeft om het doelelement in de DOM te identificeren.
Een zeer snelle eerste-actietijd op een pagina die tekstbegrip vereist, is een sterk agentsignaal.
Signaal 10. HTTP-ophaalpatronen voor API-only agents
Perplexity, sommige tool-use-flows van Claude en de meeste op zoekopdrachten gebaseerde agents draaien geen browsers. Ze halen pagina's rechtstreeks op via HTTP-libraries.
Deze agents laten de TLS- en HTTP-signalen achter die we eerder bespraken — Node.js undici-fingerprint, Python requests-fingerprint, Go net/http-fingerprint. Ze voeren doorgaans geen JavaScript uit, dus triggeren ze helemaal geen client-side detectie.
Detectie van API-only agents gebeurt op de netwerklaag: TLS JA4-hashes, volgorde van HTTP-headers, ontbrekend browserspecifiek gedrag (geen favicon-ophaling, geen analytics-beacon, geen font-requests). Als je deze agents wilt identificeren, moet je evenzeer kijken naar wat er niet gebeurt als naar wat er wel gebeurt.
Signaal 11. Taakvormige sessiedoelen
Het sterkste signaal is niet technisch — het is gedragsmatig. AI-agentsessies zijn doelgericht op manieren waarop menselijke sessies dat zelden zijn.
Een echte gebruiker die een product zoekt, kijkt misschien naar 8 items, vergelijkt specificaties over 3 tabbladen, leest reviews, haakt af en komt een uur later terug, en koopt dan. Een AI-agent gaat naar het product, onttrekt de specificaties, voegt toe aan de winkelwagen en rekent af. Onder de 90 seconden. Geen afwijking.
Detectiesystemen die de mate van taakvoltooiing op sessieniveau volgen, kunnen agentverkeer identificeren aan de dichtheid van succesvolle taakvoltooiing in korte sessies. Dit is een trager signaal, maar zeer betrouwbaar in combinatie met signalen per actie.
Agents anders bedienen
Eenmaal geïdentificeerd kan AI-agentverkeer op verschillende manieren worden afgehandeld:
-
Blokkeren — als de site geen geautomatiseerde toegang wil, weiger dan aan de edge. Goedkoop en eenvoudig.
-
Alternatieve content serveren — antwoord met een API-geoptimaliseerde versie (JSON, gestructureerde data) die goedkoper te genereren is dan de volledige HTML-pagina.
-
Rate-limiten — sta agents toe maar beperk hun requestsnelheid om de siteprestaties te behouden.
-
Kosten in rekening brengen — sommige sites beginnen AI-bedrijven kosten te rekenen voor programmatische toegang tot hun data. Detectie is een voorwaarde voor facturatie.
-
Normaal bedienen — als de agent namens een echte klant handelt, is ze bedienen gewoon business.
Verschillende sites zullen verschillende keuzes maken. Wat technisch telt, is dat de detectie op orde is zodat de keuze beschikbaar is.
Het bewegende doelwit
AI-agent-frameworks verbeteren maandelijks. Anthropic levert updates aan Computer Use die scrollvariatie toevoegen. Browserbase voegt muis-jitter toe. OpenAI Operator introduceert typefoutsimulatie. Elke generatie framework dicht een deel van het hierboven beschreven detectieoppervlak.
De technieken die werken in 2026 zullen tegen 2027 moeten worden bijgewerkt. Maar de onderliggende realiteit verandert niet: AI-agents voeren taken uit. Mensen beleven websites. Die asymmetrie levert signaal op, wat voor specifieke technieken agents ook gebruiken om erin op te gaan.
Detectiestacks die AI-agents behandelen als een blijvende, evoluerende categorie — in plaats van een eenmalig opgelost probleem — behouden zichtbaarheid. Die welke één detector leveren en verdergaan, zullen merken dat hun dekking stilletjes afneemt.