Дайджесты новостей
Веб-агент застрял в запутанном лабиринте интерактивных элементов реальных сайтов

Стресс-тест Browser Use в бенчмарке Odysseys 2: почему веб-агенты застревают на реальных сайтах

Если ты смотрел вирусные демонстрационные ролики открытой библиотеки Browser Use, у тебя легко могло сложиться впечатление, что эра ручного интернет-серфинга подошла к концу. В коротких видео агент уверенно открывает браузер, находит дешевый авиабилет, вбивает имя пассажира и бодро рапортует об успехе. На синтетических тестовых сайтах показатель завершения задач стабильно держится на уровне 90–95%. Кажется, что еще чуть-чуть — и мы сможем полностью делегировать покупку товаров и бронирование отелей автономным ботам.

Но между уютной демонстрационной песочницей и диким коммерческим вебом лежит непреодолимая пропасть. Чтобы измерить реальную устойчивость агентов, исследователи из Университета Карнеги — Меллона (CMU) совместно с создателями Browser Use запустили масштабный стресс-тест в новом бенчмарке Odysseys 2.

Результаты оказались обескураживающими: при выходе на реальные боевые сайты успешность флагманских моделей рухнула до скромных 44,5%, а у открытых локальных сеток упала ниже 30%. Аналитик Джулиан Голди подробно препарировал узкие места технологии. О том, как инженеры борются за скорость веб-агентов, мы уже рассказывали в разборе Спекулятивное ускорение веб-агентов: как BrowserUse UltraFast выполняет задачи за три секунды.

Иллюзия победы: главный баг автономных покупок

Первая и самая пугающая проблема, вскрытая бенчмарком, получила название False Completion Bug — ложное сообщение об успехе.

Представь ситуацию: ты поручил агенту найти на маркетплейсе беспроводную клавиатуру дешевле 5 000 рублей и оформить доставку. Агент бодро кликает по страницам, открывает карточку товара, нажимает кнопку, закрывает всплывающее модальное окно и гордо выводит в консоль: SUCCESS: Task finished. Item added to cart.

Ты открываешь браузер, заходишь в профиль — а корзина абсолютно пуста! Оказывается, клик пришелся на закрытие рекламного баннера или предложение оформить подписку на скидки. Модель приняла исчезновение всплывающего окна за подтверждение добавления в корзину и завершила сценарий. На этот критический сбой приходится 29% всех провалов в Odysseys 2. Для реального бизнеса такой агент опаснее сломанного кассового аппарата, ведь он создает ложное ощущение выполненной работы.

Четыре стены: где застревает нейросеть

Почему модели, обладающие колоссальной эрудицией, становятся беспомощными на обычном коммерческом сайте? Статистика Odysseys 2 раскладывает причины сбоев по полочкам:

  1. Модальные окна и оверлеи (38% всех сбоев). Всплывающее уведомление о согласии на сбор куки (Cookie Banner), форма подписки на рассылку или предложение включить геолокацию накладывают поверх страницы невидимый затемненный слой. Агент видит координаты целевой кнопки в коде DOM и пытается кликнуть по ним, но системное событие перехватывается прозрачным overlay-слоем. Модель зацикливается, повторяя клик по 20 раз подряд, пока не исчерпает лимит шагов.
  2. Антифрод и капчи (19% сбоев). Современные системы защиты вроде Cloudflare Turnstile или reCAPTCHA v3 анализируют не только IP-адрес, но и микродинамику движения курсора. Прямолинейные механические перемещения мыши и мгновенный ввод символов через автоматизацию Playwright детектируются за полсекунды. Агент намертво упирается в экран проверки.
  3. Бесконечный скролл и виртуализация списков (14% сбоев). На современных витринах длинные списки товаров рендерятся динамически: как только карточка уходит за пределы видимости, браузер удаляет ее из DOM-дерева ради экономии памяти. Агент скроллит страницу вниз, теряет ранее найденные варианты и начинает поиск заново, попадая в бесконечный цикл.

О том, как нестандартное поведение браузерных движков ломает автоматизацию, читай в статье Ситуативные отношения браузеров: когда движки единодушны вопреки спецификации.

Паттерн самопроверки: спасение через верификацию

Чтобы вытащить агентов из этой ловушки, разработчики переходят от слепого выполнения шагов к архитектуре с обязательными контрольными точками рефлексии (Self-Reflection Checkpoints).

Вот как выглядит минимальный рабочий скрипт устойчивого агента на Python с включенной пост-валидацией:

import asyncio
from browser_use import Agent, Controller
from langchain_anthropic import ChatAnthropic

async def run_verified_agent(task_prompt: str):
    # Инициализируем модель с мультимодальным зрением
    llm = ChatAnthropic(model_name="claude-3-5-sonnet-20241022", temperature=0.1)
    controller = Controller()

    agent = Agent(
        task=task_prompt,
        llm=llm,
        controller=controller,
        use_vision=True,            # Скриншоты для страховки DOM-элементов
        max_actions_per_step=2,
        validate_output=True        # Обязательная самопроверка финального состояния
    )

    history = await agent.run(max_steps=20)
    return history

if __name__ == "__main__":
    task = (
        "Зайди на тестовый магазин, найди беспроводную мышь, "
        "добавь в корзину и подтверди, что счетчик корзины изменился на 1."
    )
    asyncio.run(run_verified_agent(task))

А для гарантированного отсечения ложных рапортов перед завершением процесса вызывается отдельная функция жесткой валидации состояния страницы:

def verify_cart_state(page_text: str, target_url: str) -> bool:
    # 1. Проверяем смену URL на страницу оформления или корзины
    if "cart" not in target_url and "checkout" not in target_url:
        print("[Валидация] Ошибка: итоговый URL не ведет в корзину!")
        return False
        
    # 2. Ищем явные маркеры успешного действия в тексте DOM
    success_markers = ["Товар добавлен", "В корзине 1 товар", "Items (1)"]
    has_marker = any(marker.lower() in page_text.lower() for marker in success_markers)
    
    if not has_marker:
        print("[Валидация] Ошибка: маркеры добавления товара не найдены.")
        return False
        
    print("[Валидация] Успех: состояние корзины подтверждено.")
    return True

Трезвые выводы для разработчиков

Бенчмарк Odysseys 2 наглядно показал: эпоха наивного веб-скрейпинга подошла к концу. Автономный агент в интернете — это не просто вызов LLM в цикле. Это сложнейшая инженерная система, требующая гибридного зрения, эмуляции человеческой биометрии движений и обязательных контрольных проверок на каждом шаге.

Пока технология не научится гарантированно преодолевать модальные окна и отсекать ложные рапорты, доверять ботам настоящую кредитную карту в реальных интернет-магазинах явно преждевременно.