← blog

in defense of agents that click buttons

• Antonio Vespoli (Co-founder & CEO)

the way we talk about agents and the internet goes like this: apis are the real interface, and the browser is the dirty hack. the thing you use when nobody built you an endpoint.

i disagree. i think it ends one of two ways. either apis converge on a new established grammar, a set of conventions designed for agents that models eventually learn. or the grammar of existing websites wins, because llms already understand it.

start with what that grammar is. logo top left goes home. magnifying glass is search. cart top right. dots in a field mean password. checkout asks for shipping before payment. nobody wrote the spec, but ux people named it back in 2000: jakob's law. users spend most of their time on other sites, so they expect yours to work the same way.

that's not an accident. it's thirty years of a market. millions of sites shipped ideas, users voted with their clicks, and the confusing ones died. what survived is what christopher alexander, writing about buildings, called a pattern language: a grammar tuned to get what matters done in a few clicks, with zero ambiguity. steve krug summed up the whole field in four words: don't make me think.

break the grammar and you pay. bold redesigns mostly flop. not because they're worse, but because users already speak a language and you stopped speaking it. snapchat's 2018 redesign drew a petition with 1.2 million signatures, and snap's stock fell as much as 22% when the next quarter's numbers landed.

here's what people underestimate: llms speak this language fluently. they were trained on the web: the html, the tutorials, the threads asking where the unsubscribe link went. heck, they know it so well they write it: vibe code a website and you get the logo top left and the cart top right without asking. so the cognitive core for using any website is small. not millions of interfaces: one unwritten rulebook, plus dialects. a regional airline you've never heard of books like united. a company's internal expense tool is just a form. cancelling a subscription is account, settings, billing, past one retention offer, almost everywhere. the long tail is long in content, not in grammar.

now compare mcp. you can build a great agent experience with it. but today every server is a new language: names someone picked, params someone defined, conventions that live nowhere else. the model learns them zero-shot, from a description in context, every time. for mcp to become a real grammar, servers have to converge on shared conventions, and those conventions have to show up in training data at scale. that can happen. it's also a decades-long process the web has already finished.

the obvious objection: driving a full browser is wasteful. true. rendering pixels and running javascript to press a button burns compute for nothing. but that's not the only way to use the web. strip a page down to plain html, no rendering, no js, and it's roughly as token-efficient as an mcp schema. a form is a tool call. a link is an endpoint. a label is a parameter description.

the difference is that models have seen billions of them. better understood means small models can use it reliably. and small models are where the energy savings are. so plain html isn't just the fallback. it might be the most energy-efficient way for agents to use tools at scale.

engineers love betting that the designed thing beats the evolved thing. gall's law says otherwise: complex systems that work almost always grow out of simple systems that worked. the web's patterns are the most user-tested interface ever built, and its newest users learned from us. it'd be weird if that stopped mattering just because the users are machines.

smooth

smooth gives you serverless browsers and web agents — it’s the most reliable way to fetch, search, and act on any website from code. run your first task in four lines.

Start for free →