Skip to main content

Your Agent Is Someone Else's Bot Problem

· 10 min read
Tian Pan
Software Engineer

You built an agent that checks supplier prices every morning. It runs a real browser, clicks real buttons, and does exactly what a diligent employee would do — just faster and at 6 a.m. Then one day it stops working. No error in your code. The supplier's site now returns a challenge page, then a 403, then nothing at all. Your agent didn't break. It got classified.

Here is the uncomfortable symmetry every agent builder eventually confronts: the web's defenses were tuned by a decade of scraper wars, credential-stuffing attacks, and inventory-hoarding bots — and your legitimate agent is statistically indistinguishable from all of them. Automated traffic passed 50% of all web traffic in 2024, and roughly 37% of the total is classified as malicious. The immune system that evolved to fight that flood does not care about your intentions. It cares about your fingerprint, and your fingerprint says "bot."

This isn't a temporary friction that better prompt engineering will smooth over. It's a structural conflict between two legitimate interests — site operators defending themselves and users delegating work to software — and it's currently being resolved in infrastructure, not in courtrooms or standards bodies alone. If you operate agents in production, the way this resolves determines whether your product works next quarter.

The Immune System Wasn't Built for You

Modern anti-bot stacks — Cloudflare Bot Management, Akamai, DataDome, HUMAN, PerimeterX descendants — don't ask "is this a browser?" anymore. They ask hundreds of quieter questions. Does the TLS handshake fingerprint match the claimed user agent? Do the JavaScript execution timings look like real hardware? Does the mouse move with human jitter, or in mathematically clean curves? Does this IP belong to a data center? Has this session solved a proof-of-work challenge at plausible speed?

Each signal was calibrated against a specific enemy: sneaker bots, ticket scalpers, price scrapers, account-takeover farms. The calibration worked. It also means an agent running Playwright in a cloud VM trips nearly every wire at once — data-center IP, headless-adjacent fingerprint, inhumanly consistent timing, no cookie history, no device reputation.

The bitter part for agent builders is that behaving more honestly makes detection more likely. A polite agent that declares a custom user agent gets pattern-matched against bot lists and blocked outright. Sites that intended to block "abusive scrapers" catch your expense-report assistant in the same net, because at the protocol level there is no difference between the two. The defenses can't read intent; they can only read signals, and your signals are terrible.

There's a second-order effect worth naming: false positives used to be cheap. When anti-bot systems misclassified a human once in ten thousand sessions, the human clicked a traffic-light CAPTCHA and moved on. But when the "user" is an agent acting for a paying customer, a misclassification is a silent product outage. Your user doesn't see a CAPTCHA — they see your product failing to complete a task it completed yesterday.

The Escalation Trap: Cosplaying as a Browser

Faced with blocks, most teams reach for the obvious toolkit: stealth browser plugins, fingerprint randomization, residential proxy pools, CAPTCHA-solving services. It works, briefly. Then the defenses adapt, and you escalate again. You are now in an arms race whose other participants are professional fraud operations with better funding and no compliance department.

This path has three costs that compound quietly:

  • Fragility. Every stealth technique is a dependency on the detector not knowing about it yet. Your uptime is now a function of an adversary's release cycle. Teams that go this route end up with an on-call rotation for "the site changed its bot detection again."
  • Reputation contagion. Residential proxies put your traffic on IPs shared with actual fraud. When those IPs get burned, you get burned. You've traded a deterministic block for a stochastic one.
  • Reclassification from nuisance to threat. The moment you rotate user agents and IPs to evade an explicit block, you stop looking like an overeager tool and start looking like an attack. The 2025 Perplexity episode is the canonical warning: Cloudflare publicly accused the company of switching to a generic Chrome user agent and rotating IPs and networks after its declared crawler was blocked, then delisted it as a verified bot and blocked it outright. Whatever the merits of each side's account, the lesson stands — evasion converts a rate-limiting problem into a trust problem, and trust problems are public.

The deeper issue is that stealth doesn't scale with legitimacy. A fraud operation can absorb being blocked; it rotates infrastructure and continues. A product company cannot. Your enterprise customers will ask why your agent traffic looks like a botnet, and "that's how everyone does it" is not an answer that survives a security review.

Identity Is the Exit: Signing Instead of Sneaking

The structural fix is boring and old-fashioned: stop trying to look human, and start proving who you are. That's the idea behind Web Bot Auth, an IETF-draft architecture (draft-meunier-web-bot-auth-architecture, with a companion key-directory draft) built on RFC 9421 HTTP Message Signatures. The mechanics are simple: your agent's infrastructure signs each outbound HTTP request with a private key; you publish the public key in a well-known directory; the receiving site — or its CDN — verifies the signature and knows, cryptographically, which operator sent the request.

This replaces the two identity mechanisms the web has limped along with for thirty years, both of which are broken for agents:

  • User-agent strings are self-reported and forgeable, which is why declaring one honestly mostly earns you a block.
  • IP allowlists assume stable, operator-owned infrastructure — exactly what agents running on serverless platforms, browser clouds, and end-user devices don't have.

A signature travels with the request regardless of which IP it exits from. That single property is what makes the scheme agent-shaped rather than crawler-shaped: a crawler is one company's fleet on one company's infrastructure; an agent is a million users' intents flowing through shared browser infrastructure. Cloudflare's "signed agents" program, launched in August 2025 with ChatGPT agent, Block's Goose, and browser-infrastructure providers like Browserbase as early participants, extends its verified-bots program to exactly this category: end-user-directed automation whose platform signs on its behalf. AWS has wired Web Bot Auth into Bedrock AgentCore's browser tool specifically so agent requests can skip CAPTCHAs on sites that verify signatures; WAF vendors and commerce platforms are adding verification support; the payment networks' agentic-commerce protocols have adopted the same primitive for identifying agents at checkout.

For a site operator, this changes the decision from "block everything that isn't human" to policy: allow verified agents to read product pages, rate-limit them on search endpoints, block them from checkout unless they carry a payment attestation. For an agent operator, it changes the ask from "please don't notice me" to "here's who I am; hold me accountable."

The catch — and it's a real one — is who does the verifying. If agent identity only works when a handful of CDNs maintain the allowlist, the web has traded a spam problem for a gatekeeper problem. Critics of the signed-agents rollout made exactly this point: registration-based access to a third of the web, administered by one company's review queue, is not an open protocol; it's a checkpoint. The IETF drafts matter precisely because they're the difference between "identity as a standard anyone can verify" and "identity as a business development deal." Watch whether verification stays implementable by a single origin server without a CDN intermediary. That's the load-bearing detail.

Operating an Agent in the Split Web

While the standards settle, the web is stratifying into zones with very different rules of engagement, and your agent needs a policy for each.

Agent-friendly zones — APIs, MCP servers, sites publishing agent-readable interfaces, commerce platforms courting agentic checkout — actively want your traffic because it converts or because they're paid for it. Here the right move is to take the front door every time: use the API even when scraping the HTML would be easier, because the API is a contract and the HTML is a truce.

Agent-tolerant zones verify identity and apply policy: verified agents get read access, rate limits, maybe a paywall. This is where signing pays off. Sign your requests, respect the rate limits, and treat a 429 as a negotiation rather than an obstacle.

Agent-hostile zones have decided — for economic, legal, or abuse reasons — that they do not want automated traffic at all. Ticketing, sneaker drops, some publishers, most login-gated services. The uncomfortable discipline: honor it. Route around these sites, buy the data through a licensed channel, or surface the task back to the human. An agent that evades an explicit block is generating legal and reputational liability on your company's letterhead.

Concretely, a production agent stack in 2026 should:

  • Declare identity everywhere it can — a stable, documented user agent; signed requests where Web Bot Auth verification exists; published IP ranges or key directories for enterprise customers to allowlist.
  • Detect classification, not just failure. Instrument for challenge pages, silent content degradation, and honeypot responses — sites increasingly serve wrong data to suspected bots rather than blocking them, which is far more dangerous to an agent that acts on what it reads.
  • Fail closed on evasion. Make "do not bypass anti-bot measures" an explicit engineering policy, so that no on-call engineer under pressure quietly adds a stealth plugin to fix a customer escalation at 2 a.m.
  • Keep an audit trail. When a site operator asks "what did your agent do on my infrastructure," the companies that can answer precisely will be the ones that keep their verified status.

The Bet You're Actually Making

Every agent team is implicitly betting on one of two futures. In the first, the web stays adversarial: access goes to whoever evades best, agents and defenses co-evolve like malware and antivirus, and the biggest players win because they can afford the arms race. In the second, agent identity becomes boring infrastructure — signatures verified at the edge, policy instead of guesswork, accountability instead of camouflage — and access goes to whoever is most trusted.

The first future is where the defaults lead. The second requires deliberate choices that are individually irrational in the short term: declaring yourself when declaring gets you blocked, respecting no-crawl signals your competitor ignores, doing the verification paperwork before it's required. That's the classic shape of an infrastructure transition — the early movers subsidize the standard everyone later takes for granted.

But the asymmetry favors the patient. Evasion capability depreciates — every stealth trick has a half-life measured in months. Trust appreciates — every month of verifiable good behavior compounds into the kind of reputation that gets your key into allowlists, your agent into commerce programs, and your traffic through the front door while your competitors are still solving CAPTCHAs. Your agent will be treated as someone else's bot problem until you give that someone a cryptographic reason not to. Start giving them one now.

References:Let's stay in touch and Follow me for more thoughts and updates