Tools
Браузер (керований OpenClaw)
OpenClaw може запускати виділений профіль Chrome/Brave/Edge/Chromium, яким керує агент. Він ізольований від вашого особистого браузера й керується через невелику локальну службу керування всередині Gateway (лише loopback).
Погляд для початківців:
- Думайте про нього як про окремий браузер лише для агента.
- Профіль
openclawне торкається вашого особистого профілю браузера. - Агент може відкривати вкладки, читати сторінки, клацати й вводити текст у безпечному каналі.
- Вбудований профіль
userпідʼєднується до вашого справжнього сеансу Chrome із виконаним входом через Chrome MCP.
Що ви отримуєте
- Окремий профіль браузера з назвою openclaw (за замовчуванням із помаранчевим акцентом).
- Детерміноване керування вкладками (перелік/відкриття/фокус/закриття).
- Дії агента (клацання/введення/перетягування/вибір), знімки стану, скриншоти, PDF.
- Вбудований skill
browser-automation, який навчає агентів циклу відновлення для знімків стану, стабільних вкладок, застарілих посилань і ручних блокерів, коли browser plugin увімкнено. - Додаткова підтримка кількох профілів (
openclaw,work,remote, ...).
Цей браузер не є вашим щоденним браузером. Це безпечна ізольована поверхня для автоматизації й перевірки агентом.
Швидкий старт
openclaw browser --browser-profile openclaw doctor
openclaw browser --browser-profile openclaw doctor --deep
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
Якщо ви отримали "Browser disabled", увімкніть його в конфігурації (див. нижче) і перезапустіть Gateway.
Якщо openclaw browser повністю відсутня або агент каже, що browser tool
недоступний, перейдіть до Відсутня команда або інструмент браузера.
Керування 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"] недостатньо, бо політика підагентів
застосовується після фільтрації профілю.
Browser plugin постачає два рівні настанов для агента:
- Опис інструмента
browserмістить компактний постійно активний контракт: вибирайте правильний профіль, тримайте посилання в межах тієї самої вкладки, використовуйтеtabId/мітки для націлювання на вкладки й завантажуйте browser skill для багатоетапної роботи. - Вбудований skill
browser-automationмістить довший робочий цикл: спершу перевірити статус/вкладки, позначити вкладки завдання, зробити знімок стану перед дією, повторно зробити знімок після змін UI, один раз відновитися після застарілих посилань і повідомляти про вхід/2FA/captcha або блокери камери/мікрофона як про ручну дію замість здогадок.
Skills, вбудовані в plugin, перелічені серед доступних агенту skills, коли plugin увімкнено. Повні інструкції skill завантажуються на вимогу, тому звичайні ходи не платять повну вартість у токенах.
Відсутня команда або інструмент браузера
Якщо openclaw browser невідома після оновлення, browser.request відсутній або агент повідомляє, що інструмент browser недоступний, звична причина — список plugins.allow, який не містить browser, і відсутній кореневий блок конфігурації browser. Додайте його:
{
plugins: {
allow: ["telegram", "browser"],
},
}
Явний кореневий блок browser, наприклад browser.enabled=true або browser.profiles.<name>, активує вбудований browser plugin навіть за обмежувального plugins.allow, відповідно до поведінки конфігурації каналів. plugins.entries.browser.enabled=true і tools.alsoAllow: ["browser"] самі по собі не замінюють членство в allowlist. Повне видалення plugins.allow також відновлює стандартну поведінку.
Профілі: openclaw проти user
openclaw: керований, ізольований браузер (розширення не потрібне).user: вбудований профіль підʼєднання Chrome MCP для вашого справжнього Chrome із виконаним входом сеансу.
Для викликів browser tool агентом:
- За замовчуванням: використовуйте ізольований браузер
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" },
},
},
}
Ports and reachability
- Служба керування привʼязується до loopback на порту, похідному від
gateway.port(за замовчуванням18791= gateway + 2). Перевизначенняgateway.portабоOPENCLAW_GATEWAY_PORTзміщує похідні порти в тій самій групі. - Локальні профілі
openclawавтоматично призначаютьcdpPort/cdpUrl; встановлюйте їх лише для віддаленого CDP.cdpUrlза замовчуванням вказує на керований локальний порт CDP, якщо не заданий. remoteCdpTimeoutMsзастосовується до перевірок досяжності HTTP для віддалених іattachOnlyCDP та HTTP-запитів відкриття вкладок;remoteCdpHandshakeTimeoutMsзастосовується до їхніх CDP WebSocket handshake.localLaunchTimeoutMs— це бюджет для локально запущеного керованого процесу Chrome, щоб відкрити свій HTTP endpoint CDP.localCdpReadyTimeoutMs— це подальший бюджет для готовності CDP websocket після виявлення процесу. Збільшуйте їх на Raspberry Pi, VPS нижчого класу або старішому обладнанні, де Chromium запускається повільно. Значення мають бути додатними цілими числами до120000ms; некоректні значення конфігурації відхиляються.- Повторні збої запуску/готовності керованого Chrome розриваються circuit breaker для кожного профілю. Після кількох послідовних збоїв OpenClaw ненадовго призупиняє нові спроби запуску замість того, щоб створювати Chromium під час кожного виклику browser tool. Виправте проблему запуску, вимкніть браузер, якщо він не потрібен, або перезапустіть Gateway після виправлення.
actionTimeoutMs— це стандартний бюджет для запитів browseract, коли викликач не передаєtimeoutMs. Клієнтський транспорт додає невелике резервне вікно, щоб довгі очікування могли завершитися замість тайм-ауту на межі HTTP.tabCleanup— це best-effort очищення вкладок, відкритих основними сеансами браузера агента. Підагент, cron і очищення життєвого циклу ACP все одно закривають свої явно відстежувані вкладки наприкінці сеансу; основні сеанси зберігають активні вкладки придатними для повторного використання, а потім закривають неактивні або надлишкові відстежувані вкладки у фоновому режимі.
SSRF policy
- Навігація браузера й відкриття вкладок захищені SSRF-перевірками перед навігацією та, за можливості, повторно перевіряються на фінальному
http(s)URL після цього. - У строгому режимі SSRF виявлення віддаленого CDP endpoint і probes
/json/version(cdpUrl) також перевіряються. - Змінні середовища Gateway/provider
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYіNO_PROXYне проксіюють автоматично браузер, керований OpenClaw. Керований Chrome за замовчуванням запускається напряму, щоб налаштування proxy провайдера не послаблювали SSRF-перевірки браузера. - Щоб проксіювати сам керований браузер, передайте явні прапорці proxy Chrome через
browser.extraArgs, як-от--proxy-server=...або--proxy-pac-url=.... Строгий режим SSRF блокує явну маршрутизацію proxy браузера, якщо доступ браузера до приватної мережі не ввімкнено навмисно. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkвимкнено за замовчуванням; вмикайте лише тоді, коли доступ браузера до приватної мережі навмисно вважається довіреним.browser.ssrfPolicy.allowPrivateNetworkзалишається підтримуваним як застарілий alias.
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(верхнього рівня і для профілю) підфарбовує інтерфейс браузера, щоб було видно, який профіль активний.- Типовий профіль —
openclaw(керований автономний). ВикористовуйтеdefaultProfile: "user", щоб вибрати браузер користувача з виконаним входом. - Порядок автовиявлення: системний браузер за замовчуванням, якщо він на основі Chromium; інакше Chrome → Brave → Edge → Chromium → Chrome Canary.
driver: "existing-session"використовує Chrome DevTools MCP замість сирого CDP. Не встановлюйтеcdpUrlдля цього драйвера.- Встановіть
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 host): запустіть node host на машині, де є браузер; Gateway проксіює дії браузера до нього.
- Віддалений CDP: встановіть
browser.profiles.<name>.cdpUrl(абоbrowser.cdpUrl), щоб під'єднатися до віддаленого браузера на основі Chromium. У цьому випадку OpenClaw не запускатиме локальний браузер. - Для зовнішньо керованих CDP-сервісів на loopback (наприклад Browserless у
Docker, опублікований на
127.0.0.1) також встановітьattachOnly: true. Loopback CDP безattachOnlyрозглядається як локальний браузерний профіль, керований OpenClaw. headlessвпливає лише на локальні керовані профілі, які запускає OpenClaw. Він не перезапускає і не змінює браузери existing-session або віддалені CDP-браузери.executablePathдотримується того самого правила локального керованого профілю. Його зміна в запущеному локальному керованому профілі позначає цей профіль для перезапуску/узгодження, щоб наступний запуск використовував новий виконуваний файл.
Поведінка зупинки відрізняється залежно від режиму профілю:
- локальні керовані профілі:
openclaw browser stopзупиняє браузерний процес, який запустив OpenClaw - attach-only і віддалені CDP-профілі:
openclaw browser stopзакриває активний сеанс керування і звільняє перевизначення емуляції Playwright/CDP (viewport, колірну схему, локаль, часовий пояс, офлайн-режим і подібний стан), навіть якщо OpenClaw не запускав жодного браузерного процесу
Віддалені CDP URL можуть містити автентифікацію:
- Токени запиту (наприклад,
https://provider.example?token=<token>) - HTTP Basic auth (наприклад,
https://user:[email protected])
OpenClaw зберігає автентифікацію під час виклику кінцевих точок /json/* і під час підключення
до CDP WebSocket. Для токенів віддавайте перевагу змінним середовища або менеджерам секретів
замість комітування їх у конфігураційні файли.
Node browser proxy (типовий варіант без конфігурації)
Якщо ви запускаєте node host на машині, де є ваш браузер, OpenClaw може автоматично маршрутизувати виклики браузерних інструментів до цього node без додаткової конфігурації браузера. Це типовий шлях для віддалених Gateway.
Примітки:
- Node host надає свій локальний сервер керування браузером через proxy command.
- Профілі беруться з власної конфігурації
browser.profilesцього node (так само, як локально). nodeHost.browserProxy.allowProfilesє необов'язковим. Залиште його порожнім для застарілої/типової поведінки: усі налаштовані профілі залишаються доступними через proxy, включно з маршрутами створення/видалення профілів.- Якщо встановити
nodeHost.browserProxy.allowProfiles, OpenClaw трактує це як межу мінімальних привілеїв: ціллю можуть бути лише профілі з allowlist, а постійні маршрути створення/видалення профілів блокуються на поверхні proxy. - Вимкніть, якщо це вам не потрібно:
- На 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 у той самий публічний для OpenClaw WebSocket-базис, наприклад
ws://127.0.0.1:3000, ws://browserless:3000 або стабільну приватну адресу мережі Docker.
Якщо /json/version повертає webSocketDebuggerUrl, що вказує на адресу,
недоступну для OpenClaw, CDP HTTP може виглядати справним, тоді як WebSocket-під'єднання
все одно не вдаватиметься.
Не залишайте attachOnly невстановленим для loopback-профілю Browserless. Без
attachOnly OpenClaw трактує loopback-порт як локальний керований браузерний
профіль і може повідомити, що порт використовується, але не належить OpenClaw.
Прямі постачальники WebSocket CDP
Деякі розміщені браузерні сервіси надають пряму WebSocket кінцеву точку, а не
стандартне HTTP-виявлення CDP (/json/version). OpenClaw приймає три
форми CDP URL і автоматично вибирає правильну стратегію підключення:
- HTTP(S)-виявлення -
http://host[:port]абоhttps://host[:port]. OpenClaw викликає/json/version, щоб виявити WebSocket debugger URL, а потім підключається. Без WebSocket fallback. - Прямі 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.
Browserbase
Browserbase — це хмарна платформа для запуску headless-браузерів із вбудованим розв'язанням CAPTCHA, stealth mode і резидентськими проксі.
{
browser: {
enabled: true,
defaultProfile: "browserbase",
remoteCdpTimeoutMs: 3000,
remoteCdpHandshakeTimeoutMs: 5000,
profiles: {
browserbase: {
cdpUrl: "wss://connect.browserbase.com?apiKey=<BROWSERBASE_API_KEY>",
color: "#F97316",
},
},
},
}
Примітки:
- Зареєструйтеся і скопіюйте ваш API Key з оглядової панелі.
- Замініть
<BROWSERBASE_API_KEY>на ваш справжній API-ключ Browserbase. - Browserbase автоматично створює браузерний сеанс під час WebSocket-підключення, тому ручний крок створення сеансу не потрібен.
- Безкоштовний рівень дозволяє один одночасний сеанс і одну браузерну годину на місяць. Див. ціни щодо обмежень платних планів.
- Див. документацію Browserbase для повного API довідника, посібників SDK і прикладів інтеграції.
Безпека
Ключові ідеї:
- Керування браузером доступне лише через loopback; доступ проходить через автентифікацію Gateway або спарювання Node.
- Автономний HTTP API браузера через loopback використовує лише автентифікацію зі спільним секретом:
bearer-автентифікацію токеном Gateway,
x-openclaw-passwordабо HTTP Basic auth із налаштованим паролем Gateway. - Заголовки ідентичності Tailscale Serve і
gateway.auth.mode: "trusted-proxy"не автентифікують цей автономний API браузера через loopback. - Якщо керування браузером увімкнено, а автентифікацію зі спільним секретом не налаштовано, OpenClaw
генерує токен Gateway лише на час виконання для цього запуску. Налаштуйте
gateway.auth.token,gateway.auth.password,OPENCLAW_GATEWAY_TOKENабоOPENCLAW_GATEWAY_PASSWORDявно, якщо клієнтам потрібен стабільний секрет між перезапусками. - OpenClaw не генерує цей токен автоматично, коли
gateway.auth.modeуже має значенняpassword,noneабоtrusted-proxy. - Тримайте Gateway і будь-які хости Node у приватній мережі (Tailscale); уникайте публічного доступу.
- Вважайте віддалені URL-адреси/токени CDP секретами; надавайте перевагу змінним середовища або менеджеру секретів.
Поради щодо віддаленого CDP:
- За можливості надавайте перевагу зашифрованим кінцевим точкам (HTTPS або WSS) і короткостроковим токенам.
- Уникайте вбудовування довгострокових токенів безпосередньо у файли конфігурації.
Профілі (кілька браузерів)
OpenClaw підтримує кілька іменованих профілів (конфігурацій маршрутизації). Профілі можуть бути:
- openclaw-managed: виділений екземпляр браузера на основі Chromium із власним каталогом даних користувача + портом CDP
- remote: явна URL-адреса CDP (браузер на основі Chromium, що працює деінде)
- existing session: ваш наявний профіль 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. Це повторно використовує вкладки та стан входу, які вже відкриті в цьому профілі браузера.
Офіційні довідкові матеріали та налаштування:
Вбудований профіль:
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 start
openclaw browser --browser-profile user status
openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot --format ai
Ознаки успіху:
statusпоказуєdriver: existing-sessionstatusпоказуєtransport: chrome-mcpstatusпоказуєrunning: truetabsперелічує вже відкриті вкладки браузераsnapshotповертає посилання з вибраної живої вкладки
Що перевірити, якщо приєднання не працює:
- цільовий браузер на основі Chromium має версію
144+ - віддалене налагодження ввімкнено на сторінці перевірки цього браузера
- браузер показав запит згоди на приєднання, і ви його прийняли
openclaw doctorмігрує стару конфігурацію браузера на основі Plugin і перевіряє, що Chrome установлено локально для типових профілів автоматичного підключення, але він не може ввімкнути для вас віддалене налагодження на боці браузера
Використання агентом:
- Використовуйте
profile="user", коли потрібен стан браузера користувача з виконаним входом. - Якщо ви використовуєте власний профіль наявного сеансу, передайте цю явну назву профілю.
- Вибирайте цей режим лише тоді, коли користувач перебуває за комп'ютером, щоб підтвердити запит на приєднання.
- Gateway або хост Node може запускати
npx chrome-devtools-mcp@latest --autoConnect
Примітки:
- Цей шлях має вищий ризик, ніж ізольований профіль
openclaw, тому що він може діяти всередині вашого сеансу браузера з виконаним входом. - OpenClaw не запускає браузер для цього драйвера; він лише приєднується.
- OpenClaw тут використовує офіційний потік Chrome DevTools MCP
--autoConnect. ЯкщоuserDataDirзадано, його передають далі, щоб націлитися на цей каталог даних користувача. - Наявний сеанс може приєднуватися на вибраному хості або через підключений браузерний Node. Якщо Chrome розміщений деінде, а браузерний Node не підключено, використовуйте віддалений CDP або хост Node.
Власний запуск 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>(прямий WebSocket CDP).
Прапорці кінцевої точки та userDataDir не можна поєднувати: коли cdpUrl задано,
userDataDir ігнорується для запуску Chrome MCP, оскільки Chrome MCP приєднується до
запущеного браузера за кінцевою точкою, а не відкриває каталог
профілю.
Обмеження функції наявного сеансу
Порівняно з керованим профілем openclaw, драйвери наявних сеансів мають більше обмежень:
- Знімки екрана - захоплення сторінки та захоплення елементів через
--refпрацюють; CSS-селектори--elementне працюють.--full-pageне можна поєднувати з--refабо--element. Playwright не потрібен для знімків сторінки або елементів на основі ref. - Дії -
click,type,hover,scrollIntoView,dragіselectпотребують refs зі знімка (без CSS-селекторів).click-coordsнатискає видимі координати viewport і не потребує ref зі знімка.clickпідтримує лише ліву кнопку.typeне підтримуєslowly=true; використовуйтеfillабоpress.pressне підтримуєdelayMs.type,hover,scrollIntoView,drag,select,fillіevaluateне підтримують тайм-аути для окремих викликів.selectприймає одне значення. - Очікування / завантаження / діалог -
wait --urlпідтримує точні шаблони, підрядки та glob-шаблони;wait --load networkidleне підтримується. Хуки завантаження потребуютьrefабоinputRef, по одному файлу за раз, без CSSelement. Хуки діалогів не підтримують перевизначення тайм-ауту. - Функції лише для керованого режиму - пакетні дії, експорт PDF, перехоплення завантажень і
responsebodyусе ще потребують керованого шляху браузера.
Гарантії ізоляції
- Виділений каталог даних користувача: ніколи не торкається вашого особистого профілю браузера.
- Виділені порти: уникає
9222, щоб запобігти конфліктам із робочими процесами розробки. - Детерміноване керування вкладками:
tabsспочатку повертаєsuggestedTargetId, потім стабільні дескрипториtabId, такі якt1, необов'язкові мітки та сирийtargetId. Агенти мають повторно використовуватиsuggestedTargetId; сирі ідентифікатори залишаються доступними для налагодження та сумісності.
Вибір браузера
Під час локального запуску 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. - Windows: перевіряє поширені розташування встановлення.
API керування (необов'язково)
Для сценаріїв і налагодження Gateway надає невеликий HTTP API керування лише через loopback
плюс відповідний CLI openclaw browser (знімки, refs, розширення очікування,
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 через loopback налаштовано безattachOnly: true
- Блокування навігації SSRF:
- потоки
open,navigate, snapshot або відкриття вкладок завершуються помилкою політики браузера/мережі, тоді якstartіtabsусе ще працюють
- потоки
Використовуйте цю мінімальну послідовність, щоб розділити ці два випадки:
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw tabs
openclaw 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. - Для локального керованого профілю
openclawчерез loopback перевірки справності 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повертає стабільне дерево інтерфейсу (AI або ARIA).browser actвикористовує ідентифікаториrefзі знімка, щоб клацати/вводити/перетягувати/вибирати.browser screenshotзахоплює пікселі (усю сторінку, елемент або позначені refs).browser doctorперевіряє готовність Gateway, plugin, профілю, браузера й вкладки.browserприймає:profileдля вибору іменованого профілю браузера (openclaw, chrome або віддаленого CDP).target(sandbox|host|node) для вибору, де розташований браузер.- У sandbox-сеансах
target: "host"потребуєagents.defaults.sandbox.browser.allowHostControl=true. - Якщо
targetпропущено: sandbox-сеанси за замовчуванням використовуютьsandbox, несandbox-сеанси за замовчуванням використовуютьhost. - Якщо підключено вузол із підтримкою браузера, інструмент може автоматично маршрутизувати до нього, якщо ви не зафіксуєте
target="host"абоtarget="node".
Це зберігає детермінованість агента й дає змогу уникати крихких селекторів.
Пов’язане
- Огляд інструментів - усі доступні інструменти агента
- Sandboxing - керування браузером у sandbox-середовищах
- Безпека - ризики керування браузером і посилення захисту