Tools
Browser (управляемый OpenClaw)
OpenClaw может запускать выделенный профиль Chrome/Brave/Edge/Chromium, которым управляет агент. Он изолирован от вашего личного браузера и управляется через небольшой локальный сервис управления внутри Gateway (только loopback).
Вид для начинающих:
- Думайте о нем как об отдельном браузере только для агента.
- Профиль
openclawне затрагивает ваш личный профиль браузера. - Агент может открывать вкладки, читать страницы, нажимать и вводить текст в безопасном контуре.
- Встроенный профиль
userподключается к вашему реальному сеансу Chrome с выполненным входом через Chrome MCP.
Что вы получаете
- Отдельный профиль браузера с именем openclaw (по умолчанию с оранжевым акцентом).
- Детерминированное управление вкладками (список/открытие/фокус/закрытие).
- Действия агента (нажатие/ввод/перетаскивание/выбор), снимки состояния, скриншоты, PDF.
- Встроенный Skill
browser-automation, который обучает агентов циклу восстановления по снимкам состояния, стабильным вкладкам, устаревшим ссылкам и ручным блокерам, когда включен браузерный Plugin. - Необязательная поддержка нескольких профилей (
openclaw,work,remote, ...).
Этот браузер не предназначен для ежедневного использования. Это безопасная, изолированная поверхность для автоматизации и проверки агентом.
Быстрый старт
openclaw browser --browser-profile openclaw doctoropenclaw browser --browser-profile openclaw doctor --deepopenclaw browser --browser-profile openclaw statusopenclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw open https://example.comopenclaw browser --browser-profile openclaw snapshotЕсли вы видите "Browser disabled", включите браузер в конфигурации (см. ниже) и перезапустите Gateway.
Если openclaw browser полностью отсутствует или агент сообщает, что браузерный инструмент
недоступен, перейдите к разделу Отсутствует команда или инструмент браузера.
Управление Plugin
Инструмент browser по умолчанию является встроенным Plugin. Отключите его, чтобы заменить другим Plugin, который регистрирует то же имя инструмента browser:
{ plugins: { entries: { browser: { enabled: false, }, }, },}Для настроек по умолчанию нужны и plugins.entries.browser.enabled, и browser.enabled=true. Отключение только Plugin удаляет CLI openclaw browser, метод Gateway browser.request, инструмент агента и сервис управления как единое целое; ваша конфигурация browser.* остается нетронутой для замены.
Изменения конфигурации браузера требуют перезапуска Gateway, чтобы Plugin мог заново зарегистрировать свой сервис.
Инструкции для агента
Примечание о профиле инструментов: tools.profile: "coding" включает web_search и
web_fetch, но не включает полный инструмент browser. Если агент или
порожденный субагент должен использовать автоматизацию браузера, добавьте браузер на этапе
профиля:
{ tools: { profile: "coding", alsoAllow: ["browser"], },}Для одного агента используйте agents.list[].tools.alsoAllow: ["browser"].
Одного tools.subagents.tools.allow: ["browser"] недостаточно, потому что политика субагентов
применяется после фильтрации профиля.
Браузерный Plugin поставляется с двумя уровнями инструкций для агента:
- Описание инструмента
browserсодержит компактный постоянно действующий контракт: выбирайте правильный профиль, удерживайте ссылки на той же вкладке, используйтеtabId/метки для нацеливания на вкладки и загружайте браузерный Skill для многошаговой работы. - Встроенный Skill
browser-automationсодержит более длинный рабочий цикл: сначала проверять статус/вкладки, помечать вкладки задачи, делать снимок состояния перед действием, повторно делать снимок состояния после изменений UI, один раз восстанавливать устаревшие ссылки и сообщать о блокерах входа/2FA/captcha или камеры/микрофона как о ручном действии, а не гадать.
Skills, встроенные в Plugin, перечислены в доступных Skills агента, когда Plugin включен. Полные инструкции Skill загружаются по требованию, поэтому обычные ходы не оплачивают полную стоимость в токенах.
Отсутствует команда или инструмент браузера
Если после обновления openclaw browser неизвестна, browser.request отсутствует или агент сообщает, что браузерный инструмент недоступен, обычная причина — список plugins.allow, в котором нет browser, и отсутствие корневого блока конфигурации browser. Добавьте его:
{ plugins: { allow: ["telegram", "browser"], },}Явный корневой блок browser, например browser.enabled=true или browser.profiles.<name>, активирует встроенный браузерный Plugin даже при ограничительном plugins.allow, что соответствует поведению конфигурации каналов. plugins.entries.browser.enabled=true и tools.alsoAllow: ["browser"] сами по себе не заменяют членство в списке разрешений. Полное удаление plugins.allow также восстанавливает поведение по умолчанию.
Профили: openclaw и user
openclaw: управляемый, изолированный браузер (расширение не требуется).user: встроенный профиль подключения Chrome MCP для вашего реального сеанса Chrome с выполненным входом.
Для вызовов браузерного инструмента агентом:
- По умолчанию: используйте изолированный браузер
openclaw. - Предпочитайте
profile="user", когда важны существующие сеансы с выполненным входом и пользователь находится за компьютером, чтобы нажать/одобрить любой запрос подключения. profile— это явное переопределение, когда нужен конкретный режим браузера.
Задайте browser.defaultProfile: "openclaw", если хотите по умолчанию использовать управляемый режим.
Конфигурация
Настройки браузера находятся в ~/.openclaw/openclaw.json.
{ browser: { enabled: true, // default: true ssrfPolicy: { // dangerouslyAllowPrivateNetwork: true, // opt in only for trusted private-network access // allowPrivateNetwork: true, // legacy alias // hostnameAllowlist: ["*.example.com", "example.com"], // allowedHostnames: ["localhost"], }, // cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms) remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms) localLaunchTimeoutMs: 15000, // local managed Chrome discovery timeout (ms) localCdpReadyTimeoutMs: 8000, // local managed post-launch CDP readiness timeout (ms) actionTimeoutMs: 60000, // default browser act timeout (ms) tabCleanup: { enabled: true, // default: true idleMinutes: 120, // set 0 to disable idle cleanup maxTabsPerSession: 8, // set 0 to disable the per-session cap sweepMinutes: 5, }, defaultProfile: "openclaw", color: "#FF4500", headless: false, noSandbox: false, attachOnly: false, executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser", profiles: { openclaw: { cdpPort: 18800, color: "#FF4500" }, work: { cdpPort: 18801, color: "#0066CC", headless: true, executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", }, user: { driver: "existing-session", attachOnly: true, color: "#00AA00", }, brave: { driver: "existing-session", attachOnly: true, userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser", color: "#FB542B", }, remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" }, }, },}Визуальное распознавание скриншотов (поддержка текстовых моделей)
Когда основная модель является только текстовой (без поддержки зрения/мультимодальности), браузерные скриншоты возвращают блоки изображений, которые модель не может читать. Браузерные скриншоты переиспользуют существующую конфигурацию понимания изображений, поэтому модель изображений, настроенная для понимания медиа, может описывать скриншоты как текст без каких-либо специальных настроек модели для браузера.
{ tools: { media: { image: { models: [ { provider: "bytedance", model: "doubao-seed-2.0-pro" }, // Add fallback candidates; first success wins { provider: "openai", model: "gpt-4o" }, ], }, // Shared media models also work when tagged for image support. // models: [{ provider: "openai", model: "gpt-4o", capabilities: ["image"] }], }, }, agents: { defaults: { // Existing image-model defaults are also honored. // imageModel: { primary: "openai/gpt-4o" }, }, },}Как это работает:
- Агент вызывает
browser screenshot→ изображение как обычно сохраняется на диск. - Браузерный инструмент спрашивает существующий runtime понимания изображений, может ли он описать скриншот с помощью настроенных медиа-моделей изображений, общих медиа-моделей, настроек по умолчанию для модели изображений или поставщика изображений с авторизацией.
- Модель зрения возвращает текстовое описание, которое оборачивается через
wrapExternalContent(защита от prompt injection) и возвращается агенту как текстовый блок вместо блока изображения. - Если понимание изображений недоступно, пропущено или завершается с ошибкой, браузер возвращается к исходному блоку изображения.
Используйте существующие поля tools.media.image / tools.media.models для резервных
моделей, тайм-аутов, лимитов байтов, профилей и настроек запросов к поставщику.
Если активная основная модель уже поддерживает зрение и явная модель понимания изображений не настроена, OpenClaw сохраняет обычный результат изображения, чтобы основная модель могла читать скриншот напрямую.
Порты и доступность
- Сервис управления привязывается к loopback на порту, производном от
gateway.port(по умолчанию18791= gateway + 2). Переопределениеgateway.portилиOPENCLAW_GATEWAY_PORTсдвигает производные порты в том же семействе. - Локальные профили
openclawавтоматически назначаютcdpPort/cdpUrl; задавайте их только для удаленных профилей CDP или подключения к endpoint существующего сеанса.cdpUrlпо умолчанию указывает на управляемый локальный порт CDP, если не задан. remoteCdpTimeoutMsприменяется к проверкам HTTP-доступности удаленного CDP иattachOnly, а также к HTTP-запросам открытия вкладок;remoteCdpHandshakeTimeoutMsприменяется к их WebSocket-рукопожатиям CDP.localLaunchTimeoutMs— это бюджет времени для локально запущенного управляемого процесса Chrome, чтобы открыть свой HTTP endpoint CDP.localCdpReadyTimeoutMs— это последующий бюджет для готовности WebSocket CDP после обнаружения процесса. Увеличьте эти значения на Raspberry Pi, слабых VPS или старом оборудовании, где Chromium запускается медленно. Значения должны быть положительными целыми числами до120000мс; недопустимые значения конфигурации отклоняются.- Повторяющиеся сбои запуска/готовности управляемого Chrome размыкаются предохранителем для каждого профиля. После нескольких последовательных сбоев OpenClaw ненадолго приостанавливает новые попытки запуска вместо того, чтобы порождать Chromium при каждом вызове браузерного инструмента. Исправьте проблему запуска, отключите браузер, если он не нужен, или перезапустите Gateway после исправления.
actionTimeoutMs— это бюджет по умолчанию для браузерных запросовact, когда вызывающий код не передаетtimeoutMs. Клиентский транспорт добавляет небольшое окно запаса, чтобы долгие ожидания могли завершиться, а не прерывались тайм-аутом на границе HTTP.tabCleanup— это очистка наилучшим усилием для вкладок, открытых браузерными сеансами основного агента. Очистка жизненного цикла субагентов, cron и ACP по-прежнему закрывает их явно отслеживаемые вкладки в конце сеанса; основные сеансы сохраняют активные вкладки переиспользуемыми, а затем в фоне закрывают простаивающие или лишние отслеживаемые вкладки.
Политика SSRF
- Навигация браузера и открытие вкладок защищаются от SSRF до навигации и по мере возможности повторно проверяются после нее на итоговом URL
http(s). - В строгом режиме SSRF также проверяются обнаружение удаленной конечной точки CDP и пробы
/json/version(cdpUrl). - Переменные окружения Gateway/провайдера
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYиNO_PROXYне проксируют автоматически браузер, управляемый OpenClaw. Управляемый Chrome по умолчанию запускается напрямую, чтобы настройки прокси провайдера не ослабляли проверки SSRF браузера. - Локальные пробы готовности CDP, управляемые OpenClaw, и WebSocket-подключения DevTools обходят управляемый сетевой прокси для точной запущенной конечной точки loopback, поэтому
openclaw browser startпродолжает работать, когда операторский прокси блокирует исходящий трафик loopback. - Чтобы проксировать сам управляемый браузер, передайте явные флаги прокси Chrome через
browser.extraArgs, например--proxy-server=...или--proxy-pac-url=.... Строгий режим SSRF блокирует явную маршрутизацию браузера через прокси, если доступ браузера к частной сети не включен намеренно. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkпо умолчанию отключен; включайте только когда доступ браузера к частной сети намеренно считается доверенным.browser.ssrfPolicy.allowPrivateNetworkостается поддерживаемым как устаревший псевдоним.
Profile behavior
attachOnly: trueозначает никогда не запускать локальный браузер; только подключаться, если он уже запущен.headlessможно задать глобально или для каждого локального управляемого профиля. Значения профиля переопределяютbrowser.headless, поэтому один локально запущенный профиль может оставаться headless, а другой - видимым.POST /start?headless=trueиopenclaw browser start --headlessзапрашивают одноразовый headless-запуск для локальных управляемых профилей без перезаписиbrowser.headlessили конфигурации профиля. Профили существующего сеанса, attach-only и удаленные CDP-профили отклоняют это переопределение, потому что OpenClaw не запускает эти браузерные процессы.- На Linux-хостах без
DISPLAYилиWAYLAND_DISPLAYлокальные управляемые профили автоматически по умолчанию используют headless-режим, когда ни окружение, ни профиль/глобальная конфигурация явно не выбирают headed-режим.openclaw browser status --jsonсообщаетheadlessSourceкакenv,profile,config,request,linux-display-fallbackилиdefault. OPENCLAW_BROWSER_HEADLESS=1принудительно запускает локальные управляемые браузеры в headless-режиме для текущего процесса.OPENCLAW_BROWSER_HEADLESS=0принудительно включает headed-режим для обычных запусков и возвращает применимую ошибку на Linux-хостах без сервера отображения; явный запросstart --headlessвсе равно имеет приоритет для этого одного запуска.executablePathможно задать глобально или для каждого локального управляемого профиля. Значения профиля переопределяютbrowser.executablePath, поэтому разные управляемые профили могут запускать разные браузеры на базе Chromium. Обе формы принимают~для домашнего каталога вашей ОС.color(верхнего уровня и для профиля) окрашивает UI браузера, чтобы вы могли видеть, какой профиль активен.- Профиль по умолчанию -
openclaw(управляемый автономный). ИспользуйтеdefaultProfile: "user", чтобы выбрать браузер вошедшего в систему пользователя. - Порядок автообнаружения: системный браузер по умолчанию, если он на базе Chromium; иначе Chrome → Brave → Edge → Chromium → Chrome Canary.
driver: "existing-session"использует Chrome DevTools MCP вместо сырого CDP. Он может подключаться через авто подключение Chrome MCP или черезcdpUrl, если у вас уже есть конечная точка DevTools для запущенного браузера.- Задайте
browser.profiles.<name>.userDataDir, когда профиль existing-session должен подключаться к пользовательскому профилю Chromium не по умолчанию (Brave, Edge и т. д.). Этот путь также принимает~для домашнего каталога вашей ОС.
Использование Brave или другого браузера на базе Chromium
Если ваш системный браузер по умолчанию основан на Chromium (Chrome/Brave/Edge/и т. д.),
OpenClaw использует его автоматически. Задайте browser.executablePath, чтобы переопределить
автообнаружение. Значения executablePath верхнего уровня и для профиля принимают ~
для домашнего каталога вашей ОС:
openclaw config set browser.executablePath "/usr/bin/google-chrome"openclaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"Или задайте это в конфигурации для каждой платформы:
macOS
{browser: {executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",},}Windows
{browser: {executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe",},}Linux
{browser: {executablePath: "/usr/bin/brave-browser",},}executablePath для профиля влияет только на локальные управляемые профили, которые OpenClaw
запускает. Профили existing-session вместо этого подключаются к уже запущенному браузеру,
а удаленные CDP-профили используют браузер за cdpUrl.
Локальное и удаленное управление
- Локальное управление (по умолчанию): Gateway запускает службу управления loopback и может запускать локальный браузер.
- Удаленное управление (Node-хост): запустите Node-хост на машине, где находится браузер; Gateway проксирует действия браузера к нему.
- Удаленный CDP: задайте
browser.profiles.<name>.cdpUrl(илиbrowser.cdpUrl), чтобы подключиться к удаленному браузеру на базе Chromium. В этом случае OpenClaw не будет запускать локальный браузер. - Для внешне управляемых CDP-сервисов на loopback (например, Browserless в
Docker, опубликованный на
127.0.0.1) также задайтеattachOnly: true. CDP на loopback безattachOnlyсчитается локальным профилем браузера, управляемым OpenClaw. headlessвлияет только на локальные управляемые профили, которые запускает OpenClaw. Он не перезапускает и не меняет браузеры existing-session или удаленные CDP-браузеры.executablePathследует тому же правилу локального управляемого профиля. Изменение его для запущенного локального управляемого профиля помечает этот профиль для перезапуска/согласования, чтобы следующий запуск использовал новый бинарный файл.
Поведение остановки зависит от режима профиля:
- локальные управляемые профили:
openclaw browser stopостанавливает процесс браузера, который запустил OpenClaw - профили attach-only и удаленные CDP-профили:
openclaw browser stopзакрывает активный сеанс управления и освобождает переопределения эмуляции Playwright/CDP (viewport, цветовую схему, локаль, часовой пояс, offline-режим и подобное состояние), даже если OpenClaw не запускал процесс браузера
Удаленные CDP URL могут включать auth:
- Токены запроса (например,
https://provider.example?token=<token>) - HTTP Basic auth (например,
https://user:pass@provider.example)
OpenClaw сохраняет auth при вызове конечных точек /json/* и при подключении
к CDP WebSocket. Для токенов предпочитайте переменные окружения или менеджеры секретов
вместо коммита их в конфигурационные файлы.
Прокси браузера Node (нулевая конфигурация по умолчанию)
Если вы запускаете Node-хост на машине, где находится ваш браузер, OpenClaw может автоматически маршрутизировать вызовы браузерных инструментов к этому Node без дополнительной конфигурации браузера. Это путь по умолчанию для удаленных Gateway.
Примечания:
- Node-хост предоставляет свой локальный сервер управления браузером через прокси-команду.
- Профили берутся из собственной конфигурации
browser.profilesNode (такой же, как локальная). nodeHost.browserProxy.allowProfilesнеобязателен. Оставьте его пустым для устаревшего/стандартного поведения: все настроенные профили остаются доступными через прокси, включая маршруты создания/удаления профилей.- Если вы задаете
nodeHost.browserProxy.allowProfiles, OpenClaw рассматривает это как границу минимальных привилегий: целевыми могут быть только профили из allowlist, а маршруты постоянного создания/удаления профилей блокируются на поверхности прокси. - Отключите, если это не нужно:
- На Node:
nodeHost.browserProxy.enabled=false - На Gateway:
gateway.nodes.browser.mode="off"
- На Node:
Browserless (размещенный удаленный CDP)
Browserless - размещенный Chromium-сервис, который предоставляет URL подключения CDP по HTTPS и WebSocket. OpenClaw может использовать любую форму, но для удаленного профиля браузера самый простой вариант - прямой WebSocket URL из документации Browserless по подключению.
Пример:
{ browser: { enabled: true, defaultProfile: "browserless", remoteCdpTimeoutMs: 2000, remoteCdpHandshakeTimeoutMs: 4000, profiles: { browserless: { cdpUrl: "wss://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>", color: "#00AA00", }, }, },}Примечания:
- Замените
<BROWSERLESS_API_KEY>на ваш настоящий токен Browserless. - Выберите конечную точку региона, соответствующую вашей учетной записи Browserless (см. их документацию).
- Если Browserless дает вам базовый HTTPS URL, вы можете либо преобразовать его в
wss://для прямого CDP-подключения, либо оставить HTTPS URL и позволить OpenClaw обнаружить/json/version.
Browserless Docker на том же хосте
Когда Browserless самостоятельно размещен в Docker, а OpenClaw работает на хосте, рассматривайте Browserless как внешне управляемый CDP-сервис:
{ browser: { enabled: true, defaultProfile: "browserless", profiles: { browserless: { cdpUrl: "ws://127.0.0.1:3000", attachOnly: true, color: "#00AA00", }, }, },}Адрес в browser.profiles.browserless.cdpUrl должен быть доступен из процесса
OpenClaw. Browserless также должен объявлять соответствующую достижимую конечную точку;
задайте Browserless EXTERNAL на ту же базу WebSocket, публичную для OpenClaw, например
ws://127.0.0.1:3000, ws://browserless:3000 или стабильный частный адрес сети
Docker. Если /json/version возвращает webSocketDebuggerUrl, указывающий на
адрес, недоступный OpenClaw, CDP HTTP может выглядеть исправным, а подключение
WebSocket все равно будет завершаться ошибкой.
Не оставляйте attachOnly незаданным для профиля Browserless на loopback. Без
attachOnly OpenClaw считает порт loopback локальным управляемым профилем
браузера и может сообщать, что порт используется, но не принадлежит OpenClaw.
Провайдеры прямого WebSocket CDP
Некоторые размещенные браузерные сервисы предоставляют прямую WebSocket конечную точку, а не
стандартное обнаружение CDP на основе HTTP (/json/version). OpenClaw принимает три
формы CDP URL и автоматически выбирает правильную стратегию подключения:
- Обнаружение HTTP(S) -
http://host[:port]илиhttps://host[:port]. OpenClaw вызывает/json/version, чтобы обнаружить URL WebSocket-отладчика, затем подключается. Без отката на WebSocket. - Прямые WebSocket-конечные точки -
ws://host[:port]/devtools/<kind>/<id>илиwss://...с путем/devtools/browser|page|worker|shared_worker|service_worker/<id>. OpenClaw подключается напрямую через WebSocket-handshake и полностью пропускает/json/version. - Голые корни WebSocket -
ws://host[:port]илиwss://host[:port]без пути/devtools/...(например, Browserless, Browserbase). OpenClaw сначала пробует HTTP обнаружение/json/version(нормализуя схему кhttp/https); если обнаружение возвращаетwebSocketDebuggerUrl, он используется, иначе OpenClaw откатывается к прямому WebSocket-handshake на голом корне. Если объявленная WebSocket-конечная точка отклоняет CDP-handshake, но настроенный голый корень принимает его, OpenClaw также откатывается к этому корню. Это позволяет голомуws://, указывающему на локальный Chrome, все равно подключиться, поскольку Chrome принимает WebSocket upgrade только на конкретном пути цели из/json/version, тогда как размещенные провайдеры могут все равно использовать свою корневую WebSocket-конечную точку, когда их конечная точка обнаружения объявляет краткоживущий URL, неподходящий для Playwright CDP.
openclaw browser doctor использует ту же логику «сначала обнаружение, затем откат на WebSocket»,
что и runtime-подключение, поэтому URL голого корня, который успешно подключается, не
помечается диагностикой как недоступный.
Browserbase
Browserbase - облачная платформа для запуска headless-браузеров со встроенным решением CAPTCHA, stealth-режимом и резидентскими прокси.
{ browser: { enabled: true, defaultProfile: "browserbase", remoteCdpTimeoutMs: 3000, remoteCdpHandshakeTimeoutMs: 5000, profiles: { browserbase: { cdpUrl: "wss://connect.browserbase.com?apiKey=<BROWSERBASE_API_KEY>", color: "#F97316", }, }, },}Примечания:
- Зарегистрируйтесь и скопируйте ваш API Key из панели Overview.
- Замените
<BROWSERBASE_API_KEY>на ваш настоящий API-ключ Browserbase. - Browserbase автоматически создает браузерную сессию при подключении WebSocket, поэтому шаг ручного создания сессии не нужен.
- Бесплатный тариф позволяет одну одновременную сессию и один браузерный час в месяц. См. тарифы, чтобы узнать лимиты платных планов.
- См. документацию Browserbase для полного справочника API, руководств по SDK и примеров интеграции.
Notte
Notte - облачная платформа для запуска headless- браузеров со встроенной маскировкой, residential-прокси и CDP-нативным WebSocket-Gateway.
{ browser: { enabled: true, defaultProfile: "notte", remoteCdpTimeoutMs: 3000, remoteCdpHandshakeTimeoutMs: 5000, profiles: { notte: { cdpUrl: "wss://us-prod.notte.cc/sessions/connect?token=<NOTTE_API_KEY>", color: "#7C3AED", }, }, },}Примечания:
- Зарегистрируйтесь и скопируйте ваш API Key со страницы настроек консоли.
- Замените
<NOTTE_API_KEY>на ваш настоящий API-ключ Notte. - Notte автоматически создает браузерную сессию при подключении WebSocket, поэтому шаг ручного создания сессии не нужен. Сессия уничтожается при отключении WebSocket.
- Бесплатный тариф позволяет пять одновременных сессий и 100 браузерных часов за все время. См. тарифы, чтобы узнать лимиты платных планов.
- См. документацию Notte для полного справочника API, руководств по SDK и примеров интеграции.
Безопасность
Ключевые идеи:
- Управление браузером доступно только через local loopback; доступ проходит через аутентификацию Gateway или сопряжение узла.
- Автономный HTTP API браузера через local loopback использует только аутентификацию общим секретом:
bearer-аутентификацию токеном Gateway,
x-openclaw-passwordили HTTP Basic auth с настроенным паролем Gateway. - Заголовки идентичности Tailscale Serve и
gateway.auth.mode: "trusted-proxy"не аутентифицируют этот автономный API браузера через local loopback. - Если управление браузером включено, а аутентификация общим секретом не настроена, OpenClaw
генерирует токен Gateway только для времени выполнения при этом запуске. Явно настройте
gateway.auth.token,gateway.auth.password,OPENCLAW_GATEWAY_TOKENилиOPENCLAW_GATEWAY_PASSWORD, если клиентам нужен стабильный секрет между перезапусками. - OpenClaw не генерирует этот токен автоматически, когда
gateway.auth.modeуже равенpassword,noneилиtrusted-proxy. - Держите Gateway и любые узловые хосты в частной сети (Tailscale); избегайте публичного доступа.
- Считайте удаленные CDP URL/токены секретами; предпочитайте переменные окружения или менеджер секретов.
Советы по удаленному CDP:
- По возможности предпочитайте зашифрованные конечные точки (HTTPS или WSS) и короткоживущие токены.
- Не встраивайте долгоживущие токены напрямую в файлы конфигурации.
Профили (несколько браузеров)
OpenClaw поддерживает несколько именованных профилей (конфигураций маршрутизации). Профили могут быть:
- управляемые OpenClaw: выделенный экземпляр браузера на основе Chromium с собственным каталогом пользовательских данных + CDP-портом
- удаленные: явный CDP URL (браузер на основе Chromium, запущенный в другом месте)
- существующая сессия: ваш существующий профиль Chrome через автоматическое подключение Chrome DevTools MCP
Значения по умолчанию:
- Профиль
openclawсоздается автоматически, если отсутствует. - Профиль
userвстроен для подключения к существующей сессии Chrome MCP. - Профили существующих сессий, кроме
user, включаются явно; создайте их с--driver existing-session. - Локальные CDP-порты по умолчанию выделяются из диапазона 18800-18899.
- Удаление профиля перемещает его локальный каталог данных в Корзину.
Все конечные точки управления принимают ?profile=<name>; CLI использует --browser-profile.
Существующая сессия через Chrome DevTools MCP
OpenClaw также может подключаться к запущенному профилю браузера на основе Chromium через официальный сервер Chrome DevTools MCP. При этом повторно используются вкладки и состояние входа, уже открытые в этом профиле браузера.
Официальные справочные материалы и инструкции по настройке:
- Chrome для разработчиков: используйте Chrome DevTools MCP с вашей браузерной сессией
- README Chrome DevTools MCP
Встроенный профиль:
user
Необязательно: создайте собственный пользовательский профиль существующей сессии, если вам нужно другое имя, цвет или каталог данных браузера.
Поведение по умолчанию:
- Встроенный профиль
userиспользует автоматическое подключение Chrome MCP, которое нацелено на стандартный локальный профиль Google Chrome.
Используйте userDataDir для Brave, Edge, Chromium или нестандартного профиля Chrome.
~ раскрывается в домашний каталог вашей ОС:
{ browser: { profiles: { brave: { driver: "existing-session", attachOnly: true, userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser", color: "#FB542B", }, }, },}Затем в соответствующем браузере:
- Откройте страницу инспектирования этого браузера для удаленной отладки.
- Включите удаленную отладку.
- Оставьте браузер запущенным и подтвердите запрос на подключение, когда OpenClaw подключится.
Распространенные страницы инспектирования:
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
Smoke-тест живого подключения:
openclaw browser --browser-profile user startopenclaw browser --browser-profile user statusopenclaw browser --browser-profile user tabsopenclaw browser --browser-profile user snapshot --format aiКак выглядит успешный результат:
statusпоказываетdriver: existing-sessionstatusпоказываетtransport: chrome-mcpstatusпоказываетrunning: truetabsперечисляет уже открытые вкладки вашего браузераsnapshotвозвращает ссылки из выбранной живой вкладки
Что проверить, если подключение не работает:
- целевой браузер на основе Chromium имеет версию
144+ - удаленная отладка включена на странице инспектирования этого браузера
- браузер показал запрос согласия на подключение, и вы его приняли
- если Chrome был запущен с явным
--remote-debugging-port, задайтеbrowser.profiles.<name>.cdpUrlна эту конечную точку DevTools вместо использования автоматического подключения Chrome MCP openclaw doctorпереносит старую конфигурацию браузера на основе расширения и проверяет, что Chrome установлен локально для стандартных профилей автоматического подключения, но не может включить за вас удаленную отладку на стороне браузера
Использование агентом:
- Используйте
profile="user", когда вам нужно состояние браузера, в котором пользователь вошел в систему. - Если вы используете пользовательский профиль существующей сессии, передайте это явное имя профиля.
- Выбирайте этот режим только когда пользователь находится за компьютером, чтобы подтвердить запрос на подключение.
- Gateway или узловой хост может запустить
npx chrome-devtools-mcp@latest --autoConnect
Примечания:
- Этот путь рискованнее, чем изолированный профиль
openclaw, потому что он может действовать внутри вашей браузерной сессии с выполненным входом. - OpenClaw не запускает браузер для этого драйвера; он только подключается.
- Здесь OpenClaw использует официальный поток Chrome DevTools MCP
--autoConnect. Если заданuserDataDir, он передается дальше, чтобы выбрать этот каталог пользовательских данных. - Existing-session может подключаться на выбранном хосте или через подключенный браузерный узел. Если Chrome находится в другом месте и браузерный узел не подключен, используйте удаленный CDP или узловой хост.
Пользовательский запуск Chrome MCP
Переопределите запускаемый сервер Chrome DevTools MCP для каждого профиля, когда стандартный
поток npx chrome-devtools-mcp@latest не подходит (офлайн-хосты,
закрепленные версии, поставляемые вендором бинарные файлы):
| Поле | Что оно делает |
|---|---|
mcpCommand |
Исполняемый файл для запуска вместо npx. Разрешается как есть; абсолютные пути учитываются. |
mcpArgs |
Массив аргументов, передаваемый дословно в mcpCommand. Заменяет стандартные аргументы chrome-devtools-mcp@latest --autoConnect. |
Когда cdpUrl задан в профиле существующей сессии, OpenClaw пропускает
--autoConnect и автоматически передает конечную точку в Chrome MCP:
http(s)://...→--browserUrl <url>(HTTP-конечная точка обнаружения DevTools).ws(s)://...→--wsEndpoint <url>(прямой CDP WebSocket).
Флаги конечной точки и userDataDir нельзя комбинировать: когда задан cdpUrl,
userDataDir игнорируется при запуске Chrome MCP, поскольку Chrome MCP подключается к
запущенному браузеру за конечной точкой, а не открывает каталог
профиля.
Existing-session feature limitations
По сравнению с управляемым профилем openclaw, драйверы существующих сессий более ограничены:
- Скриншоты - захваты страниц и захваты элементов
--refработают; CSS-селекторы--elementне работают.--full-pageнельзя комбинировать с--refили--element. Playwright не требуется для скриншотов страниц или элементов на основе ref. - Действия -
click,type,hover,scrollIntoView,dragиselectтребуют refs снимка (без CSS-селекторов).click-coordsнажимает по координатам видимой области просмотра и не требует ref снимка.clickподдерживает только левую кнопку.typeне поддерживаетslowly=true; используйтеfillилиpress.pressне поддерживаетdelayMs.type,hover,scrollIntoView,drag,select,fillиevaluateне поддерживают тайм-ауты для отдельного вызова.selectпринимает одно значение. - Ожидание / загрузка / диалог -
wait --urlподдерживает точные совпадения, подстроки и glob-шаблоны;wait --load networkidleне поддерживается в профилях существующих сессий (работает в управляемых и raw/remote CDP-профилях). Хуки загрузки требуютrefилиinputRef, по одному файлу за раз, без CSSelement. Хуки диалогов не поддерживают переопределение тайм-аута илиdialogId. - Видимость диалога - ответы действий управляемого браузера включают
blockedByDialogиbrowserState.dialogs.pending, когда действие открывает модальный диалог; снимки также включают состояние ожидающего диалога. Ответьте сbrowser dialog --accept/--dismiss --dialog-id <id>, пока диалог ожидает ответа. Диалоги, обработанные вне OpenClaw, появляются вbrowserState.dialogs.recent. - Функции только для управляемого режима - пакетные действия, экспорт PDF, перехват загрузок и
responsebodyпо-прежнему требуют путь управляемого браузера.
Гарантии изоляции
- Выделенный каталог пользовательских данных: никогда не затрагивает ваш личный профиль браузера.
- Выделенные порты: избегает
9222, чтобы предотвратить конфликты с рабочими процессами разработки. - Детерминированное управление вкладками:
tabsсначала возвращаетsuggestedTargetId, затем стабильные дескрипторыtabId, такие какt1, необязательные метки и rawtargetId. Агентам следует повторно использоватьsuggestedTargetId; raw ids остаются доступны для отладки и совместимости.
Выбор браузера
При локальном запуске OpenClaw выбирает первый доступный:
- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
Можно переопределить с помощью browser.executablePath.
Платформы:
- macOS: проверяет
/Applicationsи~/Applications. - Linux: проверяет распространенные расположения Chrome/Brave/Edge/Chromium в
/usr/bin,/snap/bin,/opt/google,/opt/brave.com,/usr/lib/chromiumи/usr/lib/chromium-browser, а также управляемый Playwright Chromium вPLAYWRIGHT_BROWSERS_PATHили~/.cache/ms-playwright. - Windows: проверяет распространенные места установки.
API управления (необязательно)
Для скриптинга и отладки Gateway предоставляет небольшой HTTP API управления только через local loopback
плюс соответствующий CLI openclaw browser (снимки, refs, ожидание,
power-ups, вывод JSON, рабочие процессы отладки). Полный справочник см. в
API управления браузером.
Устранение неполадок
Для проблем, специфичных для Linux (особенно snap Chromium), см. Устранение неполадок браузера.
Для конфигураций WSL2 Gateway + Windows Chrome с разделенными хостами см. Устранение неполадок WSL2 + Windows + удаленного Chrome CDP.
Сбой запуска CDP и блокировка SSRF при навигации
Это разные классы сбоев, и они указывают на разные пути кода.
- Сбой запуска или готовности CDP означает, что OpenClaw не может подтвердить исправность плоскости управления браузером.
- Блокировка SSRF при навигации означает, что плоскость управления браузером исправна, но целевой адрес навигации страницы отклоняется политикой.
Распространенные примеры:
- Сбой запуска или готовности CDP:
Chrome CDP websocket for profile "openclaw" is not reachable after startRemote CDP for profile "<name>" is not reachable at <cdpUrl>Port <port> is in use for profile "<name>" but not by openclaw, когда внешний CDP-сервис local loopback настроен безattachOnly: true
- Блокировка SSRF при навигации:
- Потоки
open,navigate, snapshot или открытия вкладок завершаются ошибкой политики браузера/сети, при этомstartиtabsпо-прежнему работают
- Потоки
Используйте эту минимальную последовательность, чтобы разделить эти два случая:
openclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw tabsopenclaw browser --browser-profile openclaw open https://example.comКак читать результаты:
- Если
startзавершается ошибкойnot reachable after start, сначала устраняйте неполадки готовности CDP. - Если
startуспешен, ноtabsзавершается ошибкой, плоскость управления все еще неисправна. Считайте это проблемой доступности CDP, а не проблемой навигации по странице. - Если
startиtabsуспешны, ноopenилиnavigateзавершается ошибкой, плоскость управления браузером запущена, а сбой находится в политике навигации или на целевой странице. - Если
start,tabsиopenвсе успешны, базовый путь управления управляемым браузером исправен.
Важные детали поведения:
- Конфигурация браузера по умолчанию использует объект политики SSRF с отказом по умолчанию, даже если вы не настраиваете
browser.ssrfPolicy. - Для управляемого профиля local loopback
openclawпроверки работоспособности CDP намеренно пропускают принудительную проверку доступности по SSRF для собственной локальной плоскости управления OpenClaw. - Защита навигации отделена. Успешный результат
startилиtabsне означает, что последующая цельopenилиnavigateразрешена.
Рекомендации по безопасности:
- Не ослабляйте политику SSRF браузера по умолчанию.
- Предпочитайте узкие исключения для хостов, такие как
hostnameAllowlistилиallowedHostnames, вместо широкого доступа к частной сети. - Используйте
dangerouslyAllowPrivateNetwork: trueтолько в намеренно доверенных средах, где доступ браузера к частной сети необходим и проверен.
Инструменты агента и как работает управление
Агент получает один инструмент для автоматизации браузера:
browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
Как это сопоставляется:
browser snapshotвозвращает стабильное дерево UI (AI или ARIA).browser actиспользует идентификаторыrefиз snapshot для клика, ввода, перетаскивания или выбора.browser screenshotзахватывает пиксели (всю страницу, элемент или refs с метками).browser doctorпроверяет готовность Gateway, Plugin, профиля, браузера и вкладки.browserпринимает:profileдля выбора именованного профиля браузера (openclaw, chrome или удаленный CDP).target(sandbox|host|node) для выбора места, где находится браузер.- В изолированных сеансах
target: "host"требуетagents.defaults.sandbox.browser.allowHostControl=true. - Если
targetне указан: изолированные сеансы по умолчанию используютsandbox, сеансы без песочницы по умолчанию используютhost. - Если подключен узел с поддержкой браузера, инструмент может автоматически направить запрос к нему, если вы не закрепите
target="host"илиtarget="node".
Это сохраняет детерминированность агента и помогает избегать хрупких селекторов.
Связанные разделы
- Обзор инструментов - все доступные инструменты агента
- Песочница - управление браузером в изолированных средах
- Безопасность - риски управления браузером и усиление защиты