Ga naar inhoud

Vercel's agent-browser: Waarom een CLI MCP Verslaat voor Browser Automation

10 min leestijd
Bart Waardenburg

Bart Waardenburg

AI Agent Readiness Expert & Oprichter

Vercel's agent-browser haalde 22.000 GitHub-sterren in twee maanden. Het is een browser automation tool specifiek gebouwd voor AI agents, geschreven in Rust, die direct via CDP met Chrome verbindt. Maar het interessante is niet de star count of de taalkeuze. Het is wat ze bewust niet hebben gebouwd: een MCP-server.

In een wereld waar elke tool MCP-integraties shipt, koos Vercel de andere richting. Ze bouwden een CLI. Een simpele, saaie, Unix-philosophy CLI die commando's accepteert en tekst naar stdout schrijft. En de performancedata maakt het lastig om daar iets tegenin te brengen.

De Context Window-Belasting

Browser automation via MCP heeft een tokenprobleem. Volgens community-benchmarks laadt Playwright MCP bij het starten van een sessie naar schatting ~13.700 tokens aan tool-definities in het context window van de agent, nog voor er ook maar één pagina bezocht is. Chrome DevTools MCP is naar verluidt erger met ~17.000 tokens. Dat is ruwweg 9% van een 200K context window verbruikt voordat de agent iets nuttigs doet.

Dan zijn er de kosten per actie. In een empirische test van Engin Diri bij Pulumi woog een enkele Playwright MCP klik-response 12.891 tekens. Dezelfde klik via agent-browser? Zes tekens: Done. Paginacomplexiteit speelt mee, maar het ordeverschil is consistent.

PLAYWRIGHT MCP KLIK-RESPONSE
12.891 tekens
AGENT-BROWSER KLIK-RESPONSE
6 tekens
PLAYWRIGHT MCP STARTUP TOKENS
~13.700
AGENT-BROWSER STARTUP TOKENS
0

Over een echte workflow stapelt dit snel op. Third-party benchmarks schatten de tokenkosten van een 10-staps automatiseringsflow over drie tools:

Tool Tokens (10-staps flow) Reductie vs Playwright MCP
Playwright MCP ~114.000 Baseline
Chrome DevTools MCP ~50.000 56%
agent-browser (CLI) ~7.000 94%

94% tokenreductie. Dat is het verschil tussen een agent die na drie pagina's door z'n context heen is en een die een complete multi-step workflow afrondt met ruimte over.

Hoe agent-browser Werkt

De architectuur heeft twee hoofdlagen. Een Rust CLI handelt argument-parsing af in minder dan een milliseconde. Daarachter draait een native Rust daemon die direct met Chrome communiceert via CDP (Chrome DevTools Protocol), zonder Node.js of Playwright. De daemon blijft warm draaien tussen commando's via Unix domain sockets, wat browser-startupkosten elimineert. Je kunt Chrome ook vervangen door Lightpanda, een headless browser geschreven in Zig die volgens eigen benchmarks ruwweg 10x snellere performance en 10x minder geheugengebruik claimt.

Rust CLI

Native binary. Argument-parsing in sub-milliseconde tijd. Communiceert met de daemon via Unix domain sockets (TCP op Windows).

Native Rust Daemon

Langlopend proces dat direct met Chrome praat via CDP. Eerste commando ~500ms voor startup. Elk commando daarna: sub-100ms. Geen Node.js of Playwright nodig.

Browser (CDP)

Chrome via Chrome DevTools Protocol. Ondersteunt ook Lightpanda, remote Chrome-instanties en cloud-browsers als Browserbase.

Het eerste commando in een sessie kost ongeveer 500ms om de daemon te starten en de browser te lanceren. Daarna draait elk commando in sub-100ms. Vergelijk dat met Playwright MCP, waar elke actie een volledige JSON-RPC round-trip vereist met tool-schema's, parameters en uitgebreide response-objecten.

Snapshots en Refs: De Kerninnovatie

De ontwerpkeuze die alles laat werken is het snapshot + refs systeem. In plaats van CSS-selectors, XPath of volledige DOM-dumps, vangt agent-browser de accessibility tree van de pagina op, filtert op interactieve elementen, en kent elk element een stabiele referentie toe.

agent-browser snapshot -i plain
button "Sign In" [ref=e1]
textbox "Email" [ref=e2]
textbox "Password" [ref=e3]
link "Forgot password?" [ref=e4]
link "Create account" [ref=e5]

Vijf elementen, vijf refs. De agent zegt agent-browser click @e1 om op Sign In te klikken, of agent-browser fill @e2 "user@example.com" om een e-mailadres in te vullen. Geen CSS-selectors. Geen pixelcoordinaten. Geen vision model dat een screenshot parst. Refs worden opgelost door matching op accessibility role en name via CDP's Accessibility API, conceptueel dezelfde aanpak als Playwright's getByRole .

Ter vergelijking, dit is wat Playwright MCP teruggeeft voor een vergelijkbare pagina:

Playwright MCP browser_snapshot plain
- heading "Welcome back" [level=2]
  - paragraph: "Sign in to your account"
- form:
  - textbox "Email" [required] (ref=s1e4)
  - textbox "Password" [required] (ref=s1e5)
  - button "Sign in" (ref=s1e6)
- navigation:
  - link "Forgot password?" (ref=s1e7)
  - link "Create account" (ref=s1e8)
  - link "Terms of Service" (ref=s1e9)
  - link "Privacy Policy" (ref=s1e10)
  ... (gaat door voor hele pagina)

Playwright MCP dumpt de volledige accessibility tree. Elke heading, paragraaf, landmark en decoratie op de pagina. agent-browser's -i flag (interactive only) filtert het tot alleen de elementen waar je daadwerkelijk op kunt klikken, in kunt typen of kunt toggling. In Engin Diri's tests was een homepage-snapshot ~280 tekens met agent-browser versus ~8.247 met Playwright MCP. Je cijfers zullen variëren per paginacomplexiteit, maar het patroon houdt stand.

AGENT-BROWSER HOMEPAGE SNAPSHOT
~280 tekens
PLAYWRIGHT MCP HOMEPAGE SNAPSHOT
~8.247 tekens

De Accessibility Tree, Opnieuw

Als je ons stuk over hoe AI agents je website zien hebt gelezen, voelt dit bekend. De accessibility tree is de door de browser gegenereerde vereenvoudigde weergave van je pagina: roles, names, states, descriptions. Oorspronkelijk gebouwd voor schermlezers, nu de primaire interface voor AI agents bij elk groot framework.

agent-browser maakt deze connectie expliciet. Het snapshot commando is een accessibility tree query. Wanneer een agent agent-browser snapshot -i aanroept, krijgt het dezelfde tree die schermlezers consumeren en die Playwright-tests queryen met getByRole . Het enige verschil is het outputformaat: compacte tekst in plaats van YAML.

De implicaties voor website-eigenaren zijn niet veranderd. Als je button een <div onclick> is in plaats van een <button>, verschijnt het niet in de snapshot. Als je formuliervelden geen labels hebben, ziet de agent textbox "" en heeft geen idee wat er ingevuld moet worden. Als je navigatie is opgebouwd met niet-semantische divs, kan de agent je pagina's niet vinden. Dezelfde regels als eerder, maar nu met een tool waar 22.000+ developers naar kijken.

De annotated screenshot-functie maakt dit nog tastbaarder. agent-browser screenshot --annotate legt genummerde labels over elk interactief element, waarbij elk label naar een ref verwijst. Het is een visuele debugger voor je accessibility tree. Multimodale AI-modellen kunnen redeneren over layout terwijl ze dezelfde deterministische refs gebruiken voor interactie.

Less Is More: De Contra-intuïtieve Data

De ontwerpfilosofie achter agent-browser weerspiegelt bevindingen uit Vercel's eigen D0 text-to-SQL agent-onderzoek. Beide projecten delen hetzelfde moederbedrijf en dezelfde kerninzicht: minder tooling, beter redeneren. De D0-resultaten zijn oprecht verrassend. Ze testten twee architecturen: een met 17 gespecialiseerde tools en een met slechts 2 general-purpose tools.

17-TOOL ARCHITECTUUR
0
2-TOOL ARCHITECTUUR
0

De 17-tool versie: 80% slagingspercentage, 274,8 seconden uitvoeringstijd, ~102.000 tokens verbruikt. De 2-tool versie: 100% slagingspercentage, 77,4 seconden, ~61.000 tokens. Minder tools, hoger slagingspercentage, snellere uitvoering, lagere kosten. Elke metriek verbeterde.

Vercel's D0-team in eigen woorden: "We were constraining reasoning because we didn't trust the model to reason." Agents 17 specifieke tools geven dwong ze om bij elke stap de "juiste" te kiezen. Ze 2 flexibele tools geven liet ze zelf de beste aanpak uitzoeken. agent-browser past hetzelfde principe toe op de browser: minimale output, minimaal tool-oppervlak, maximale reasoning-ruimte.

Metriek 17 Tools 2 Tools Verbetering
Slagingspercentage 80% 100% +25%
Uitvoeringstijd 274,8s 77,4s 3,5x sneller
Tokenverbruik ~102.000 ~61.000 37% minder
Benodigde stappen Baseline 42% minder Eenvoudiger paden

Dit sluit aan bij wat Andrej Karpathy betoogde over CLI's als de ideale agent-interface . CLI's zijn inherent simpel. Flags, stdin, stdout. Geen tool schema-onderhandeling, geen capability discovery-dans. De agent voert een commando uit en leest de output. agent-browser nam die filosofie en paste het toe op de browser: 50+ commando's, maar elk doet precies één ding en geeft de minimale output terug die nodig is.

Wat Dit Betekent voor je Website

agent-browser wint snel aan adoptie. Het werkt met Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Google Gemini, en elke andere agent die shell-commando's kan uitvoeren. Geen MCP-configuratie nodig. Gewoon npm install -g agent-browser. Dat betekent dat meer AI agents je site gaan browsen via de accessibility tree, of je daar nu voor geoptimaliseerd hebt of niet.

Dezelfde patronen die je site laten werken met Playwright MCP gelden hier. Semantische HTML, correcte formulierlabels, accessible names op knoppen en links, een schone heading-hiërarchie. Maar agent-browser maakt de feedbackloop nog strakker. Wanneer een agent snapshot -i draait op je homepage en twee refs terugkrijgt in plaats van twaalf, weet je precies waar het probleem zit.

Agents kunnen het zien

Semantische buttons, gelabelde formuliervelden, correcte nav-landmarks, beschrijvende linktekst, ARIA waar HTML tekortschiet. Dit verschijnt allemaal in de snapshot-output en krijgt een ref.

Agents zijn er blind voor

Div-soep met onclick-handlers, icon-knoppen zonder labels, placeholder-only inputs, links die 'klik hier' zeggen, JavaScript-only rendering zonder SSR. Niets hiervan krijgt een ref.

Onze scanner meet precies deze signalen. Elk checkpoint in de Content & Semantics categorie verwijst direct naar wat agent-browser kan parsen: semantische HTML (3.3), heading-hiërarchie (3.2), alt-tekst (3.5), ARIA-gebruik (3.4), formulierlabels (4.6), beschrijvende links (3.7) en SSR-detectie (3.1). Een hoge score op die checkpoints correleert direct met een rijkere accessibility tree, en dus meer refs waar agent-browser mee kan werken.

agent-browser wordt geleverd met een AGENTS.md-bestand en een skills/-directory die AI coding agents direct consumeren om de commandoset te leren. Het ondersteunt ook multi-session isolatie met aparte sockets, cookies en ref-caches per sessie, zodat agents parallel kunnen werken zonder elkaar te storen. Met meerdere releases per dag en honderden open issues beweegt dit project snel. En het trekt de browser automation-ruimte naar een duidelijke conclusie: de accessibility tree is de interface, en eenvoud wint van feature count.

Bronnen

Klaar om te checken?

SCAN JE WEBSITE

Ontvang je AI-agentgereedheidscore met bruikbare aanbevelingen over 5 categorieën.

  • Gratis directe scan met lettercijfer
  • 5 categorieën, 47 checkpoints
  • Codevoorbeelden bij elke aanbeveling

GERELATEERDE ARTIKELEN

Lees verder over AI-agentgereedheid en weboptimalisatie.

Playwright: Van Testrunner naar AI Agent-Interface
11 min leestijd

Playwright: Van Testrunner naar AI Agent-Interface

Playwright haalde Cypress in, toen bracht Microsoft Playwright MCP uit — waarmee dezelfde tool de standaard browser-runtime voor AI agents werd. We ontleden waarom het data-testid vs getByRole debat nu bepaalt of agents je site kunnen gebruiken, het test-accessibility-agent vliegwiel, en wat dit betekent voor frontend-teams.

ai-agents web-standards accessibility
Hoe AI Agents je Website Zien: De Accessibility Tree Uitgelegd
12 min leestijd

Hoe AI Agents je Website Zien: De Accessibility Tree Uitgelegd

AI agents zien je website niet zoals mensen. Ze navigeren via de accessibility tree — een door de browser gegenereerde structuur die oorspronkelijk voor schermlezers is gebouwd. We leggen uit hoe het werkt, welke AI-frameworks het gebruiken, en waarom toegankelijke websites beter presteren in het tijdperk van AI agents.

ai-agents web-standards accessibility
Wat is agents.json? AI Agent-mogelijkheden op je website adverteren
10 min leestijd

Wat is agents.json? AI Agent-mogelijkheden op je website adverteren

agents.json is de opkomende tegenhanger van robots.txt - een machine-leesbaar bestand dat AI-agents vertelt wat je website kan. We behandelen de Wildcard-specificatie, vergelijken het met A2A, MCP en OpenAPI, en laten stap voor stap zien hoe je het implementeert.

ai-agents web-standards agent-protocols

ONTDEK MEER

De meeste websites scoren onder de 45. Ontdek waar jij staat.

RANGLIJST
BEKIJK HOE ANDEREN SCOREN

RANGLIJST

Bekijk AI-gereedheidsscores van gescande websites.
VERGELIJKEN
VERGELIJKEN

VERGELIJKEN

Vergelijk twee websites zij-aan-zij over alle 5 categorieën en 47 checkpoints.
OVER ONS
HOE WIJ METEN

OVER ONS

Lees meer over onze scoringsmethodologie met 5 categorieën.