Дата публикации
ai_products

Открытый браузер для ИИ‑агентов: как работает Agent Browser Protocol

Что появилось / что изменилось

Agent Browser Protocol (ABP) — это отдельная сборка Chromium, заточенная под работу с ИИ‑агентами. Разработчики встроили в сам движок поддержку MCP и REST, так что агент общается с браузером обычными HTTP‑запросами, без WebSocket и без ручного управления CDP‑сессиями.

Ключевые изменения:

  • Каждое действие агента — один HTTP‑запрос. Один запрос = один завершённый шаг: стабильное состояние страницы, скриншот и лог событий.
  • Пауза между шагами. ABP останавливает JavaScript и виртуальное время между действиями, страница «замирает», пока LLM думает.
  • Скриншот на каждый шаг. Браузер снимает изображение с композитора (с курсором) и отдаёт его агенту вместе с событиями.
  • Асинхронный веб превращается в дискретный чат‑формат. Навигация разбита на шаги, к которым привыкли Claude 3.5, GPT‑4o и другие LLM‑агенты.
  • Производительность: около 100 мс накладных расходов на действие (включая скриншоты). Узкое место — сам LLM, а не браузер.
  • Качество навигации: 90,53% на бенчмарке Online Mind2Web с воспроизводимыми результатами.

ABP можно подключить как MCP‑сервер в Claude Code, Codex CLI, Opencode и любых других MCP‑клиентах по HTTP. Есть и чистый REST‑режим без MCP.

Как это работает

Под капотом ABP — форк Chromium, который превращает браузер в «машину шагов» для агента.

Как выглядит один шаг:

  1. Агент отправляет HTTP‑запрос, например POST /click с координатами или POST /type с текстом.
  2. ABP инжектирует реальные события ввода через системный input Chromium: мышь, клавиатура и т.п.
  3. Браузер ждёт, пока страница достигнет состояния "settled" — граница определена на уровне движка, а не через таймеры и эвристики.
  4. После этого ABP делает скриншот композитора (с курсором), собирает события вкладки: tab_created, диалоги, выбор файла, загрузки и другие сигналы.
  5. Браузер ставит на паузу JavaScript и виртуальное время до следующего запроса.
  6. Агент получает 200 OK с JSON‑логом и изображением, анализирует скриншот и решает, что делать дальше.

Всё это работает поверх обычного HTTP:

  • MCP‑режим: сервер доступен по http://localhost:8222/mcp (streamable HTTP).
  • REST‑режим: API по http://localhost:8222/api/v1/... — например, GET /tabs, POST /tabs/<TAB_ID>/navigate.

Примеры запуска:

  • Claude Code / Codex CLI / Opencode: через npx -y agent-browser-protocol --mcp и подключение как MCP‑сервер browser.
  • Любой MCP‑клиент: указать URL http://localhost:8222/mcp.
  • REST‑скрипты: запуск npx -y agent-browser-protocol, затем curl к REST‑эндпоинтам.

ABP также поставляется как npm‑пакет (TypeScript SDK, конфиг для плагинов, отладочный сервер) и отдельные бинарники для macOS, Linux и Windows.

Что это значит для вас

ABP полезен, если вы:

  • Разрабатываете автономных ИИ‑агентов, которые должны кликать по реальному вебу, а не по API.
  • Строите тестовые сценарии с LLM, где важно, чтобы агент видел именно тот экран, который видит человек.
  • Пишете инструменты навигации для Claude или других MCP‑клиентов и устали от ручных waitForSelector, таймаутов и гонок с живой страницей.

Где ABP помогает:

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

Где стоит быть осторожнее:

  • Если вы автоматизируете простые формы или API уже есть, классический Playwright/Selenium может быть проще.
  • Если у вас очень жёсткие ограничения по latency, имейте в виду: на каждый шаг закладывайте минимум 100 мс плюс время ответа LLM.
  • ABP работает как локальный браузер, так что для сайтов, заблокированных в России, всё равно понадобится VPN или прокси на уровне системы.

Из практики: ABP удобно запускать локально и подключать к Claude Desktop или Claude Code как MCP‑сервер browser. После этого вы можете давать агенту естественные задачи вроде: «Найди топ‑пост про AI на news.ycombinator.com» или «Проложи маршрут на Google Maps из одного города в другой поездом». Скриншоты на каждом шаге помогают быстро понять, где агент ошибся.

Место на рынке

ABP конкурирует не с LLM, а с инструментами автоматизации браузера для агентов: Playwright, Puppeteer, Selenium и CDP‑обёртками.

Главные отличия:

  • Протокол: ABP общается по простому REST/MCP поверх HTTP. Многие другие решения опираются на WebSocket и ручное управление CDP‑сессией.
  • Модель работы: ABP превращает браузер в дискретную «машину шагов» с чёткими границами. Классические фреймворки по умолчанию работают с живой страницей и вынуждают добавлять ожидания и ретраи.
  • Скриншоты и события: каждый шаг в ABP гарантированно даёт скриншот и лог событий. В Playwright и аналогах это обычно отдельные вызовы и больше кода на стороне агента.
  • Производительность: ABP добавляет около 100 мс на действие поверх работы LLM. Для CDP‑решений эта цифра зависит от реализации и настроек, прямого численного сравнения разработчики ABP не приводят.

ABP логичнее всего рассматривать как специализированный браузер для LLM‑агентов. Если вам нужно, чтобы Claude 3.5 или другая модель с поддержкой MCP уверенно управляла реальным вебом шаг за шагом, этот подход снижает количество гонок и скрытых состояний. Если же вы пишете обычные автотесты без участия LLM, традиционные фреймворки по‑прежнему остаются базовым выбором.


Читайте также