Обнаружение AI-агентов: чем браузеры Claude, ChatGPT и Perplexity отличаются от людей
AI-агенты выглядят как браузеры, но ведут себя совсем не как люди — короткие целевые сессии, попадания в пиксель, ноль опечаток. 11 сигналов, отделяющих трафик Computer Use, Operator и Perplexity от реальных посетителей.
В 2024 году AI-агенты совершили переход из экспериментальных демо в продакшн-трафик. Computer Use API от Claude умеет управлять браузером. Инструменты браузинга ChatGPT ходят по сайтам, чтобы отвечать на запросы. Движок ответов Perplexity краулит в реальном времени. И растущая категория AI-ассистентов — Browserbase, Computer Use от Anthropic, OpenAI Operator — выполняют сквозные веб-задачи от имени пользователей.
Для сайта это создаёт новую категорию посетителя, которая не попадает ни в одну из двух корзин традиционной bot detection. AI-агенты — не скраперы, извлекающие данные в промышленных масштабах. Они не люди, кликающие по интерфейсу. Они нечто среднее — один посетитель на сессию, одна цель на визит, но исполнение на машинной скорости с механической точностью.
Обнаруживать их важно иначе, чем обнаруживать ботов. Иногда вы хотите их обслужить (полезный агент, покупающий для клиента). Иногда хотите их заблокировать (несанкционированный скрапинг через AI-обёртку). В любом случае сначала нужно знать, что они здесь.
Чем AI-агенты различаются архитектурно
Трафик AI-агентов в вебе порождают три основные архитектуры:
Агенты, управляющие браузером, запускают headless- или headful-браузер под управлением LLM. Сюда относятся Computer Use от Anthropic, OpenAI Operator, Browserbase и Skyvern. Браузер — это настоящий Chrome или Chromium. Агент управляет им через манипуляцию DOM или через анализ скриншотов и клики по координатам.
Агенты, работающие только через API, загружают страницы через HTTP-библиотеки (Node.js, Python, Go) и передают HTML в LLM на обработку. Так работает большинство агентов на базе Perplexity и поисковых движков. Браузера нет — только слой загрузки, скармливающий текст модели.
Гибридные агенты используют браузер для сайтов с активным JavaScript и API-загрузку для статического контента. Многие продакшн-агенты попадают в эту категорию, динамически выбирая подход в зависимости от цели.
Каждая архитектура оставляет разные отпечатки.
Сигнал 1. Время жизни браузерной сессии
У реальных пользователей сессии долгие и несфокусированные. Они открывают вкладки, отвлекаются, возвращаются. Медианная длительность человеческой сессии на задаче принятия решения — 8–20 минут.
У AI-агентов сессии короткие и сфокусированные. Типичная задача Computer Use — забронировать рейс, заказать продукты, извлечь данные о товаре — занимает от 30 секунд до 3 минут от начала до конца. Сессия начинается с загрузки страницы, выполняет 5–30 действий подряд и завершается.
Длительность сессии менее 5 минут при более чем 10 отдельных действиях и без переключения вкладок браузера — нетипичное поведение для человека и типичное для агента.
Сигнал 2. Точность кликов по координатам
Управляющие браузером агенты от Anthropic и OpenAI используют анализ скриншотов, чтобы определить элементы интерфейса, а затем кликают по координатам. Расчёт координат точен до пикселя.
Реальные пользователи кликают по областям. По кнопке размером 200x40 пикселей клики распределяются по всей площади, со смещением к центру, но с человеческим разбросом. AI-агенты кликают в узкой полосе — часто в пределах 2–3 пикселей от геометрического центра элемента. Сотня кликов со средним отклонением менее 3 пикселей — не человеческое распределение.
Для детекции нужно собирать координаты кликов и анализировать их относительно границ элемента. Это хорошо работает на данных масштаба сессии.
Сигнал 3. Отсутствие исследовательского скролла
Люди скроллят, чтобы посмотреть, что есть на странице. Они скроллят вниз, потом обратно вверх, потом частично. Они останавливаются на контенте, который привлёк их внимание. Их траектории скролла рваные.
AI-агенты скроллят только по необходимости. Если цель — кликнуть «Добавить в корзину» и кнопка выше линии сгиба, агент может вообще не скроллить. Если целевой элемент ниже линии сгиба, агент скроллит один раз, прямо к цели, и затем выполняет действие.
Сессии с менее чем 2 сменами направления скролла или с постоянной скоростью скролла на всех событиях указывают на браузинг, управляемый задачей, а не на исследование.
Сигнал 4. Тайминг ввода текста
Реальные пользователи печатают со скоростью 30–60 слов в минуту, с переменными паузами, случайными удалениями и микрокоррекциями. Тайминг нажатий клавиш подчиняется распределению с высокой дисперсией и ненулевой долей удалений.
AI-агенты заполняют формы, вставляя значения или имитируя нажатия клавиш с фиксированным ритмом — часто 50–100 символов в секунду, равномерно, без удалений. Поле, заполненное за 200 мс строкой из 30 символов и без единого backspace, — не человеческий ввод.
Сигнал 5. Отсутствие опечаток
Связанный, но отдельный сигнал: люди делают опечатки. На 1000 символов ввода реальные пользователи производят 15–40 исправлений. AI-агенты производят ноль. Отправка формы с 3 полями общей длиной 100+ символов и нулём исправлений необычна для человека.
Сигнал 6. Несогласованности user agent
Некоторые AI-агенты используют кастомные user agent, которые явно их идентифицируют: perplexity-user, ChatGPT-User, ClaudeBot. Это «вежливые» агенты, следующие конвенции самоидентификации и часто уважающие robots.txt.
Детекция здесь тривиальна — прочитать user agent, сопоставить с известными списками. Ценность в том, чтобы знать, когда обслуживать их иначе (или заблокировать, если скрапинг вам не нужен).
Другие агенты работают на фреймворках управления браузером и наследуют тот user agent, который использует браузер, — как правило, Chrome. Их сложнее идентифицировать по одному лишь user agent, и они требуют поведенческих сигналов.
Сигнал 7. WebGL-рендеринг в headless-режиме
Управляющие браузером агенты, использующие Chromium в headless-режиме, раскрывают рендерер SwiftShader, который мы обсуждали в статье про Puppeteer. Любая сессия, где WebGL-рендерер содержит SwiftShader, а посетитель выполняет 10+ осознанных действий, почти наверняка принадлежит управляющему браузером AI-агенту.
Новые фреймворки агентов (Browserbase, некоторые конфигурации Skyvern) запускают headful-Chrome, чтобы избежать этого сигнала. Они предъявляют настоящие строки GPU. Это означает, что одного WebGL недостаточно для детекции современных агентов — он необходим как начальный фильтр, но не как полное решение.
Сигнал 8. Идеальное следование структуре страницы
Реальные пользователи кликают по ссылкам даже во время редиректа страницы. Они прерывают сами себя. Они делают двойной клик там, где хватило бы одинарного. Они кликают по тому, что вовсе не ссылка.
AI-агенты следуют DOM. Когда они хотят перейти, они выполняют действие над конкретным элементом. Они не кликают по неправильному элементу и не обновляют страницу на середине загрузки. Их сессии разворачиваются с механической линейностью, которую не производит ни один отвлекающийся человек.
Трейсы сессий с идеальным следованием — каждый клик по валидному элементу, каждое поле формы заполнено в порядке DOM, каждый переход между страницами предваряется намеренным действием — читаются как управляемые агентом.
Сигнал 9. Time-to-interactive равно нулю
Реальным пользователям нужно время, чтобы осмыслить страницу. Они читают. Они сканируют. Они понимают, прежде чем действовать.
AI-агенты парсят DOM мгновенно. Время между завершением загрузки страницы и первым действием пользователя для реального человека обычно составляет 1,5–4 секунды даже на простых страницах. У AI-агентов оно может быть меньше 200 мс — столько нужно LLM, чтобы найти целевой элемент в DOM.
Очень быстрое время первого действия на странице, требующей осмысления контента, — сильный сигнал агента.
Сигнал 10. Паттерны HTTP-загрузки для агентов, работающих только через API
Perplexity, некоторые сценарии tool-use у Claude и большинство поисковых агентов не запускают браузеры. Они загружают страницы напрямую через HTTP-библиотеки.
Эти агенты оставляют TLS- и HTTP-сигналы, которые мы обсуждали ранее, — отпечаток undici в Node.js, отпечаток requests в Python, отпечаток net/http в Go. Обычно они не исполняют JavaScript, поэтому вообще не запускают клиентскую детекцию.
Детекция агентов, работающих только через API, происходит на сетевом уровне: хеши TLS JA4, порядок HTTP-заголовков, отсутствие специфичных для браузера действий (нет загрузки favicon, нет аналитического beacon, нет запросов шрифтов). Чтобы идентифицировать таких агентов, нужно смотреть на то, чего не происходит, не меньше, чем на то, что происходит.
Сигнал 11. Цели сессии в форме задачи
Самый сильный сигнал не технический, а поведенческий. Сессии AI-агентов целенаправленны так, как человеческие сессии редко бывают.
Реальный пользователь, ищущий товар, может посмотреть 8 позиций, сравнить характеристики в 3 вкладках, почитать отзывы, бросить и вернуться через час, а затем купить. AI-агент идёт к товару, извлекает характеристики, добавляет в корзину, оформляет заказ. Менее 90 секунд. Без отклонений.
Системы детекции, отслеживающие долю завершения целей на уровне сессии, могут выявлять трафик агентов по плотности успешного выполнения задач в коротких сессиях. Это более медленный сигнал, но крайне надёжный в сочетании с сигналами уровня отдельных действий.
Обслуживать агентов иначе
После идентификации трафик AI-агентов можно обработать несколькими способами:
-
Заблокировать — если сайт не хочет автоматического доступа, отказать на границе. Дёшево и просто.
-
Отдавать альтернативный контент — ответить версией, оптимизированной под API (JSON, структурированные данные), которую генерировать дешевле, чем полную HTML-страницу.
-
Ограничить частоту — разрешить агентов, но ограничить частоту их запросов, чтобы сохранить производительность сайта.
-
Взимать плату — некоторые сайты начинают брать с AI-компаний плату за программный доступ к своим данным. Детекция — предпосылка для биллинга.
-
Обслуживать как обычно — если агент действует от имени реального клиента, обслуживать его — это бизнес.
Разные сайты сделают разный выбор. Технически важно иметь детекцию на месте, чтобы этот выбор был доступен.
Движущаяся цель
Фреймворки AI-агентов улучшаются ежемесячно. Anthropic выпускает обновления Computer Use, добавляющие разброс скролла. Browserbase добавляет дрожание мыши. OpenAI Operator вводит имитацию опечаток. Каждое поколение фреймворка закрывает часть поверхности детекции, описанной выше.
Техники, работающие в 2026 году, потребуют обновления к 2027-му. Но лежащая в основе реальность не изменится: AI-агенты выполняют задачи. Люди воспринимают сайты. Эта асимметрия порождает сигнал, какие бы конкретные техники агенты ни использовали, чтобы слиться с фоном.
Стеки детекции, рассматривающие AI-агентов как постоянную развивающуюся категорию, а не как разово решённую задачу, сохранят видимость. Те, кто выпустит один детектор и забудет о нём, обнаружат, что их покрытие незаметно деградирует.