AI Agent Detection: Binary Bot Filters Miss 39%

Most bot detection on the web asks one question about each session: human or bot. AI agents now browse through real browsers, and a paper submitted to arXiv on July 29, 2026 (arXiv:2607.26935) measures what that question misses. In its benchmark, binary detectors labeled 30.0% to 39.1% of real agent sessions as human. The paper also shows a cheap fix and the signal behind it.

Why AI agent detection breaks binary bot detection

Bot detection with two labels has no slot for agent traffic

A binary bot detector misses agents because it has no agent label, not because its model is weak. Every session has to land in "human" or "bot." An agent session, such as one where a language model drives a real Chrome browser, fits neither group well, so many of them end up on the human side.

The authors tested this with four binary detectors. Three of them passed a large share of real agents as human. The fourth, XGBoost, caught every agent, but the paper says it did so through side effects such as missing scroll events rather than through any signal specific to agents.

Share of real AI agent sessions labeled human, by binary detector

The MLP let the most agents through at 39.1%, and even the best of the three, the random forest, labeled 30.0% of agents human.

39.1%MLP
34.5%SAINT
30.0%Random forest
"Bot detectors deployed at scale treat traffic as binary: human or bot. This assumption breaks when AI agents browse the web through browser automation, a traffic class that is neither and that binary classifiers structurally cannot represent."(abstract, first paragraph)
View official source →

A third agent class closes the bot detection gap

Giving the classifier a third label, agent, removed the gap completely. With human, bot and agent as the three outputs, agent F1 reached 1.000 in all 30 runs, which covered three model families and ten random seeds each. The features did not change; only the output did.

For a team that already collects behavioral data, this is the main point. The information that separates agents was already in the data, and the two-way output was throwing it away. Relabeling comes before buying new signals.

"On our controlled benchmark, an MLP binary classifier misclassifies 39.1% of real AI agents as human and a SAINT binary transformer misclassifies 34.5%; adding an explicit agent class yields per-class agent F1 = 1.000 in all 30 runs"(abstract, second paragraph)
View official source →

The benchmark behind the AI agent traffic numbers

The agent side of the benchmark is real browser traffic, not simulation. The dataset holds more than 14,000 real human sessions from CaptchaSolve30k, 5,000 synthetic bot samples of three types, and 1,025 real agent recordings. The agent sessions come from Claude driving Chrome through Playwright across ten web tasks covering five interaction types.

Playwright is an automation library, a tool that lets a program click and type in a real web page. The authors chose it because the browser tools agents use, such as those in LangChain and MCP, send their actions through Playwright or the very similar Puppeteer path. Two Anthropic options for letting an assistant operate web pages are compared in Claude in Chrome vs the Cowork built-in browser.

"LangChain/MCP browser tools dispatch their actions through Playwright or the near-identical Puppeteer/CDP path, so its DOM-event signature is what deployed web agents typically emit in practice. Our dataset comprises more than 14,000 real human sessions (CaptchaSolve30k), 5,000 synthetic bot samples across three archetypes, and 1,025 real agent sessions recorded from Claude driving Chrome via Playwright across ten web tasks grouped into five interaction types."/"We show that binary human–bot detectors miss a structural fraction of AI agents (MLP 39.1%, SAINT 34.5%, random forest 30.0%) and that this gap is architectural: a three-class formulation eliminates it entirely"(section 1, Introduction)
View official source →

What gives AI agents in the browser away

Playwright detection reads an artifact, not agent reasoning

What exposes an agent is the set of events its browser never sends, not the way the agent thinks. A physical mouse produces a steady stream of small pointer-move events and wheel-delta events. Playwright produces none of them, so an agent's click arrives with no mouse motion before it and a scroll arrives with no wheel data.

This matters for anyone planning a defense. A signal based on how an agent reasons could be trained away by the agent's builder. A signal based on how the automation tool sends events stays in place until the tool itself changes, and the agent has no control over that layer.

"The discriminative signal is a browser-automation artifact, not evidence of agent reasoning: Playwright does not emit the raw pointer-move and wheel-delta streams a physical input device produces, and this absence signature survives trajectory manipulation."(abstract, third paragraph)
View official source →

Two behavioral features carry agent detection

Two features, mouse_event_rate and teleport_click_ratio, are enough to catch every agent in the tests. The authors did not pick features by hand. They trained 9,401 gradient-boosted models, one for every combination of one to five features out of a pool of 17, and recorded precision and recall for each class.

The table compares the smallest sets. Agent recall, the share of agents caught, is 100% on every row, so the columns show how many false alarms come with it.

Feature set Agent precision Macro-F1
1: cursor_path_linearity 0.33 0.17
2: mouse_event_rate, teleport_click_ratio 0.994 0.926
5 features — 0.991

The one-feature row is a trap. It catches every agent only because the model calls every session an agent, and humans and bots get flagged along with them. The two-feature signal is also redundant: when teleport_click_ratio was removed entirely, agent detection stayed at 100%, so an attacker who defeats teleport_click_ratio alone does not defeat the detector.

"Exhaustive search over all feature subsets of size 1-5 (9401 GBMs) shows that two behavioral features (mouse_event_rate, teleport_click_ratio) give 100% observed agent recall at every evasion level with agent precision 0.994; five features lift macro-F1 to 0.991."/"The signal is redundantly encoded: removing teleport_click_ratio leaves agent detection at 100%."(abstract, fourth paragraph)
View official source →

Can AI agents in the browser evade bot detection?

No, not while they run through Playwright. The authors built five attackers, each stronger than the last, ending with replay of real human cursor paths. Across ten seeds and three model families, the detector missed zero agents in 22,990 per-seed predictions, so agent recall was 100% at every level.

Five evasion levels tested against agent detection

Each level adds an attacker skill, and none of them lowered agent recall below 100%. The paper archived 2,299 evasion sessions for this test. The table lists what each attacker could do.

Level Attacker capability Sessions
1: None Unmodified Playwright; the cursor jumps straight to targets 1,025
2: Rule-based Bézier cursor paths, 60–180 ms clicks, 500–2000 ms delays 150
3: GAN Conditional WGAN-GP trained on 14,342 human trajectory segments 300
4: GAN+ GAN paths plus 1.5 px micro-jitter and Fitts-law timing 300
5: Human replay Real recorded human cursor paths, KD-tree warped to fit 524

Macro-F1 confidence intervals ranged from 0.986 to 0.998 across the three model families. Macro-F1 averages the scores of all three classes, so values this close to 1 mean humans and bots were rarely confused with each other while every agent was caught.

"Level 2 (Rule-based): Bézier-curve cursor paths, human-sampled click durations (60–180 ms), and random inter-action delays (500–2000 ms)."/"Table 3 shows the central result: 100% agent detection at all five evasion levels within Playwright-mediated automation"(section 7, Evasion Ladder)
View official source →

Why human cursor replay still fails bot detection

Replaying a real human's mouse path fails because the click at the end is still sent by Playwright. Level 5 is not synthetic movement. It reuses paths recorded from real people, warps them to fit the page, and separates the language model's thinking time from the action timing.

Even so, the final click is still element.click() with no mouse motion leading into it. Scroll events also still come from a program loop instead of a physical wheel or trackpad. The path can look perfectly human, but the events that a real hand would have produced are still missing.

"Even replay of real human trajectories with human-sampled timing fails to evade: the final click is still element.click() dispatched without preceding mouse motion"(section 7, Evasion Ladder)
View official source →

What agent detection means for bot traffic defense today

For a team that already runs bot detection, the result points to three changes, listed from cheapest to most involved. None of them needs a new vendor.

  1. Add an agent label before adding new signals. If you have a human-vs-bot model and behavioral telemetry, retraining with a third class uses the features you already collect. What you do need is a set of sessions labeled as agents to train the new class on.
  2. Check whether you store raw mouse events. The two key features are counts and rates of raw events. If your telemetry only keeps summaries of mouse activity, the signal may be gone before it reaches the model.
  3. Decide what an agent session is allowed to do. An agent is not always an attacker; it may be a customer's assistant finishing a real purchase. Detection lets you route agent traffic separately, and the policy for that traffic is still yours to set.

Agents can also cause real trouble for a site. One case is covered in Rogue AI Agents Tied to OpenAI Hit Wikimedia Sites.

Limits of the AI agent detection results

The 100% figures apply only to agents that act through Playwright, and the authors say so themselves. Agents that send input at the operating-system level or through hardware mouse emulators were outside the tests. The authors expect the signal to carry over to other tools built on the Chrome DevTools Protocol, but they mark that as a prediction they have not yet measured.

The benchmark is also controlled. The agent data comes from one model, Claude, on ten tasks, and the bot class is synthetic, so the macro-F1 values depend on how those bots were simulated. As a workshop paper, it is an early result from a controlled benchmark, not a measured false-alarm rate for a live site.

"Execution paths that bypass CDP entirely are outside our scope and would likely require different detection approaches"/"Our agent data covers 10 web tasks driven by a single LLM (Claude) through Playwright and MCP"(section 12, Limitations)
View official source →

FAQ

Why do existing bot detectors miss AI agents?
A human-vs-bot detector has only two answers, and an agent session fits neither well, so a large share of agents get labeled human. In the paper's benchmark, an MLP did this for 39.1% of real agent sessions, a SAINT transformer for 34.5%, and a random forest for 30.0%. The authors treat this as a problem with the labels, not with tuning.
What actually distinguishes an AI agent from a human?
The browser automation layer, not the agent's thinking. Playwright sends clicks and scrolls as program calls, so it never creates the raw pointer-move and wheel-delta events that a physical mouse produces. The detector notices those missing events, and nothing the agent decides can put them back.
How many features does it take to detect an AI agent?
Two. The authors trained 9,401 gradient-boosted models, one for every feature set of size one to five. The pair mouse_event_rate and teleport_click_ratio caught 100% of agents at every evasion level with 0.994 agent precision, and five features raised macro-F1 to 0.991.
Can an agent evade detection by moving the mouse like a human?
Not in the setup the paper tested. The strongest attack replayed real recorded human cursor paths, and the detector still missed zero agents across 22,990 per-seed predictions. A human-looking path does not help because the click itself is still sent by the automation API.
Is this paper from a bot-detection vendor?
No. It is an academic paper accepted at the North East AI Agents Day 2026 workshop. Akamai appears in the paper only as one example of a platform that already runs behavioral bot detection, not as an author or sponsor.