Tools
Przeglądarka (zarządzana przez OpenClaw)
OpenClaw może uruchamiać dedykowany profil Chrome/Brave/Edge/Chromium, którym steruje agent. Jest odizolowany od Twojej osobistej przeglądarki i zarządzany przez małą lokalną usługę sterowania w Gateway (tylko loopback).
Widok dla początkujących:
- Traktuj go jako oddzielną przeglądarkę tylko dla agenta.
- Profil
openclawnie dotyka Twojego osobistego profilu przeglądarki. - Agent może otwierać karty, czytać strony, klikać i pisać w bezpiecznym torze.
- Wbudowany profil
userpodłącza się do Twojej prawdziwej, zalogowanej sesji Chrome przez Chrome MCP.
Co otrzymujesz
- Oddzielny profil przeglądarki o nazwie openclaw (domyślnie z pomarańczowym akcentem).
- Deterministyczne sterowanie kartami (lista/otwórz/ustaw fokus/zamknij).
- Akcje agenta (kliknięcie/pisanie/przeciąganie/wybór), migawki, zrzuty ekranu, pliki PDF.
- Dołączony skill
browser-automation, który uczy agentów pętli odzyskiwania dla migawek, stabilnych kart, nieaktualnych odwołań i ręcznych blokad, gdy Plugin przeglądarki jest włączony. - Opcjonalna obsługa wielu profili (
openclaw,work,remote, ...).
Ta przeglądarka nie jest Twoją codzienną przeglądarką. To bezpieczna, odizolowana powierzchnia do automatyzacji i weryfikacji przez agenta.
Szybki start
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
Jeśli pojawi się komunikat „Browser disabled”, włącz przeglądarkę w konfiguracji (patrz niżej) i zrestartuj Gateway.
Jeśli openclaw browser całkowicie brakuje albo agent informuje, że narzędzie przeglądarki
jest niedostępne, przejdź do Brak polecenia lub narzędzia przeglądarki.
Sterowanie Plugin
Domyślne narzędzie browser jest dołączonym Plugin. Wyłącz je, aby zastąpić je innym Plugin, który rejestruje tę samą nazwę narzędzia browser:
{
plugins: {
entries: {
browser: {
enabled: false,
},
},
},
}
Domyślne ustawienia wymagają zarówno plugins.entries.browser.enabled, jak i browser.enabled=true. Wyłączenie samego Plugin usuwa CLI openclaw browser, metodę Gateway browser.request, narzędzie agenta i usługę sterowania jako jedną całość; Twoja konfiguracja browser.* pozostaje nienaruszona dla zamiennika.
Zmiany konfiguracji przeglądarki wymagają restartu Gateway, aby Plugin mógł ponownie zarejestrować swoją usługę.
Wskazówki dla agenta
Uwaga dotycząca profilu narzędzi: tools.profile: "coding" obejmuje web_search i
web_fetch, ale nie obejmuje pełnego narzędzia browser. Jeśli agent lub
utworzony subagent ma używać automatyzacji przeglądarki, dodaj przeglądarkę na etapie
profilu:
{
tools: {
profile: "coding",
alsoAllow: ["browser"],
},
}
Dla pojedynczego agenta użyj agents.list[].tools.alsoAllow: ["browser"].
Samo tools.subagents.tools.allow: ["browser"] nie wystarcza, ponieważ polityka subagentów
jest stosowana po filtrowaniu profilu.
Plugin przeglądarki dostarcza dwa poziomy wskazówek dla agenta:
- Opis narzędzia
browserzawiera zwięzły, zawsze aktywny kontrakt: wybierz właściwy profil, utrzymuj odwołania na tej samej karcie, używajtabId/etykiet do kierowania na karty i załaduj skill przeglądarki do pracy wieloetapowej. - Dołączony skill
browser-automationzawiera dłuższą pętlę operacyjną: najpierw sprawdź status/karty, oznacz karty zadania etykietami, wykonaj migawkę przed działaniem, ponownie wykonaj migawkę po zmianach UI, raz odzyskaj nieaktualne odwołania i zgłoś logowanie/2FA/captcha lub blokady kamery/mikrofonu jako ręczne działanie zamiast zgadywać.
Skills dołączone przez Plugin są wyświetlane na liście dostępnych Skills agenta, gdy Plugin jest włączony. Pełne instrukcje skill są ładowane na żądanie, więc rutynowe tury nie ponoszą pełnego kosztu tokenów.
Brak polecenia lub narzędzia przeglądarki
Jeśli openclaw browser jest nieznane po aktualizacji, brakuje browser.request albo agent zgłasza narzędzie przeglądarki jako niedostępne, zwykle przyczyną jest lista plugins.allow, która pomija browser, oraz brak głównego bloku konfiguracji browser. Dodaj go:
{
plugins: {
allow: ["telegram", "browser"],
},
}
Jawny główny blok browser, na przykład browser.enabled=true lub browser.profiles.<name>, aktywuje dołączony Plugin przeglądarki nawet przy restrykcyjnym plugins.allow, zgodnie z zachowaniem konfiguracji kanałów. plugins.entries.browser.enabled=true i tools.alsoAllow: ["browser"] same w sobie nie zastępują członkostwa na liście dozwolonych. Całkowite usunięcie plugins.allow również przywraca ustawienie domyślne.
Profile: openclaw kontra user
openclaw: zarządzana, odizolowana przeglądarka (bez wymagania rozszerzenia).user: wbudowany profil podłączenia Chrome MCP do Twojej prawdziwej, zalogowanej sesji Chrome.
Dla wywołań narzędzia przeglądarki przez agenta:
- Domyślnie: używaj odizolowanej przeglądarki
openclaw. - Preferuj
profile="user", gdy znaczenie mają istniejące zalogowane sesje, a użytkownik jest przy komputerze, aby kliknąć/zatwierdzić ewentualny monit o podłączenie. profilejest jawnym nadpisaniem, gdy chcesz określonego trybu przeglądarki.
Ustaw browser.defaultProfile: "openclaw", jeśli chcesz domyślnie używać trybu zarządzanego.
Konfiguracja
Ustawienia przeglądarki znajdują się w ~/.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" },
},
},
}
Porty i osiągalność
- Usługa sterowania wiąże się z loopback na porcie wyprowadzonym z
gateway.port(domyślnie18791= Gateway + 2). Nadpisaniegateway.portlubOPENCLAW_GATEWAY_PORTprzesuwa wyprowadzone porty w tej samej rodzinie. - Lokalne profile
openclawautomatycznie przypisującdpPort/cdpUrl; ustawiaj je tylko dla zdalnego CDP.cdpUrldomyślnie wskazuje zarządzany lokalny port CDP, gdy nie jest ustawiony. remoteCdpTimeoutMsma zastosowanie do zdalnych iattachOnlykontroli osiągalności CDP HTTP oraz żądań HTTP otwierających karty;remoteCdpHandshakeTimeoutMsma zastosowanie do ich uzgadniania CDP WebSocket.localLaunchTimeoutMsto budżet czasu na udostępnienie punktu końcowego CDP HTTP przez lokalnie uruchomiony zarządzany proces Chrome.localCdpReadyTimeoutMsto kolejny budżet na gotowość websocket CDP po wykryciu procesu. Zwiększ te wartości na Raspberry Pi, słabym VPS lub starszym sprzęcie, gdzie Chromium uruchamia się wolno. Wartości muszą być dodatnimi liczbami całkowitymi do120000ms; nieprawidłowe wartości konfiguracji są odrzucane.- Powtarzające się błędy uruchamiania/gotowości zarządzanego Chrome są przerywane przez circuit breaker dla każdego profilu. Po kilku kolejnych błędach OpenClaw na krótko wstrzymuje nowe próby uruchomienia zamiast uruchamiać Chromium przy każdym wywołaniu narzędzia przeglądarki. Napraw problem startowy, wyłącz przeglądarkę, jeśli nie jest potrzebna, albo zrestartuj Gateway po naprawie.
actionTimeoutMsto domyślny budżet dla żądańactprzeglądarki, gdy wywołujący nie przekazujetimeoutMs. Transport klienta dodaje małe okno zapasu, aby długie oczekiwania mogły się zakończyć zamiast przekroczyć limit czasu na granicy HTTP.tabCleanupto best-effort czyszczenie kart otwartych przez sesje przeglądarki głównego agenta. Czyszczenie cyklu życia subagentów, Cron i ACP nadal zamyka ich jawnie śledzone karty na końcu sesji; sesje główne utrzymują aktywne karty do ponownego użycia, a potem zamykają bezczynne lub nadmiarowe śledzone karty w tle.
Polityka SSRF
- Nawigacja przeglądarki i otwieranie kart są chronione przed SSRF przed nawigacją oraz w miarę możliwości ponownie sprawdzane na końcowym adresie URL
http(s)po niej. - W ścisłym trybie SSRF sprawdzane są również wykrywanie zdalnego punktu końcowego CDP i sondy
/json/version(cdpUrl). - Zmienne środowiskowe Gateway/dostawcy
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYiNO_PROXYnie przekierowują automatycznie zarządzanej przez OpenClaw przeglądarki przez proxy. Zarządzany Chrome domyślnie uruchamia się bezpośrednio, aby ustawienia proxy dostawcy nie osłabiały kontroli SSRF przeglądarki. - Aby przekierować samą zarządzaną przeglądarkę przez proxy, przekaż jawne flagi proxy Chrome przez
browser.extraArgs, takie jak--proxy-server=...lub--proxy-pac-url=.... Ścisły tryb SSRF blokuje jawne routowanie proxy przeglądarki, chyba że dostęp przeglądarki do sieci prywatnej został celowo włączony. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkjest domyślnie wyłączone; włączaj tylko wtedy, gdy dostęp przeglądarki do sieci prywatnej jest celowo zaufany.browser.ssrfPolicy.allowPrivateNetworkpozostaje obsługiwane jako starszy alias.
Zachowanie profilu
attachOnly: trueoznacza, że lokalna przeglądarka nigdy nie zostanie uruchomiona; nastąpi tylko dołączenie, jeśli jest już uruchomiona.headlessmożna ustawić globalnie albo dla lokalnego profilu zarządzanego. Wartości per profil zastępująbrowser.headless, więc jeden lokalnie uruchamiany profil może pozostać bezgłowy, podczas gdy inny pozostaje widoczny.POST /start?headless=trueiopenclaw browser start --headlessżądają jednorazowego uruchomienia bezgłowego dla lokalnych profili zarządzanych bez przepisywaniabrowser.headlessani konfiguracji profilu. Profile existing-session, attach-only i zdalne profile CDP odrzucają nadpisanie, ponieważ OpenClaw nie uruchamia tych procesów przeglądarki.- Na hostach Linux bez
DISPLAYaniWAYLAND_DISPLAYlokalne profile zarządzane domyślnie automatycznie przechodzą w tryb bezgłowy, gdy ani środowisko, ani konfiguracja profilu/globalna nie wybiera jawnie trybu z interfejsem.openclaw browser status --jsonraportujeheadlessSourcejakoenv,profile,config,request,linux-display-fallbackalbodefault. OPENCLAW_BROWSER_HEADLESS=1wymusza bezgłowe uruchomienia lokalnie zarządzane dla bieżącego procesu.OPENCLAW_BROWSER_HEADLESS=0wymusza tryb z interfejsem dla zwykłych uruchomień i zwraca możliwy do wykonania błąd na hostach Linux bez serwera wyświetlania; jawne żądaniestart --headlessnadal wygrywa dla tego jednego uruchomienia.executablePathmożna ustawić globalnie albo dla lokalnego profilu zarządzanego. Wartości per profil zastępująbrowser.executablePath, więc różne profile zarządzane mogą uruchamiać różne przeglądarki oparte na Chromium. Obie formy akceptują~jako katalog domowy Twojego systemu operacyjnego.color(najwyższego poziomu i per profil) zabarwia interfejs przeglądarki, aby było widać, który profil jest aktywny.- Domyślny profil to
openclaw(zarządzany samodzielny). UżyjdefaultProfile: "user", aby wybrać zalogowaną przeglądarkę użytkownika. - Kolejność autodetekcji: domyślna przeglądarka systemowa, jeśli jest oparta na Chromium; w przeciwnym razie Chrome → Brave → Edge → Chromium → Chrome Canary.
driver: "existing-session"używa Chrome DevTools MCP zamiast surowego CDP. Nie ustawiajcdpUrldla tego sterownika.- Ustaw
browser.profiles.<name>.userDataDir, gdy profil existing-session powinien dołączać do niedomyślnego profilu użytkownika Chromium (Brave, Edge itd.). Ta ścieżka również akceptuje~jako katalog domowy Twojego systemu operacyjnego.
Użyj Brave albo innej przeglądarki opartej na Chromium
Jeśli Twoja domyślna przeglądarka systemowa jest oparta na Chromium (Chrome/Brave/Edge/itd),
OpenClaw użyje jej automatycznie. Ustaw browser.executablePath, aby zastąpić
autodetekcję. Wartości executablePath najwyższego poziomu i per profil akceptują ~
jako katalog domowy Twojego systemu operacyjnego:
openclaw config set browser.executablePath "/usr/bin/google-chrome"
openclaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
Albo ustaw to w konfiguracji, per platforma:
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 per profil wpływa tylko na lokalne profile zarządzane, które OpenClaw
uruchamia. Profile existing-session zamiast tego dołączają do już uruchomionej przeglądarki,
a zdalne profile CDP używają przeglądarki za cdpUrl.
Sterowanie lokalne a zdalne
- Sterowanie lokalne (domyślne): Gateway uruchamia usługę sterowania loopback i może uruchomić lokalną przeglądarkę.
- Sterowanie zdalne (host Node): uruchom host Node na maszynie, która ma przeglądarkę; Gateway przekazuje do niego akcje przeglądarki.
- Zdalne CDP: ustaw
browser.profiles.<name>.cdpUrl(albobrowser.cdpUrl), aby dołączyć do zdalnej przeglądarki opartej na Chromium. W tym przypadku OpenClaw nie uruchomi lokalnej przeglądarki. - Dla zewnętrznie zarządzanych usług CDP na loopback (na przykład Browserless w
Docker opublikowanym do
127.0.0.1) ustaw takżeattachOnly: true. CDP na loopback bezattachOnlyjest traktowane jako lokalny profil przeglądarki zarządzany przez OpenClaw. headlesswpływa tylko na lokalne profile zarządzane, które OpenClaw uruchamia. Nie restartuje ani nie zmienia przeglądarek existing-session lub zdalnych CDP.executablePathpodlega tej samej regule lokalnego profilu zarządzanego. Zmiana go w działającym lokalnym profilu zarządzanym oznacza ten profil do restartu/uzgodnienia, aby następne uruchomienie użyło nowego pliku binarnego.
Zachowanie zatrzymywania różni się zależnie od trybu profilu:
- lokalne profile zarządzane:
openclaw browser stopzatrzymuje proces przeglądarki, który OpenClaw uruchomił - profile attach-only i zdalne CDP:
openclaw browser stopzamyka aktywną sesję sterowania i zwalnia nadpisania emulacji Playwright/CDP (viewport, schemat kolorów, ustawienia regionalne, strefę czasową, tryb offline i podobny stan), mimo że OpenClaw nie uruchomił żadnego procesu przeglądarki
Zdalne adresy URL CDP mogą zawierać uwierzytelnianie:
- Tokeny zapytania (np.
https://provider.example?token=<token>) - Uwierzytelnianie HTTP Basic (np.
https://user:[email protected])
OpenClaw zachowuje uwierzytelnianie podczas wywoływania endpointów /json/* i podczas łączenia
z WebSocket CDP. Preferuj zmienne środowiskowe albo menedżery sekretów dla
tokenów zamiast zatwierdzania ich w plikach konfiguracji.
Proxy przeglądarki Node (domyślnie bez konfiguracji)
Jeśli uruchomisz host Node na maszynie, która ma Twoją przeglądarkę, OpenClaw może automatycznie kierować wywołania narzędzi przeglądarki do tego Node bez żadnej dodatkowej konfiguracji przeglądarki. To jest domyślna ścieżka dla zdalnych Gateway.
Uwagi:
- Host Node udostępnia swój lokalny serwer sterowania przeglądarką przez polecenie proxy.
- Profile pochodzą z własnej konfiguracji
browser.profilesNode (tak samo jak lokalnie). nodeHost.browserProxy.allowProfilesjest opcjonalne. Pozostaw to puste dla starszego/domyślnego zachowania: wszystkie skonfigurowane profile pozostają osiągalne przez proxy, w tym trasy tworzenia/usuwania profili.- Jeśli ustawisz
nodeHost.browserProxy.allowProfiles, OpenClaw traktuje to jako granicę najmniejszych uprawnień: celem mogą być tylko profile z listy dozwolonych, a trwałe trasy tworzenia/usuwania profili są blokowane na powierzchni proxy. - Wyłącz, jeśli tego nie chcesz:
- Na Node:
nodeHost.browserProxy.enabled=false - Na Gateway:
gateway.nodes.browser.mode="off"
- Na Node:
Browserless (hostowane zdalne CDP)
Browserless to hostowana usługa Chromium, która udostępnia adresy URL połączenia CDP przez HTTPS i WebSocket. OpenClaw może używać obu form, ale dla zdalnego profilu przeglądarki najprostszą opcją jest bezpośredni adres URL WebSocket z dokumentacji połączeń Browserless.
Przykład:
{
browser: {
enabled: true,
defaultProfile: "browserless",
remoteCdpTimeoutMs: 2000,
remoteCdpHandshakeTimeoutMs: 4000,
profiles: {
browserless: {
cdpUrl: "wss://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",
color: "#00AA00",
},
},
},
}
Uwagi:
- Zastąp
<BROWSERLESS_API_KEY>swoim rzeczywistym tokenem Browserless. - Wybierz endpoint regionu pasujący do Twojego konta Browserless (zobacz ich dokumentację).
- Jeśli Browserless poda Ci bazowy adres URL HTTPS, możesz albo przekonwertować go na
wss://dla bezpośredniego połączenia CDP, albo zachować adres URL HTTPS i pozwolić OpenClaw wykryć/json/version.
Browserless Docker na tym samym hoście
Gdy Browserless jest hostowany samodzielnie w Docker, a OpenClaw działa na hoście, traktuj Browserless jako zewnętrznie zarządzaną usługę CDP:
{
browser: {
enabled: true,
defaultProfile: "browserless",
profiles: {
browserless: {
cdpUrl: "ws://127.0.0.1:3000",
attachOnly: true,
color: "#00AA00",
},
},
},
}
Adres w browser.profiles.browserless.cdpUrl musi być osiągalny z procesu
OpenClaw. Browserless musi także ogłaszać pasujący osiągalny endpoint;
ustaw EXTERNAL Browserless na tę samą bazę WebSocket publiczną dla OpenClaw, taką
jak ws://127.0.0.1:3000, ws://browserless:3000 albo stabilny prywatny adres sieci
Docker. Jeśli /json/version zwraca webSocketDebuggerUrl wskazujący na
adres, którego OpenClaw nie może osiągnąć, HTTP CDP może wyglądać na sprawne, podczas gdy dołączenie
WebSocket nadal się nie powiedzie.
Nie pozostawiaj attachOnly nieustawionego dla profilu Browserless na loopback. Bez
attachOnly OpenClaw traktuje port loopback jako lokalny zarządzany profil przeglądarki
i może zgłaszać, że port jest używany, ale nie należy do OpenClaw.
Bezpośredni dostawcy CDP WebSocket
Niektóre hostowane usługi przeglądarek udostępniają bezpośredni endpoint WebSocket zamiast
standardowego wykrywania CDP opartego na HTTP (/json/version). OpenClaw akceptuje trzy
kształty adresów URL CDP i automatycznie wybiera właściwą strategię połączenia:
- Wykrywanie HTTP(S) -
http://host[:port]albohttps://host[:port]. OpenClaw wywołuje/json/version, aby wykryć adres URL debuggera WebSocket, a następnie się łączy. Brak awaryjnego przejścia na WebSocket. - Bezpośrednie endpointy WebSocket -
ws://host[:port]/devtools/<kind>/<id>albowss://...ze ścieżką/devtools/browser|page|worker|shared_worker|service_worker/<id>. OpenClaw łączy się bezpośrednio przez uzgadnianie WebSocket i całkowicie pomija/json/version. - Surowe korzenie WebSocket -
ws://host[:port]albowss://host[:port]bez ścieżki/devtools/...(np. Browserless, Browserbase). OpenClaw najpierw próbuje wykrywania HTTP/json/version(normalizując schemat dohttp/https); jeśli wykrywanie zwróciwebSocketDebuggerUrl, zostanie on użyty, w przeciwnym razie OpenClaw przechodzi awaryjnie do bezpośredniego uzgadniania WebSocket w surowym korzeniu. Jeśli ogłaszany endpoint WebSocket odrzuci uzgadnianie CDP, ale skonfigurowany surowy korzeń je zaakceptuje, OpenClaw również przechodzi awaryjnie do tego korzenia. Dzięki temu surowyws://wskazujący na lokalny Chrome nadal może się połączyć, ponieważ Chrome akceptuje aktualizacje WebSocket tylko na konkretnej ścieżce per cel z/json/version, podczas gdy hostowani dostawcy nadal mogą używać swojego korzenia WebSocket, gdy ich endpoint wykrywania ogłasza krótkotrwały adres URL, który nie nadaje się do Playwright CDP.
Browserbase
Browserbase to platforma chmurowa do uruchamiania bezgłowych przeglądarek z wbudowanym rozwiązywaniem CAPTCHA, trybem stealth i rezydencjalnymi proxy.
{
browser: {
enabled: true,
defaultProfile: "browserbase",
remoteCdpTimeoutMs: 3000,
remoteCdpHandshakeTimeoutMs: 5000,
profiles: {
browserbase: {
cdpUrl: "wss://connect.browserbase.com?apiKey=<BROWSERBASE_API_KEY>",
color: "#F97316",
},
},
},
}
Uwagi:
- Zarejestruj się i skopiuj swój klucz API z panelu Overview.
- Zastąp
<BROWSERBASE_API_KEY>swoim rzeczywistym kluczem API Browserbase. - Browserbase automatycznie tworzy sesję przeglądarki przy połączeniu WebSocket, więc nie jest potrzebny ręczny krok tworzenia sesji.
- Warstwa bezpłatna pozwala na jedną równoczesną sesję i jedną godzinę przeglądarki miesięcznie. Zobacz cennik, aby poznać limity płatnych planów.
- Zobacz dokumentację Browserbase, aby uzyskać pełną dokumentację API, przewodniki SDK i przykłady integracji.
Bezpieczeństwo
Kluczowe idee:
- Sterowanie przeglądarką jest dostępne tylko przez local loopback; dostęp odbywa się przez uwierzytelnianie Gateway lub parowanie Node.
- Samodzielne HTTP API przeglądarki local loopback używa wyłącznie uwierzytelniania współdzielonym sekretem:
uwierzytelniania bearer tokenem Gateway,
x-openclaw-passwordalbo HTTP Basic auth ze skonfigurowanym hasłem Gateway. - Nagłówki tożsamości Tailscale Serve i
gateway.auth.mode: "trusted-proxy"nie uwierzytelniają tego samodzielnego API przeglądarki local loopback. - Jeśli sterowanie przeglądarką jest włączone, a uwierzytelnianie współdzielonym sekretem nie jest skonfigurowane, OpenClaw
generuje token Gateway tylko na czas działania dla tego uruchomienia. Skonfiguruj
gateway.auth.token,gateway.auth.password,OPENCLAW_GATEWAY_TOKENalboOPENCLAW_GATEWAY_PASSWORDjawnie, jeśli klienci potrzebują stabilnego sekretu między restartami. - OpenClaw nie generuje automatycznie tego tokena, gdy
gateway.auth.modema już wartośćpassword,nonealbotrusted-proxy. - Trzymaj Gateway i wszystkie hosty Node w sieci prywatnej (Tailscale); unikaj publicznego wystawiania.
- Traktuj zdalne adresy URL/tokeny CDP jako sekrety; preferuj zmienne środowiskowe lub menedżera sekretów.
Wskazówki dotyczące zdalnego CDP:
- Gdy to możliwe, preferuj szyfrowane punkty końcowe (HTTPS lub WSS) i krótkotrwałe tokeny.
- Unikaj osadzania długotrwałych tokenów bezpośrednio w plikach konfiguracyjnych.
Profile (wiele przeglądarek)
OpenClaw obsługuje wiele nazwanych profili (konfiguracji routingu). Profile mogą być:
- openclaw-managed: dedykowana instancja przeglądarki opartej na Chromium z własnym katalogiem danych użytkownika + portem CDP
- zdalne: jawny adres URL CDP (przeglądarka oparta na Chromium działająca gdzie indziej)
- istniejąca sesja: istniejący profil Chrome przez automatyczne połączenie Chrome DevTools MCP
Wartości domyślne:
- Profil
openclawjest tworzony automatycznie, jeśli go brakuje. - Profil
userjest wbudowany do dołączania istniejącej sesji Chrome MCP. - Profile istniejącej sesji poza
usersą opcjonalne; utwórz je za pomocą--driver existing-session. - Lokalne porty CDP są domyślnie przydzielane z zakresu 18800-18899.
- Usunięcie profilu przenosi jego lokalny katalog danych do Kosza.
Wszystkie punkty końcowe sterowania akceptują ?profile=<name>; CLI używa --browser-profile.
Istniejąca sesja przez Chrome DevTools MCP
OpenClaw może także dołączyć do działającego profilu przeglądarki opartej na Chromium przez oficjalny serwer Chrome DevTools MCP. Wykorzystuje to ponownie karty i stan logowania już otwarte w tym profilu przeglądarki.
Oficjalne materiały kontekstowe i konfiguracyjne:
Wbudowany profil:
user
Opcjonalnie: utwórz własny niestandardowy profil istniejącej sesji, jeśli chcesz użyć innej nazwy, koloru lub katalogu danych przeglądarki.
Domyślne zachowanie:
- Wbudowany profil
userużywa automatycznego połączenia Chrome MCP, które kieruje na domyślny lokalny profil Google Chrome.
Użyj userDataDir dla Brave, Edge, Chromium albo niedomyślnego profilu Chrome.
~ rozwija się do katalogu domowego w Twoim systemie operacyjnym:
{
browser: {
profiles: {
brave: {
driver: "existing-session",
attachOnly: true,
userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser",
color: "#FB542B",
},
},
},
}
Następnie w pasującej przeglądarce:
- Otwórz stronę inspekcji tej przeglądarki dla zdalnego debugowania.
- Włącz zdalne debugowanie.
- Pozostaw przeglądarkę uruchomioną i zatwierdź monit połączenia, gdy OpenClaw się dołącza.
Typowe strony inspekcji:
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
Test dymny dołączania na żywo:
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
Jak wygląda powodzenie:
statuspokazujedriver: existing-sessionstatuspokazujetransport: chrome-mcpstatuspokazujerunning: truetabswyświetla już otwarte karty przeglądarkisnapshotzwraca referencje z wybranej aktywnej karty
Co sprawdzić, jeśli dołączanie nie działa:
- docelowa przeglądarka oparta na Chromium ma wersję
144+ - zdalne debugowanie jest włączone na stronie inspekcji tej przeglądarki
- przeglądarka pokazała monit zgody na dołączenie i został on zaakceptowany
openclaw doctormigruje starą konfigurację przeglądarki opartą na Plugin i sprawdza, czy Chrome jest zainstalowany lokalnie dla domyślnych profili automatycznego połączenia, ale nie może włączyć za Ciebie zdalnego debugowania po stronie przeglądarki
Użycie przez agenta:
- Użyj
profile="user", gdy potrzebujesz stanu zalogowanej przeglądarki użytkownika. - Jeśli używasz niestandardowego profilu istniejącej sesji, przekaż tę jawną nazwę profilu.
- Wybieraj ten tryb tylko wtedy, gdy użytkownik jest przy komputerze, aby zatwierdzić monit dołączenia.
- Gateway albo host Node może uruchomić
npx chrome-devtools-mcp@latest --autoConnect
Uwagi:
- Ta ścieżka ma wyższe ryzyko niż odizolowany profil
openclaw, ponieważ może działać wewnątrz zalogowanej sesji przeglądarki. - OpenClaw nie uruchamia przeglądarki dla tego sterownika; tylko się do niej dołącza.
- OpenClaw używa tutaj oficjalnego przepływu Chrome DevTools MCP
--autoConnect. Jeśli ustawionouserDataDir, jest on przekazywany dalej, aby wskazać ten katalog danych użytkownika. - Istniejąca sesja może zostać dołączona na wybranym hoście albo przez połączony Node przeglądarki. Jeśli Chrome działa gdzie indziej i żaden Node przeglądarki nie jest połączony, użyj zamiast tego zdalnego CDP albo hosta Node.
Niestandardowe uruchomienie Chrome MCP
Nadpisz uruchamiany serwer Chrome DevTools MCP dla profilu, gdy domyślny
przepływ npx chrome-devtools-mcp@latest nie jest tym, czego chcesz (hosty offline,
przypięte wersje, binaria vendored):
| Pole | Co robi |
|---|---|
mcpCommand |
Plik wykonywalny uruchamiany zamiast npx. Rozwiązywany bez zmian; ścieżki bezwzględne są honorowane. |
mcpArgs |
Tablica argumentów przekazywana dosłownie do mcpCommand. Zastępuje domyślne argumenty chrome-devtools-mcp@latest --autoConnect. |
Gdy cdpUrl jest ustawione w profilu istniejącej sesji, OpenClaw pomija
--autoConnect i automatycznie przekazuje punkt końcowy do Chrome MCP:
http(s)://...→--browserUrl <url>(punkt końcowy wykrywania HTTP DevTools).ws(s)://...→--wsEndpoint <url>(bezpośredni WebSocket CDP).
Flag punktów końcowych i userDataDir nie można łączyć: gdy ustawiono cdpUrl,
userDataDir jest ignorowane przy uruchamianiu Chrome MCP, ponieważ Chrome MCP dołącza do
działającej przeglądarki za punktem końcowym zamiast otwierać katalog
profilu.
Ograniczenia funkcji istniejącej sesji
W porównaniu z zarządzanym profilem openclaw sterowniki istniejącej sesji mają więcej ograniczeń:
- Zrzuty ekranu - przechwytywanie stron i przechwytywanie elementów przez
--refdziała; selektory CSS--elementnie działają.--full-pagenie można łączyć z--refani--element. Playwright nie jest wymagany do zrzutów ekranu strony ani elementów opartych na referencjach. - Akcje -
click,type,hover,scrollIntoView,dragiselectwymagają referencji ze snapshotu (bez selektorów CSS).click-coordsklika widoczne współrzędne viewportu i nie wymaga referencji ze snapshotu.clickużywa wyłącznie lewego przycisku.typenie obsługujeslowly=true; użyjfillalbopress.pressnie obsługujedelayMs.type,hover,scrollIntoView,drag,select,fillievaluatenie obsługują limitów czasu dla pojedynczego wywołania.selectakceptuje pojedynczą wartość. - Oczekiwanie / przesyłanie / dialog -
wait --urlobsługuje wzorce dokładne, podciągu i glob;wait --load networkidlenie jest obsługiwane. Hooki przesyłania wymagająrefalboinputRef, jednego pliku naraz, bez CSSelement. Hooki dialogów nie obsługują nadpisywania limitu czasu. - Funkcje tylko zarządzane - akcje wsadowe, eksport PDF, przechwytywanie pobierania i
responsebodynadal wymagają ścieżki zarządzanej przeglądarki.
Gwarancje izolacji
- Dedykowany katalog danych użytkownika: nigdy nie dotyka osobistego profilu przeglądarki.
- Dedykowane porty: unika
9222, aby zapobiec kolizjom z przepływami developerskimi. - Deterministyczne sterowanie kartami:
tabszwraca najpierwsuggestedTargetId, następnie stabilne uchwytytabId, takie jakt1, opcjonalne etykiety i surowetargetId. Agenci powinni ponownie używaćsuggestedTargetId; surowe identyfikatory pozostają dostępne do debugowania i zgodności.
Wybór przeglądarki
Podczas uruchamiania lokalnego OpenClaw wybiera pierwszą dostępną:
- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
Możesz nadpisać to za pomocą browser.executablePath.
Platformy:
- macOS: sprawdza
/Applicationsi~/Applications. - Linux: sprawdza typowe lokalizacje Chrome/Brave/Edge/Chromium w
/usr/bin,/snap/bin,/opt/google,/opt/brave.com,/usr/lib/chromiumi/usr/lib/chromium-browser. - Windows: sprawdza typowe lokalizacje instalacji.
API sterowania (opcjonalne)
Do skryptowania i debugowania Gateway udostępnia małe HTTP API sterowania
tylko przez local loopback oraz pasujące CLI openclaw browser (snapshoty, referencje, usprawnienia
oczekiwania, wyjście JSON, przepływy debugowania). Pełną dokumentację znajdziesz w
API sterowania przeglądarką.
Rozwiązywanie problemów
Problemy specyficzne dla Linuksa (zwłaszcza snap Chromium) opisuje Rozwiązywanie problemów z przeglądarką.
Konfiguracje z podziałem hostów WSL2 Gateway + Windows Chrome opisuje Rozwiązywanie problemów z WSL2 + Windows + zdalnym CDP Chrome.
Błąd uruchomienia CDP a blokada SSRF nawigacji
To różne klasy błędów i wskazują na różne ścieżki kodu.
- Błąd uruchomienia lub gotowości CDP oznacza, że OpenClaw nie może potwierdzić, że płaszczyzna sterowania przeglądarką jest zdrowa.
- Blokada SSRF nawigacji oznacza, że płaszczyzna sterowania przeglądarką jest zdrowa, ale docelowy adres nawigacji strony został odrzucony przez politykę.
Typowe przykłady:
- Błąd uruchomienia lub gotowości 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 openclawgdy zewnętrzna usługa CDP przez loopback jest skonfigurowana bezattachOnly: true
- Blokada SSRF nawigacji:
- przepływy
open,navigate, snapshot albo otwierania kart kończą się błędem polityki przeglądarki/sieci, podczas gdystartitabsnadal działają
- przepływy
Użyj tej minimalnej sekwencji, aby je rozdzielić:
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw tabs
openclaw browser --browser-profile openclaw open https://example.com
Jak odczytywać wyniki:
- Jeśli
startkończy się błędemnot reachable after start, najpierw rozwiąż problem gotowości CDP. - Jeśli
startsię powiedzie, aletabssię nie powiedzie, płaszczyzna sterowania nadal jest niezdrowa. Traktuj to jako problem osiągalności CDP, nie problem nawigacji strony. - Jeśli
startitabssię powiodą, aleopenalbonavigatesię nie powiedzie, płaszczyzna sterowania przeglądarką działa, a błąd dotyczy polityki nawigacji albo strony docelowej. - Jeśli
start,tabsiopenwszystkie się powiodą, podstawowa ścieżka sterowania zarządzaną przeglądarką jest zdrowa.
Ważne szczegóły zachowania:
- Konfiguracja przeglądarki domyślnie używa obiektu polityki SSRF w trybie fail-closed, nawet gdy nie konfigurujesz
browser.ssrfPolicy. - Dla lokalnego zarządzanego profilu
openclawprzez loopback kontrole zdrowia CDP celowo pomijają wymuszanie osiągalności SSRF przeglądarki dla własnej lokalnej płaszczyzny sterowania OpenClaw. - Ochrona nawigacji jest osobna. Pomyślny wynik
startalbotabsnie oznacza, że późniejszy celopenalbonavigatejest dozwolony.
Wytyczne bezpieczeństwa:
- Nie rozluźniaj domyślnie polityki SSRF przeglądarki.
- Preferuj wąskie wyjątki hostów, takie jak
hostnameAllowlistalboallowedHostnames, zamiast szerokiego dostępu do sieci prywatnej. - Używaj
dangerouslyAllowPrivateNetwork: truetylko w celowo zaufanych środowiskach, gdzie dostęp przeglądarki do sieci prywatnej jest wymagany i sprawdzony.
Narzędzia agenta + jak działa sterowanie
Agent otrzymuje jedno narzędzie do automatyzacji przeglądarki:
browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
Jak to działa:
browser snapshotzwraca stabilne drzewo interfejsu użytkownika (AI lub ARIA).browser actużywa identyfikatorówrefze snapshotu do klikania/pisania/przeciągania/wybierania.browser screenshotprzechwytuje piksele (całą stronę, element lub oznaczone odwołania).browser doctorsprawdza gotowość Gateway, Plugin, profilu, przeglądarki i karty.browserakceptuje:profile, aby wybrać nazwany profil przeglądarki (openclaw, chrome lub zdalny CDP).target(sandbox|host|node), aby wybrać, gdzie działa przeglądarka.- W sesjach izolowanych
target: "host"wymagaagents.defaults.sandbox.browser.allowHostControl=true. - Jeśli
targetzostanie pominięte: sesje izolowane domyślnie używająsandbox, a sesje nieizolowane domyślnie używająhost. - Jeśli podłączony jest węzeł obsługujący przeglądarkę, narzędzie może automatycznie skierować do niego ruch, chyba że przypniesz
target="host"lubtarget="node".
Dzięki temu agent pozostaje deterministyczny i unika kruchych selektorów.
Powiązane
- Przegląd narzędzi - wszystkie dostępne narzędzia agenta
- Izolowanie - sterowanie przeglądarką w środowiskach izolowanych
- Bezpieczeństwo - ryzyka związane ze sterowaniem przeglądarką i wzmacnianie zabezpieczeń