Het Agent Browser Protocol (ABP) is een aangepaste versie van de Chrome-browser voor AI-agents die taken op websites uitvoeren, zoals een bestelling opzoeken in het portaal van een leverancier. Na elke klik of toetsaanslag wacht ABP tot de pagina niet meer verandert, maakt een schermafbeelding en zet de pagina daarna stil. De agent kiest zijn volgende stap dus altijd op basis van een pagina die niet beweegt.
Wat is ABP precies?
ABP is een opensourceproject van ontwikkelaar Han Wang, sinds januari 2026 op GitHub onder een BSD-licentie, met ongeveer 490 sterren in september 2026 (repository). De software is een build van Chromium, de opensourcebasis van Google Chrome, met een MCP-server en een REST API die in de browser-engine zijn ingebouwd. MCP (Model Context Protocol) is de standaard waarmee AI-agents tools aanroepen, en de README laat zien hoe je ABP koppelt aan Claude Code, Codex CLI en OpenCode. Via de REST API kan andere software dezelfde acties sturen als gewone webverzoeken. Wat ABP vastlegt, is een afspraak tussen agent en browser: één verzoek, één afgeronde stap.
Hoe werkt het?
De README vertrekt vanuit een mismatch: surfen op het web verloopt doorlopend en asynchroon, terwijl agents op basis van taalmodellen stap voor stap redeneren. De meeste automatiseringstools laten agents volgens de README racen tegen een browser die doorloopt, en vangen dat op met wachttijden en nieuwe pogingen. ABP maakt van elk verzoek één stap:
- De agent stuurt een actie, zoals een klik op een positie op het scherm of tekst om te typen.
- ABP voert die in als echte invoer via het eigen invoersysteem van Chromium.
- ABP wacht tot de engine de pagina als stabiel beschouwt.
- ABP stuurt een schermafbeelding met zichtbare cursor terug, plus een logboek van gebeurtenissen zoals een nieuw tabblad, een dialoogvenster of een download.
- ABP pauzeert JavaScript en de klok van de pagina tot het volgende verzoek, zodat timers stoppen en zelfs
Date.now()stilstaat.
De maker schat de extra tijd op ongeveer 100 ms per actie, schermafbeeldingen inbegrepen. In de eigen vergelijking in de README pauzeren Playwright en Selenium JavaScript niet tussen acties en sturen ze nagebootste invoer. Op verzoek tekent ABP kaders rond klikbare of typbare elementen in de schermafbeelding, en het legt elke actie met schermafbeeldingen van ervoor en erna vast in een SQLite-database, die de README aanbiedt als trainingsdata voor beeldmodellen.

Hoe goed werkt het?
Het kopcijfer van ABP is 90,53% op Online Mind2Web, een benchmark met 300 echte taken op 136 live websites (Xue e.a., 2025). De resultatenrepository van de maker (3 maart 2026) laat de voorwaarden zien. Met Claude Opus 4.6 als model haalde ABP 258 van de 285 taken, nadat 15 taken die menselijke beoordelaars onmogelijk vonden waren weggelaten. Over alle 300 taken is de score 86,00%. Volgens de maker zou dat bovenaan het openbare klassement staan, waar de vorige koploper 78,7% had. Het zijn eigen metingen; de resultaten per taak en de testopstelling zijn openbaar, zodat anderen ze kunnen herhalen.
Wat zijn de beperkingen?
- Je draait een aparte browser naast je agent. De README raadt aan eerst een Playwright-MCP-server uit te zetten, omdat de toolnamen botsen.
- De antwoorden van ABP draaien om schermafbeeldingen, en de instructies voor OpenCode vragen om een model dat beelden kan lezen.
- ABP is bedoeld om op je eigen computer te draaien. De API luistert op localhost, en ABP blokkeert standaard echte muis- en toetsenbordinvoer.
Twee andere benaderingen van hetzelfde probleem, Lumen en WebMCP, worden met ABP vergeleken in het artikel Wat is deterministische webautomatisering voor AI-agents?
Voorbeeld
Stel: een reisbureau laat een agent elke ochtend de beschikbaarheid van een hotel op een boekingssite controleren. De agent vraagt ABP de pagina te openen en krijgt pas een schermafbeelding als de pagina stabiel is, met het laadicoontje bevroren waar het stond. Hij klikt op het datumveld. ABP voert de klik in, wacht, zet de pagina weer stil en stuurt de volgende schermafbeelding terug, plus een gebeurtenis als er een dialoogvenster openging. Terwijl het model over de volgende stap nadenkt, beweegt er niets op de pagina.
