The Agents That Click Buttons
01From reading to doing
For most of this year, AI agents in my logs did one thing: they read pages. In the thirteen days from 27 October to 8 November I counted something different. Across about 31 sites on one server, requests naming Claude's user agent made 25,901 posts to one product's tool server, the endpoint that lets an assistant run the product directly through the Model Context Protocol. They came from 65 addresses in a single network block, and they rose every few days, from 1,435 on 27 October to 2,541 on 8 November. Reading agents fetch pages; acting agents press buttons, and buttons need answers a machine can understand.
Everyone else, by comparison
ChatGPT's live agent made 2,913 requests across all the sites in the same days, almost all of them page reads, about half of them successful. Agents built to browse and act on a person's behalf, OpenAI's Operator, Manus and Mistral's, appeared a few dozen times between them. The difference is not interest. It is the door. In this case one assistant had a direct connection to a working tool, and through that door it did far more than every reading agent combined.
02An agent at the paywall
Google's agent tried to buy nothing
Google's browsing agent, appeared in two sessions on a voice product that I could verify against the address list Google publishes. On 2 November one opened the tool, checked which voices the current plan allowed and triggered the product's usage limit notices, the events a free visitor fires when they reach the free allowance. On 3 November another tried to start a video job and was answered with 402, payment required. Each was a person somewhere asking one of Google's agents to do something, and the agent doing it in a browser on their behalf. When an agent meets your paywall, the person it works for never sees your pricing page.
Links from inside Gemini
There is a quieter signal too. People who tap a link inside Gemini's iPhone app open it in an in-app browser that names the app in its user agent. Those requests numbered 797 across 12 sites. They often arrive with no referrer, so analytics files them as direct, but the user agent says plainly where the person came from. Counting them takes one filter on the user agent string, and it recovers a channel most dashboards cannot see at all. An in-app browser is a referral that analytics forgot to label.
Design every error and limit for a reader that is not a person.
03Answers a machine can act on
Make limits and payment walls explicit
A human who hits a limit sees a dialog, a price and a button. An agent sees a status code and whatever text came with it, and then reports back to its user in its own words. If the response says only payment required, the user hears that the tool failed. If it says what the free allowance is, what the action needs and where the person can upgrade, the user hears a reason and a next step. The same applies to rate limits, unavailable features and timeouts, the last of which produced the doubled renders in the assistant that asked twice. Your error messages are now part of your sales copy, read aloud by a stranger.
Count agents by what they do
Agent names are still worn by scanners: requests calling themselves Perplexity-User numbered 1,045 with five successful, the same costume problem as in the referrers that never clicked. So count agents by verified addresses and by actions that succeeded: tool calls answered, jobs started, files downloaded. By that measure the agent web on my servers is narrow and deep, one protocol carrying almost everything, which is the argument I made in a server for AI agents and the data now backs it. The next agents to arrive in volume will be the ones given a working door.
Tomorrow: a guide to why a new page is not indexed, with every reason I have met this autumn.
>Which AI agents take actions on websites?+
>What happens when an AI agent hits a paywall?+
>How can I see visits from the Gemini app?+
Abd Shanti. "The Agents That Click Buttons" CITED, Entry 108, Nov 9 2026. unknown.ps/blog/agents-that-click-buttons/
