openclaw browser
Управляйте поверхностью управления браузером OpenClaw и запускайте браузерные действия (жизненный цикл, профили, вкладки, снимки, скриншоты, навигация, ввод, эмуляция состояния и отладка).
Связано:
- Инструмент браузера + API: Инструмент браузера
Общие флаги
--url <gatewayWsUrl>: URL WebSocket Gateway (по умолчанию из конфигурации).--token <token>: токен Gateway (если требуется).--timeout <ms>: тайм-аут запроса (мс).--expect-final: ожидать финальный ответ Gateway.--browser-profile <name>: выбрать профиль браузера (по умолчанию из конфигурации).--json: машиночитаемый вывод (где поддерживается).
Быстрый старт (локально)
browser({ action: "doctor" }).
Быстрое устранение неполадок
Еслиstart завершается ошибкой not reachable after start, сначала проверьте готовность CDP. Если start и tabs выполняются успешно, но open или navigate завершается ошибкой, плоскость управления браузером исправна, а сбой обычно связан с политикой SSRF для навигации.
Минимальная последовательность:
Жизненный цикл
doctor --deepдобавляет живую пробу снимка. Это полезно, когда базовая готовность CDP в порядке, но нужно доказательство, что текущую вкладку можно проверить.- Для
attachOnlyи удаленных профилей CDPopenclaw browser stopзакрывает активный сеанс управления и очищает временные переопределения эмуляции, даже если OpenClaw не запускал процесс браузера самостоятельно. - Для локальных управляемых профилей
openclaw browser stopостанавливает созданный процесс браузера. openclaw browser start --headlessприменяется только к этому запросу запуска и только когда OpenClaw запускает локальный управляемый браузер. Он не переписываетbrowser.headlessили конфигурацию профиля и ничего не делает для уже запущенного браузера.- На хостах Linux без
DISPLAYилиWAYLAND_DISPLAYлокальные управляемые профили автоматически запускаются в headless-режиме, если толькоOPENCLAW_BROWSER_HEADLESS=0,browser.headless=falseилиbrowser.profiles.<name>.headless=falseявно не запрашивает видимый браузер.
Если команда отсутствует
Еслиopenclaw browser является неизвестной командой, проверьте plugins.allow в
~/.openclaw/openclaw.json.
Когда plugins.allow присутствует, явно укажите встроенный Plugin браузера,
если в конфигурации уже нет корневого блока browser:
browser, например browser.enabled=true или
browser.profiles.<name>, также активирует встроенный Plugin браузера при
ограничительном списке разрешенных Plugins.
Связано: Инструмент браузера
Профили
Профили — это именованные конфигурации маршрутизации браузера. На практике:openclaw: запускает выделенный экземпляр Chrome, управляемый OpenClaw, или подключается к нему (изолированный каталог пользовательских данных).user: управляет существующим сеансом Chrome с выполненным входом через Chrome DevTools MCP.- пользовательские профили CDP: указывают на локальную или удаленную конечную точку CDP.
Вкладки
tabs сначала возвращает suggestedTargetId, затем стабильный tabId, например t1,
необязательную метку и необработанный targetId. Агенты должны передавать
suggestedTargetId обратно в focus, close, снимки и действия. Метку можно
назначить с помощью open --label, tab new --label или tab label; принимаются
метки, идентификаторы вкладок, необработанные идентификаторы целей и уникальные
префиксы идентификаторов целей.
Поле запроса по-прежнему называется targetId для совместимости, но оно принимает
эти ссылки на вкладки. Рассматривайте необработанные идентификаторы целей как
диагностические дескрипторы, а не как долговременную память агента.
Когда Chromium заменяет базовую необработанную цель во время навигации или отправки формы,
OpenClaw сохраняет стабильный tabId/метку за заменяющей вкладкой,
если может доказать соответствие. Необработанные идентификаторы целей остаются изменчивыми; предпочитайте
suggestedTargetId.
Снимок / скриншот / действия
Снимок:--full-pageпредназначен только для снимков страниц; его нельзя сочетать с--refили--element.- Профили
existing-session/userподдерживают скриншоты страниц и скриншоты--refиз вывода снимка, но не CSS-скриншоты--element. --labelsнакладывает текущие ссылки снимка на скриншот. В профилях на базе Playwright это работает с--full-page(наложение меток на всю страницу),--ref(наложение меток на вырезанный элемент по ARIA-ссылке) и--element(наложение меток на вырезанный элемент по CSS-селектору); в режимах вырезания элемента метки проецируются относительно элемента. Ответ также включает массивannotationsс рамкой каждого ref. Каждый элемент содержитref,number,role, необязательноеnameиbox: {x, y, width, height}; координаты указаны в пространстве захваченного изображения (viewport / fullpage / относительно элемента). Поле опускается, когда оно пустое. Профилиexisting-sessionотображают наложение chrome-mcp на скриншотах страниц, но не используют вспомогательный механизм проекции Playwright и не включаютannotations; CSS-скриншоты--elementтам не поддерживаются. Без Playwright или chrome-mcp скриншоты с метками недоступны. Предыдущие выпуски игнорировали--full-page,--refи--elementна скриншотах Playwright с метками и всегда возвращали захват viewport; теперь скриншоты с метками учитывают эти области.snapshot --urlsдобавляет найденные назначения ссылок к AI-снимкам, чтобы агенты могли выбирать прямые цели навигации, а не угадывать только по тексту ссылок.
evaluate --fn принимает исходный код функции, выражение или тело оператора.
Тела операторов оборачиваются как асинхронные функции, поэтому используйте return для значения,
которое хотите получить обратно. Используйте evaluate --timeout-ms <ms>, когда функция на стороне страницы может
требовать больше времени, чем стандартный тайм-аут evaluate.
Ответы действий возвращают текущий необработанный targetId после замены страницы,
вызванной действием, когда OpenClaw может доказать заменяющую вкладку. Скрипты все равно должны
сохранять и передавать suggestedTargetId/метки для долговременных рабочих процессов.
Помощники файлов и диалогов:
/tmp/openclaw/downloads по умолчанию или настроенный временный корень).
Используйте waitfordownload или download, когда агенту нужно дождаться
конкретного файла и вернуть его путь; эти явные ожидатели владеют следующей загрузкой.
Загрузки файлов принимают файлы из временного корня загрузок OpenClaw и управляемые OpenClaw
входящие медиа, включая ссылки media://inbound/<id> и относительные к sandbox
media/inbound/<id>. Вложенные ссылки media, обход путей и произвольные
локальные пути по-прежнему отклоняются.
Когда действие открывает модальный диалог, ответ действия возвращает
blockedByDialog с browserState.dialogs.pending; передайте --dialog-id, чтобы
ответить на него напрямую. Диалоги, обработанные вне OpenClaw, появляются в
browserState.dialogs.recent.
Состояние и хранилище
Viewport + эмуляция:Отладка
Существующий Chrome через MCP
Используйте встроенный профильuser или создайте собственный профиль existing-session:
--cdp-url, чтобы Chrome MCP подключился к этой конечной точке вместо этого.
Для Docker, Browserless или других удаленных настроек, где семантика Chrome MCP не нужна, используйте
профиль CDP.
Текущие ограничения existing-session:
- действия на основе снимков используют refs, а не CSS-селекторы
browser.actionTimeoutMsзадает по умолчанию для поддерживаемых запросовactзначение 60000 мс, когда вызывающие стороны не указываютtimeoutMs;timeoutMsдля отдельного вызова по-прежнему имеет приоритет.clickвыполняет только щелчок левой кнопкойtypeне поддерживаетslowly=truepressне поддерживаетdelayMshover,scrollintoview,drag,select,fillиevaluateотклоняют переопределения тайм-аута для отдельного вызоваselectподдерживает только одно значениеwait --load networkidleне поддерживается для профилей существующих сеансов (работает с управляемыми и raw/remote CDP)- загрузка файлов требует
--ref/--input-ref, не поддерживает CSS--elementи сейчас поддерживает только один файл за раз - хуки диалогов не поддерживают
--timeout - снимки экрана поддерживают захват страницы и
--ref, но не CSS--element responsebody, перехват загрузок, экспорт PDF и пакетные действия по-прежнему требуют управляемый браузер или профиль raw CDP
Удаленное управление браузером (прокси хоста узла)
Если Gateway работает на другой машине, чем браузер, запустите хост узла на машине с Chrome/Brave/Edge/Chromium. Gateway будет проксировать действия браузера на этот узел (отдельный сервер управления браузером не требуется). Используйтеgateway.nodes.browser.mode, чтобы управлять автоматической маршрутизацией, и gateway.nodes.browser.node, чтобы закрепить конкретный узел, если подключено несколько.
Безопасность + удаленная настройка: Инструмент браузера, Удаленный доступ, Tailscale, Безопасность