Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Инструмент браузера ​

Инструмент браузера предоставляет агентам PRX полные возможности веб-автоматизации -- навигация по страницам, заполнение форм, клики по элементам, извлечение контента и захват скриншотов. Он использует архитектуру подключаемых бэкендов, поддерживающую три движка автоматизации, и применяет ограничения по доменам для предотвращения неконтролируемого веб-доступа.

Инструменты браузера защищены feature-гейтом и требуют browser.enabled = true в конфигурации. При включении PRX регистрирует browser и browser_open в реестре инструментов. Инструмент browser поддерживает сложные многошаговые веб-сценарии, а browser_open предоставляет упрощённый интерфейс для открытия URL и извлечения его содержимого.

PRX также включает инструменты для работы со зрением (screenshot, image, image_info), дополняющие инструмент браузера для визуальных задач. Скриншоты, полученные инструментом браузера, могут передаваться LLM с поддержкой зрения для визуального анализа.

Конфигурация ​

toml
[browser]
enabled = true
backend = "agent_browser"       # "agent_browser" | "rust_native" | "computer_use"
allowed_domains = ["github.com", "docs.rs", "*.openprx.dev", "stackoverflow.com"]
session_name = "default"        # Именованная сессия браузера для сохранения состояния

Варианты бэкендов ​

БэкендОписаниеЗависимостиЛучше всего для
agent_browserВызывает CLI agent-browser, внешний инструмент headless-браузераБинарник agent-browser в PATHОбщая веб-автоматизация, сайты с большим объёмом JavaScript
rust_nativeВстроенная Rust-реализация браузера на основе headless Chrome/ChromiumУстановленный ChromiumЛёгкая автоматизация, без внешних зависимостей
computer_useСайдкар computer-use для полного взаимодействия с рабочим столомСайдкар Anthropic computer-useВзаимодействие на уровне ОС, сложные GUI-сценарии

Ограничения по доменам ​

Список allowed_domains контролирует, к каким доменам может обращаться браузер. Сопоставление доменов поддерживает:

  • Точное совпадение: "github.com" совпадает только с github.com
  • Поддомен с подстановкой: "*.openprx.dev" совпадает с docs.openprx.dev, api.openprx.dev и т.д.
  • Без подстановки: Пустой список блокирует всю навигацию браузера
toml
[browser]
allowed_domains = [
  "github.com",
  "*.github.com",
  "docs.rs",
  "crates.io",
  "stackoverflow.com",
  "*.openprx.dev"
]

Использование ​

Инструмент browser ​

Основной инструмент browser поддерживает множество действий для сложных веб-сценариев:

Переход по URL:

json
{
  "name": "browser",
  "arguments": {
    "action": "navigate",
    "url": "https://github.com/openprx/prx"
  }
}

Заполнение поля формы:

json
{
  "name": "browser",
  "arguments": {
    "action": "fill",
    "selector": "#search-input",
    "value": "PRX documentation"
  }
}

Клик по элементу:

json
{
  "name": "browser",
  "arguments": {
    "action": "click",
    "selector": "button[type='submit']"
  }
}

Захват скриншота:

json
{
  "name": "browser",
  "arguments": {
    "action": "screenshot"
  }
}

Извлечение содержимого страницы:

json
{
  "name": "browser",
  "arguments": {
    "action": "content"
  }
}

Инструмент browser_open ​

Упрощённый инструмент для открытия URL и получения его содержимого:

json
{
  "name": "browser_open",
  "arguments": {
    "url": "https://docs.rs/tokio/latest/tokio/"
  }
}

Пример многошагового сценария ​

Типичный исследовательский сценарий может объединять несколько действий браузера:

  1. Перейти на поисковую систему
  2. Заполнить поле поиска запросом
  3. Нажать кнопку поиска
  4. Извлечь результаты со страницы
  5. Перейти к релевантному результату
  6. Извлечь подробное содержимое
  7. Сделать скриншот для визуальной справки

Параметры ​

Параметры browser ​

ПараметрТипОбязательныйПо умолчаниюОписание
actionstringДа--Действие: "navigate", "fill", "click", "screenshot", "content", "scroll", "wait", "back", "forward"
urlstringУсловно--URL для перехода (обязателен для действия "navigate")
selectorstringУсловно--CSS-селектор целевого элемента (обязателен для "fill", "click")
valuestringУсловно--Значение для заполнения (обязательно для действия "fill")
timeout_msintegerНет30000Максимальное время ожидания завершения действия

Параметры browser_open ​

ПараметрТипОбязательныйПо умолчаниюОписание
urlstringДа--URL для открытия и извлечения содержимого

Параметры инструментов зрения ​

screenshot:

ПараметрТипОбязательныйПо умолчаниюОписание
targetstringНет"screen"Что захватить: "screen" или идентификатор окна

image:

ПараметрТипОбязательныйПо умолчаниюОписание
actionstringДа--Операция с изображением: "resize", "crop", "convert"
pathstringДа--Путь к файлу изображения

image_info:

ПараметрТипОбязательныйПо умолчаниюОписание
pathstringДа--Путь к файлу изображения для проверки

Детали бэкендов ​

agent-browser ​

Бэкенд agent_browser делегирует работу внешнему CLI-инструменту agent-browser, который предоставляет среду headless-браузера на основе Chrome. Взаимодействие происходит через stdio с сообщениями JSON-RPC.

Преимущества:

  • Полное выполнение JavaScript
  • Сохранение cookies и сессий
  • Поддержка расширений

rust_native ​

Бэкенд rust_native использует Rust-привязки для прямого управления локальной установкой Chromium/Chrome. Взаимодействие осуществляется через Chrome DevTools Protocol (CDP).

Преимущества:

  • Отсутствие зависимости от внешних бинарников (помимо Chromium)
  • Меньшая задержка по сравнению с порождением подпроцесса
  • Более тесная интеграция с внутренними компонентами PRX

computer_use ​

Бэкенд computer_use использует сайдкар computer-use от Anthropic для выполнения взаимодействий на уровне ОС, включая движение мыши, ввод с клавиатуры и захват экрана. Это выходит за рамки автоматизации браузера и обеспечивает полное управление рабочим столом.

Преимущества:

  • Может взаимодействовать с нативными приложениями, а не только с браузерами
  • Поддерживает сложные GUI-сценарии
  • Обрабатывает всплывающие окна, файловые диалоги и системные подсказки

Безопасность ​

Белый список доменов ​

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

  1. URL разбирается, и извлекается имя хоста
  2. Имя хоста проверяется по allowed_domains
  3. При отсутствии совпадения навигация блокируется и возвращается ошибка

Это предотвращает доступ агента к произвольным веб-сайтам, которые могут содержать вредоносный контент или вызвать непреднамеренные действия в аутентифицированных сессиях.

Изоляция сессий ​

Сессии браузера изолированы по имени. Разные сессии агента или подагенты могут использовать отдельные контексты браузера для предотвращения утечки состояния (cookies, localStorage, данные сессии).

Ограничения извлечения контента ​

Извлечение содержимого страницы ограничено значением web_search.fetch_max_chars для предотвращения исчерпания памяти на чрезмерно больших страницах.

Политика безопасности ​

Вызовы инструмента браузера проходят через движок политик безопасности. Инструмент может быть полностью запрещён или переведён в режим наблюдения с требованием одобрения для каждой навигации:

toml
[security.tool_policy.tools]
browser = "supervised"
browser_open = "allow"

Безопасность учётных данных ​

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

Связанные разделы ​

Released under the Apache-2.0 License.