| |

Дайте AI-агенту браузер: цикл операций snapshot-ref в agent-browser за 5 шагов

Дайте AI-агенту браузер: цикл операций snapshot-ref в agent-browser за 5 шагов

Примечание автора: от установки до работы со snapshot и ref и проверки результата — за 5 шагов разберём цикл agent-browser «прочитать страницу, нажать на элемент, снова прочитать страницу», который помогает AI-агенту надёжно управлять настоящим браузером.

Когда AI-агенту нужно работать с веб-страницей, возникают две типичные сложности: он не видит страницу и с трудом попадает по нужным элементам. Скриншоты и клики по координатам расходуют много токенов и не всегда точны; если же передать модели весь HTML, контекстное окно быстро заполнится. В этой статье мы разберём цикл snapshot-ref в agent-browser и покажем, как агент может управлять браузером, выполняя команды по одной.

Это не очередная статья с общим обзором автоматизации браузера. Мы пройдём всё в том порядке, в котором вы будете работать с инструментом: установим agent-browser, разберём связку snapshot и ref, стратегию повторных попыток при ошибках и подключение к рабочему процессу агента.

Главное: прочитав статью, вы поймёте, почему цикл snapshot-ref в agent-browser хорошо подходит для больших языковых моделей, и сможете выполнить свою первую задачу в браузере с помощью агента всего за 5 команд.

agent-browser-snapshot-ref-loop-guide-ru-image-0


Главное о цикле snapshot-ref в agent-browser

agent-browser — инструмент автоматизации браузера с открытым исходным кодом от Vercel Labs, распространяемый по лицензии Apache-2.0. Это нативный CLI на Rust с понятной целью: дать ИИ-агенту браузер, которым можно управлять отдельными командами. Открыв страницу, агент считывает её в виде компактного текста на основе дерева доступности (accessibility tree), а затем взаимодействует с элементами с помощью shell-команд.

Особенность Описание Польза для агента
Компактный текст snapshot Страница выводится в виде дерева доступности, у каждого элемента есть ссылка ref, например @e1 Экономит контекст по сравнению со скриншотами и исходным HTML
Точное определение элементов через ref Команды действий напрямую используют ref, например click @e1 Модели не нужно самостоятельно составлять CSS-селекторы
Браузер остаётся запущенным Фоновый процесс поддерживает браузер открытым Каждый шаг — это короткий вызов shell-команды
Явные сообщения об ошибках Если элемент перекрыт, скрыт или отключён, клик завершается ошибкой, а не ложным успехом Агент может решить, что делать дальше, опираясь на реальный результат
Встроенные навыки (skills) CLI содержит инструкции по использованию, соответствующие его версии Агент получает инструкции, актуальные для установленной версии

Как работает цикл snapshot-ref

Этот цикл состоит из трёх действий: сначала snapshot считывает страницу, затем выполняется действие с выбранным ref, после чего страница считывается снова для проверки результата. И так по кругу. В официальном примере снимок example.com содержит всего одну строку: - link "Learn more" [ref=e1]. Увидев её, модель понимает, что на странице есть ссылка Learn more, и может нажать на неё с помощью @e1.

Такой подход разделяет понимание страницы и выполнение действия на два проверяемых шага и хорошо подходит для работы большой языковой модели с инструментами. Модели не нужно разбираться в сложной структуре DOM: достаточно найти в тексте нужный элемент и обратиться к его ref. Повторный снимок после каждого действия позволяет агенту принимать решения на основе актуального состояния страницы, а не полагаться на память и догадки.

Архитектура agent-browser

Сам CLI не управляет браузером напрямую. При выполнении первой команды запускается фоновый процесс — daemon, который управляет браузером через Chrome DevTools Protocol. Все последующие команды CLI отправляются этому процессу. Поэтому браузер остаётся открытым между командами, а состояние авторизации и положение на странице сохраняются.

У каждой --session есть собственный daemon и браузер, поэтому несколько задач могут выполняться параллельно, не мешая друг другу. По умолчанию, если в течение часа команды не поступают, браузер в headless-режиме закрывается, а daemon завершает работу. Если настроено сохранение сессии (session persistence), перед выходом состояние сохраняется.

agent-browser-snapshot-ref-loop-guide-ru-image-1

«Мозг» этого цикла — большая языковая модель. На каждом шаге текст снимка попадает в контекст модели, и она выбирает следующую команду. Поэтому способность модели следовать инструкциям и стоимость её использования напрямую влияют на успешность и стоимость задачи. APIYI предоставляет API-доступ к упомянутым в статье моделям Claude, DeepSeek, Kimi и другим. Сервис поддерживает оба формата интерфейса — OpenAI и Anthropic; документация по подключению доступна на docs.apiyi.com.


Быстрый старт с agent-browser: цикл snapshot-ref за 5 шагов

Шаг 1. Установите agent-browser и браузер

Обычно agent-browser устанавливают глобально через npm, а затем скачивают Chrome for Testing. Пакет npm автоматически выбирает нативный бинарный файл для вашей платформы. Сейчас поддерживаются macOS (ARM64, x64), Linux (ARM64, x64, glibc и musl) и Windows (x64).

Способ установки Команда Когда использовать
Глобальная установка через npm Сначала npm install -g agent-browser, затем agent-browser install Большинство сред разработки; при первой установке нужно скачать браузер
Homebrew Сначала brew install agent-browser, затем agent-browser install Для пользователей macOS
Linux с зависимостями agent-browser install --with-deps Для серверов и контейнеров, где также нужно установить системные библиотеки браузера
Без установки npx agent-browser open example.com Чтобы быстро попробовать инструмент или выполнить разовую задачу в CI
Команды обслуживания agent-browser upgrade, agent-browser doctor Для обновления и диагностики проблем с окружением

Для сборки из исходного кода официально требуются Node.js 24 или новее, pnpm 11 или новее и инструменты Rust. Последовательно выполните pnpm install, pnpm build:source, pnpm link --global, а затем запустите agent-browser install. Для повседневного использования достаточно установки через npm.

Шаги 2–5: полный минимальный цикл

После установки эта последовательность команд позволит пройти полный цикл snapshot-ref. Сначала попробуйте выполнить его вручную в терминале и проверить результат каждого шага, а затем поручите выполнение агенту.

Шаг Команда Действие Ожидаемый результат
2. Открыть страницу agent-browser open example.com Запускает демон и открывает сайт Браузер остаётся работать в фоне
3. Прочитать снимок agent-browser snapshot -i Выводит только интерактивные элементы, каждый со своим ref Вывод вида link "Learn more" [ref=e1]
4. Выполнить действие по ref agent-browser click @e1 Нажимает на элемент из снимка Переход на другую страницу или изменение состояния
5. Проверить результат agent-browser get url Считывает текущий URL, чтобы убедиться, что действие сработало Возвращает адрес после перехода
Завершение agent-browser close Закрывает браузер Освобождает ресурсы

Параметр -i на шаге 3 особенно важен: он оставляет в выводе только интерактивные элементы и значительно сокращает текст снимка. Это удобно, когда бюджет токенов ограничен. Проверку на шаге 5 тоже нельзя пропускать: агент должен оценивать успех действия по фактическому результату, а не считать, что нажатие автоматически означает успех.

🚀 Быстрый старт: когда ручной цикл заработает, можно передать эти команды агенту. Рекомендуем сначала получить тестовый лимит через APIYI apiyi.com и попробовать несколько моделей на одной и той же задаче. Так вы увидите, какая из них лучше выбирает нужный ref из текста снимка. Интерфейс совместим с форматами OpenAI и Anthropic: в большинстве существующих фреймворков для агентов достаточно заменить ключ и адрес. Подробности — в документации на docs.apiyi.com.

Срок действия ref в agent-browser и повторное создание снимка

ref описывает страницу на момент создания снимка. При переходе на другую страницу или изменении DOM старый ref может устареть или даже указывать на неправильный элемент. Поэтому главное правило: после каждого перехода или заметного изменения страницы сначала снова выполните snapshot, а затем используйте новые ref.

Это правило лучше сразу включить в системный промпт агента. Надёжный цикл выглядит так: «снимок, действие, снимок», а не «один снимок, десять действий подряд». Стоимость дополнительного снимка гораздо ниже затрат на поиск ошибки и откат после клика не по тому элементу.

Что делать, если клик в agent-browser не удался

agent-browser не делает вид, что клик прошёл успешно. Если целевой элемент скрыт, отключён, находится за пределами видимой области или перекрыт другим элементом, например окном согласия на Cookie, click сразу вернёт ошибку. Это удобно для агента: само сообщение об ошибке помогает решить, что делать дальше.

Причина ошибки Типичный случай Что делать
Элемент перекрыт Окно согласия или другое всплывающее окно закрывает кнопку Сначала закройте перекрывающий элемент, затем создайте новый снимок и повторите попытку
Элемент вне видимой области Элемент находится ниже на странице Прокрутите страницу с помощью scroll, затем создайте новый снимок
Элемент отключён Кнопка недоступна, потому что форма заполнена не полностью Заполните обязательные поля с помощью fill, затем проверьте снимок
Элемент скрыт Элемент появляется только после раскрытия меню Сначала раскройте меню, дождитесь его появления с помощью wait, затем создайте снимок
ref устарел Страница перешла по ссылке или обновилась Снова выполните snapshot, чтобы получить новые ref

Помимо ref, agent-browser поддерживает CSS-селекторы, поиск по тексту, XPath и семантические локаторы. Например, команда agent-browser find role button click --name "Submit" находит кнопку отправки по роли и имени и нажимает её. Если структура страницы стабильна, а семантика элементов понятна, семантические локаторы могут дополнить ref.


Основные группы команд agent-browser

agent-browser поддерживает множество команд. Полный список доступен через agent-browser --help, а справка по отдельной команде — через agent-browser <command> --help. Ниже мы сгруппировали самые полезные команды по назначению, чтобы вам было проще решить, какие возможности предоставить агенту.

Группа Основные команды Типичные задачи
Навигация и чтение open, back, reload, read, snapshot, get, is Открытие страниц, чтение снимков, проверка состояния
Взаимодействие click, fill, type, press, select, check, scroll, upload, find Клики, заполнение форм, загрузка файлов
Ожидание wait Ожидание появления элемента или загрузки страницы
Сбор данных screenshot, pdf, record, download, diff Снимки экрана, экспорт в PDF, запись экрана, сравнение страниц
Состояние страницы и сети cookies, storage, network, eval Управление cookie, перехват сетевых запросов, выполнение скриптов
Вкладки и всплывающие окна tab, frame, dialog Работа с несколькими вкладками, iframe и диалоговыми окнами
Отладка и производительность console, errors, trace, vitals, a11y Сбор ошибок консоли и показателей производительности
Сессии и аутентификация session, state, auth, confirm, deny Изоляция сессий, сохранение состояния входа, подтверждение чувствительных операций
Интеграция с агентами skills, mcp, flow, batch, plugin Загрузка навыков, запуск MCP-сервера

По умолчанию используется браузер Chrome for Testing. Вы также можете подключиться к уже запущенному Chrome с помощью --cdp или --auto-connect, переключиться на движок Lightpanda или Obscura с помощью --engine, управлять Mobile Safari в симуляторе iOS или подключить облачный браузерный сервис, например Browserbase, Browserless, Browser Use, Kernel или AgentCore.


Подключаем agent-browser к AI-агенту

Обучаем агента с помощью встроенных навыков

Одна из удачных идей agent-browser — поставлять инструкции вместе с CLI. Команда agent-browser skills get core выводит описание основного цикла работы, использования ref, стратегий ожидания и типичных рабочих сценариев. Флаг --ref commands позволяет посмотреть отдельный справочный раздел, например полный список команд, а --full добавляет полную справку по командам и шаблоны. Команда agent-browser skills list также выводит список специализированных навыков, таких как electron, slack и dogfood.

В фреймворке для агентов навык обнаружения можно установить командой npx skills add vercel-labs/agent-browser. Это лишь небольшая инструкция, которая направляет агента к agent-browser skills get core. Поэтому указания всегда соответствуют установленной версии CLI. Если устанавливать навык не хочется, можно добавить в AGENTS.md одну строку: используйте agent-browser для автоматизации браузера, перед первым использованием выполните agent-browser skills get core и следуйте полученным инструкциям.

Подключение через MCP

Если ваш клиент поддерживает MCP, команда agent-browser mcp запустит MCP-сервер через stdio. После этого десктопные клиенты вроде Claude или собственные агенты смогут вызывать операции браузера как стандартные инструменты — без отдельной обёртки для выполнения команд в shell.

Выбор управляющей модели для цикла snapshot-ref

Задачи в браузере обычно требуют много шагов, и на каждом из них модель получает текстовый снимок страницы. Поэтому входящих токенов, как правило, значительно больше, чем исходящих. При выборе модели стоит учитывать не только способность следовать инструкциям, но и стоимость входящих и кэшированных токенов. Цены в таблице приведены по данным страницы цен APIYI docs.apiyi.com/models; единицы измерения и условия тарификации уточняйте на странице цен.

Модель Цена входящих токенов Цена исходящих токенов Цена кэша Подходящие задачи Доступная платформа
claude-opus-5-5 $4 $20 $0.2 Сложные многошаговые задачи, проблемные страницы APIYI apiyi.com
claude-sonnet-5-5 $2 $10 $0.1 Основная модель для повседневных задач APIYI apiyi.com
kimi-k3.1-pro $2 $10 $0.2 Работа с китайскоязычными веб-страницами APIYI apiyi.com
deepseek-v4.1-flash $0.3 $1.2 $0.006 Простые формы, массовые проверки APIYI apiyi.com

Практичный вариант: использовать deepseek-v4.1-flash для массовых задач с простой структурой и фиксированными шагами, claude-sonnet-5-5 — как основную универсальную модель, а для страниц со сложными взаимодействиями или частыми ошибками переключаться на claude-opus-5-5. Поскольку текст skills и системный промпт повторяются на каждом шаге, модели с более дешёвым кэшем позволяют сократить расходы в длинных циклах.

Стоит отметить, что моделей семейства ERNIE от Baidu пока нет в таблице цен APIYI: APIYI ещё не подключила эти модели, но мы постараемся сделать это как можно скорее. Если ваш агент изначально зависит от ERNIE, для тестирования пока можно использовать модели из таблицы выше.

agent-browser-snapshot-ref-loop-guide-ru-image-2

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


Рекомендации по безопасному использованию agent-browser

Если Agent работает с настоящим браузером, границы безопасности нужно продумать заранее. В разделе безопасности официальной документации agent-browser описаны такие механизмы, как хранилище учётных данных (auth vault), белый список доменов, политики действий и границы содержимого. Команда auth управляет учётными данными, а confirm и deny позволяют подтверждать или отклонять чувствительные действия.

В продакшене стоит как минимум соблюдать три правила:

  • Ограничьте доступные домены: с помощью белого списка разрешите Agent работать только с сайтами, связанными с вашими задачами. Так вредоносная страница не сможет направить его на незнакомый сайт.
  • Не помещайте учётные данные в контекст: храните логины и пароли в auth vault, а не в промпте, чтобы они не попали в логи модели.
  • Требуйте подтверждения чувствительных действий: настройте подтверждение для платежей, удаления данных и оформления заказов, чтобы последнее слово оставалось за человеком.

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


Часто задаваемые вопросы FAQ

Q1: Что такое цикл snapshot-ref в agent-browser?

Это основной принцип работы agent-browser: сначала команда `snapshot` считывает страницу в виде компактного текста с ref, затем выполняется действие с выбранным ref, после чего создаётся новый снимок для проверки результата. Цикл повторяется по мере необходимости. Такой подход разбивает понимание страницы и выполнение действий на небольшие проверяемые шаги и хорошо подходит для пошаговых рассуждений больших языковых моделей.

Q2: Чем agent-browser отличается от браузерного агента, работающего со скриншотами?

Скриншоты дают больше возможностей для визуального анализа, но требуют много токенов, а клики по координатам могут промахиваться. agent-browser, напротив, использует текст дерева доступности и ref для поиска элементов. Контекст получается компактнее, действия точнее, а при сбоях выдаётся явная ошибка. Поэтому он лучше подходит для задач автоматизации, где важна стабильность.

Q3: Почему после перехода на другую страницу нельзя использовать старые ref?

ref описывает страницу только на момент создания снимка. После навигации или изменения DOM элементы могли исчезнуть или быть заменены, поэтому старый ref может перестать работать или указывать не на тот элемент. После каждого изменения страницы нужно заново выполнить `snapshot` и использовать новые ref.

Q4: Для каких задач подходит agent-browser?

В первую очередь для следующих:

— **Автоматическое заполнение форм**: регистрация, подача заявок, ввод данных в панели управления и другие процессы с фиксированными шагами.
— **Проверка сайтов и регрессионное тестирование**: поиск ошибок и оценка производительности страниц с помощью `errors`, `console` и `vitals`.
— **Сбор информации**: постраничное чтение данных после входа в панель управления.
— **Специализированные задачи с Electron, Slack и другими инструментами**: расширение возможностей с помощью навыков из `skills list`.

Q5: Как подключить модель для управления agent-browser?

Можно действовать так:

1. Зарегистрируйтесь на сайте APIYI apiyi.com и получите API-ключ.
2. В фреймворке агента выберите формат, совместимый с OpenAI или Anthropic, и укажите параметры подключения согласно документации на docs.apiyi.com.
3. Используйте описанный в статье цикл из 5 шагов как тестовую задачу и сравните работу разных моделей.

APIYI поддерживает единый способ подключения к Claude, DeepSeek, Kimi и другим моделям. Для переключения достаточно изменить имя модели.

Q6: Как оценить стоимость работы модели в цикле snapshot-ref?

В браузерных задачах основная часть расходов приходится на входные токены: на каждом шаге модели передаются текст снимка и системный промпт. При оценке обращайте внимание на стоимость входных токенов и кэширования, а для сокращения снимков по возможности используйте `snapshot -i`. Актуальные цены моделей смотрите на странице APIYI docs.apiyi.com/models, а не в устаревших сторонних источниках.

Q7: Какие ограничения есть у agent-browser?

Из-за ограниченного срока действия ref агенту приходится часто создавать новые снимки, что увеличивает число шагов. Если на странице сильно не хватает информации для средств доступности, снимок может оказаться неполным. В таком случае на помощь придут CSS-селекторы, XPath или скриншоты. Кроме того, headless-браузер автоматически закрывается после часа простоя, поэтому для длительных задач нужно настроить сохранение сессии.


Ключевые выводы об agent-browser и цикле snapshot-ref

  • Что это: agent-browser — CLI на Rust с открытым исходным кодом от Vercel Labs, который позволяет агенту управлять браузером с помощью отдельных команд.
  • Основной цикл: получить снимок страницы, выполнить действие с ref и снова получить снимок для проверки. Эти три шага повторяются.
  • Главное правило ref: после перехода на другую страницу или изменения DOM необходимо заново получить снимок, прежде чем использовать ref.
  • Ошибка — это сигнал: если элемент перекрыт или недоступен, клик завершится ошибкой. Агенту следует сначала устранить препятствие, а затем повторить попытку.
  • Подключение: используйте skills get core, чтобы загрузить инструкции для установленной версии, или agent-browser mcp для подключения к MCP-клиенту.
  • Безопасность прежде всего: в продакшене включите белый список доменов, auth vault и подтверждение чувствительных операций.
  • Выбор модели: сравните модели, управляющие браузером, через единый интерфейс APIYI apiyi.com. Актуальные цены указаны на docs.apiyi.com/models.

Итоги

Главное о цикле snapshot-ref в agent-browser:

  1. Текст вместо скриншотов: снимок дерева доступности и ref помогают модели понять содержимое страницы с минимальными затратами контекста.
  2. Проверка на каждом шаге: после каждого действия считывайте состояние страницы или URL, чтобы агент не продолжал работу в неверном состоянии.
  3. Обработка ошибок: для перекрытых или недоступных элементов, проблем с областью просмотра и устаревших ref предусмотрены понятные способы решения.
  4. Простое подключение: установка через npm, встроенные skills и MCP-сервер позволяют быстро встроить инструмент в существующего агента.

Сначала вручную выполните в терминале пять команд: open, snapshot, click, get и close. Затем добавьте правила цикла в системный промпт агента и подберите модель для управления браузером на реальных рабочих страницах.

Для быстрой проверки разных моделей с agent-browser можно использовать APIYI apiyi.com. Платформа совместима с форматами интерфейсов OpenAI и Anthropic. Инструкции по подключению доступны на docs.apiyi.com, а цены на модели — на docs.apiyi.com/models.


📚 Источники

  1. GitHub — agent-browser: официальный репозиторий с открытым исходным кодом
  2. Ссылка: github.com/vercel-labs/agent-browser
  3. Описание: установка, быстрый старт, группы команд и инструкции для разработчиков

  4. Официальная документация agent-browser: полное руководство и справочник команд

  5. Ссылка: agent-browser.dev
  6. Описание: снимки, селекторы, сессии, режим CDP и механизмы безопасности

  7. Документация по безопасности agent-browser: аутентификация и контроль доступа

  8. Ссылка: agent-browser.dev/security
  9. Описание: хранилище учётных данных, белый список доменов, политики операций и границы содержимого

  10. Центр документации APIYI: подключение моделей

  11. Ссылка: docs.apiyi.com
  12. Описание: способы подключения через форматы, совместимые с OpenAI и Anthropic

  13. Страница цен на модели APIYI: актуальная стоимость моделей

  14. Ссылка: docs.apiyi.com/models
  15. Описание: актуальные цены на все модели из этой статьи указаны на данной странице

Автор: техническая команда APIYI
Технические вопросы: свяжитесь с нами на главной странице сайта APIYI apiyi.com. Дополнительные материалы по подключению доступны в центре документации docs.apiyi.com.

Похожие записи