Browser (zarządzana przez openclaw)
OpenClaw może uruchamiać dedykowany profil Chrome/Brave/Edge/Chromium, którym steruje agent. Jest on odizolowany od Twojej osobistej przeglądarki i zarządzany przez małą lokalną usługę sterowania wewnątrz bramy (tylko loopback). Widok dla początkujących:- Traktuj to jak oddzielną przeglądarkę tylko dla agenta.
- Profil
openclawnie ingeruje w Twój osobisty profil przeglądarki. - Agent może otwierać karty, czytać strony, klikać i wpisywać tekst w bezpiecznym obszarze.
- Wbudowany profil
userdołącza do Twojej rzeczywistej 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/otwieranie/przełączanie/zamykanie).
- Działania agenta (kliknięcie/pisanie/przeciąganie/zaznaczanie), snapshoty, zrzuty ekranu, pliki PDF.
- Opcjonalną obsługę wielu profili (
openclaw,work,remote, …).
Szybki start
openclaw browser całkowicie zniknęło albo agent zgłasza, że narzędzie browser
jest niedostępne, przejdź do Brak polecenia lub narzędzia browser.
Sterowanie pluginem
Domyślne narzędziebrowser jest teraz bundlowanym pluginem dostarczanym i włączonym
domyślnie. Oznacza to, że możesz je wyłączyć lub zastąpić bez usuwania reszty
systemu pluginów OpenClaw:
browser. Domyślne środowisko browser wymaga obu warunków:
plugins.entries.browser.enablednie może być wyłączonebrowser.enabled=true
openclaw browser),
metoda bramy (browser.request), narzędzie agenta oraz domyślna usługa sterowania przeglądarką
znikną razem. Twoja konfiguracja browser.* pozostanie nienaruszona, aby
zastępczy plugin mógł z niej skorzystać.
Bundlowany plugin browser odpowiada teraz także za implementację środowiska uruchomieniowego przeglądarki.
Rdzeń zachowuje tylko współdzielone helpery Plugin SDK oraz eksporty zgodności dla
starszych wewnętrznych ścieżek importu. W praktyce usunięcie lub zastąpienie pakietu pluginu browser
usuwa zestaw funkcji przeglądarki zamiast pozostawiać drugie środowisko uruchomieniowe należące do rdzenia.
Zmiany konfiguracji browser nadal wymagają restartu bramy, aby bundlowany plugin
mógł ponownie zarejestrować swoją usługę przeglądarki z nowymi ustawieniami.
Brak polecenia lub narzędzia browser
Jeśliopenclaw browser nagle stało się nieznanym poleceniem po aktualizacji albo
agent zgłasza brak narzędzia browser, najczęstszą przyczyną jest restrykcyjna
lista plugins.allow, która nie zawiera browser.
Przykład błędnej konfiguracji:
browser do listy dozwolonych pluginów:
browser.enabled=truesamo w sobie nie wystarcza, gdy ustawionoplugins.allow.plugins.entries.browser.enabled=truesamo w sobie również nie wystarcza, gdy ustawionoplugins.allow.tools.alsoAllow: ["browser"]nie ładuje bundlowanego pluginu browser. To ustawienie jedynie dostosowuje politykę narzędzi po załadowaniu pluginu.- Jeśli nie potrzebujesz restrykcyjnej listy dozwolonych pluginów, usunięcie
plugins.allowtakże przywraca domyślne zachowanie bundlowanej przeglądarki.
openclaw browserjest nieznanym poleceniem.- Brakuje
browser.request. - Agent zgłasza, że narzędzie browser jest niedostępne lub brakuje go.
Profile: openclaw vs user
openclaw: zarządzana, izolowana przeglądarka (nie wymaga rozszerzenia).user: wbudowany profil dołączania Chrome MCP do Twojej rzeczywistej zalogowanej sesji Chrome.
- Domyślnie: używaj izolowanej przeglądarki
openclaw. - Preferuj
profile="user", gdy znaczenie mają istniejące zalogowane sesje i użytkownik jest przy komputerze, aby kliknąć/zatwierdzić ewentualny monit o dołączenie. profilejest jawnym nadpisaniem, gdy chcesz określony tryb przeglądarki.
browser.defaultProfile: "openclaw", jeśli chcesz domyślnie używać trybu zarządzanego.
Konfiguracja
Ustawienia browser znajdują się w~/.openclaw/openclaw.json.
- Usługa sterowania przeglądarką nasłuchuje na loopback na porcie wyliczanym z
gateway.port(domyślnie:18791, czyli brama + 2). - Jeśli nadpiszesz port bramy (
gateway.portlubOPENCLAW_GATEWAY_PORT), wyliczane porty przeglądarki przesuną się, aby pozostać w tej samej „rodzinie”. cdpUrldomyślnie wskazuje zarządzany lokalny port CDP, jeśli nie jest ustawiony.remoteCdpTimeoutMsdotyczy sprawdzania osiągalności zdalnego (nie-loopback) CDP.remoteCdpHandshakeTimeoutMsdotyczy sprawdzania osiągalności połączenia WebSocket zdalnego CDP.- Nawigacja/otwieranie kart przeglądarki jest chronione przed SSRF przed rozpoczęciem nawigacji i ponownie sprawdzane w trybie best-effort po nawigacji dla końcowego adresu
http(s). - W ścisłym trybie SSRF sprawdzane są również wykrywanie/sondy zdalnych punktów końcowych CDP (
cdpUrl, w tym wyszukiwania/json/version). browser.ssrfPolicy.dangerouslyAllowPrivateNetworkjest domyślnie wyłączone. Ustawtruetylko wtedy, gdy świadomie ufasz dostępowi przeglądarki do sieci prywatnej.browser.ssrfPolicy.allowPrivateNetworkpozostaje obsługiwane jako starszy alias dla zgodności.attachOnly: trueoznacza „nigdy nie uruchamiaj lokalnej przeglądarki; dołączaj tylko wtedy, gdy już działa”.color+colordla poszczególnych profili zabarwiają interfejs przeglądarki, aby było widać, który profil jest aktywny.- Domyślny profil to
openclaw(samodzielna przeglądarka zarządzana przez OpenClaw). UżyjdefaultProfile: "user", aby przełączyć domyślnie na zalogowaną przeglądarkę użytkownika. - Kolejność automatycznego wykrywania: domyślna przeglądarka systemowa, jeśli jest oparta na Chromium; w przeciwnym razie Chrome → Brave → Edge → Chromium → Chrome Canary.
- Lokalne profile
openclawautomatycznie przypisującdpPort/cdpUrl— ustawiaj je tylko dla zdalnego CDP. driver: "existing-session"używa Chrome DevTools MCP zamiast surowego CDP. Nie ustawiajcdpUrldla tego sterownika.- Ustaw
browser.profiles.<name>.userDataDir, gdy profil existing-session ma dołączać do niestandardowego profilu użytkownika Chromium, takiego jak Brave lub Edge.
Użyj Brave (lub innej przeglądarki opartej na Chromium)
Jeśli Twoja domyślna przeglądarka systemowa jest oparta na Chromium (Chrome/Brave/Edge itp.), OpenClaw użyje jej automatycznie. Ustawbrowser.executablePath, aby nadpisać
automatyczne wykrywanie:
Przykład CLI:
Sterowanie lokalne vs zdalne
- Sterowanie lokalne (domyślne): brama uruchamia usługę sterowania loopback i może uruchomić lokalną przeglądarkę.
- Sterowanie zdalne (host węzła): uruchom host węzła na maszynie, na której jest przeglądarka; brama przekazuje do niego działania przeglądarki.
- Zdalne CDP: ustaw
browser.profiles.<name>.cdpUrl(lubbrowser.cdpUrl), aby dołączyć do zdalnej przeglądarki opartej na Chromium. W takim przypadku OpenClaw nie uruchomi lokalnej przeglądarki.
- lokalne profile zarządzane:
openclaw browser stopzatrzymuje proces przeglądarki, który uruchomił OpenClaw - profile tylko-dołączania i zdalnego CDP:
openclaw browser stopzamyka aktywną sesję sterowania i zwalnia nadpisania emulacji Playwright/CDP (viewport, schemat kolorów, ustawienia regionalne, strefa czasowa, tryb offline i podobny stan), nawet jeśli OpenClaw nie uruchomił żadnego procesu przeglądarki
- Tokeny w zapytaniu (np.
https://provider.example?token=<token>) - Uwierzytelnianie HTTP Basic (np.
https://user:pass@provider.example)
/json/* oraz podczas łączenia
z WebSocketem CDP. Dla tokenów preferuj zmienne środowiskowe lub menedżery sekretów
zamiast zapisywania ich w plikach konfiguracji.
Proxy browser węzła (domyślnie bez konfiguracji)
Jeśli uruchamiasz host węzła na maszynie, na której znajduje się Twoja przeglądarka, OpenClaw może automatycznie kierować wywołania narzędzia browser do tego węzła bez dodatkowej konfiguracji browser. To domyślna ścieżka dla zdalnych bram. Uwagi:- Host węzła udostępnia swój lokalny serwer sterowania przeglądarką przez polecenie proxy.
- Profile pochodzą z własnej konfiguracji
browser.profileswęzła (takiej samej jak lokalnie). nodeHost.browserProxy.allowProfilesjest opcjonalne. Pozostaw je puste dla starszego/domyślnego zachowania: wszystkie skonfigurowane profile pozostają osiągalne przez proxy, włącznie z trasami tworzenia/usuwania profili.- Jeśli ustawisz
nodeHost.browserProxy.allowProfiles, OpenClaw potraktuje to jako granicę najmniejszych uprawnień: można kierować tylko do profili z listy dozwolonych, a trwałe trasy tworzenia/usuwania profili są blokowane na powierzchni proxy. - Wyłącz tę funkcję, jeśli jej nie chcesz:
- Na węźle:
nodeHost.browserProxy.enabled=false - Na bramie:
gateway.nodes.browser.mode="off"
- Na węźle:
Browserless (hostowany zdalny CDP)
Browserless to hostowana usługa Chromium, która udostępnia adresy połączeń CDP przez HTTPS i WebSocket. OpenClaw może używać obu form, ale dla zdalnego profilu przeglądarki najprostszą opcją jest bezpośredni adres WebSocket z dokumentacji połączeń Browserless. Przykład:- Zamień
<BROWSERLESS_API_KEY>na swój rzeczywisty token Browserless. - Wybierz punkt końcowy regionu zgodny z Twoim kontem Browserless (zobacz ich dokumentację).
- Jeśli Browserless podaje bazowy adres URL HTTPS, możesz albo przekształcić go do
wss://dla bezpośredniego połączenia CDP, albo zachować adres HTTPS i pozwolić OpenClaw wykryć/json/version.
Bezpośredni dostawcy WebSocket CDP
Niektóre hostowane usługi przeglądarki udostępniają bezpośredni punkt końcowy WebSocket zamiast standardowego wykrywania CDP opartego na HTTP (/json/version). OpenClaw obsługuje oba:
- Punkty końcowe HTTP(S) — OpenClaw wywołuje
/json/version, aby wykryć adres URL debuggera WebSocket, a następnie się łączy. - Punkty końcowe WebSocket (
ws:///wss://) — OpenClaw łączy się bezpośrednio, pomijając/json/version. Używaj tego dla usług takich jak Browserless, Browserbase lub dowolnego dostawcy, który przekazuje adres URL WebSocket.
Browserbase
Browserbase to chmurowa platforma do uruchamiania przeglądarek headless z wbudowanym rozwiązywaniem CAPTCHA, trybem stealth i rezydencjalnymi serwerami proxy.- Zarejestruj się i skopiuj swój API Key z panelu Overview.
- Zamień
<BROWSERBASE_API_KEY>na swój rzeczywisty klucz API Browserbase. - Browserbase automatycznie tworzy sesję przeglądarki przy połączeniu WebSocket, więc ręczne tworzenie sesji nie jest potrzebne.
- Darmowy plan pozwala na jedną równoczesną sesję i jedną godzinę przeglądarki miesięcznie. Limity płatnych planów znajdziesz w cenniku.
- Pełne informacje referencyjne o API, przewodniki SDK i przykłady integracji znajdziesz w dokumentacji Browserbase.
Bezpieczeństwo
Najważniejsze założenia:- Sterowanie przeglądarką jest dostępne tylko przez loopback; dostęp przechodzi przez uwierzytelnianie bramy lub parowanie węzła.
- Samodzielne loopback API HTTP przeglądarki używa wyłącznie uwierzytelniania wspólnym sekretem:
token bearer bramy,
x-openclaw-passwordalbo HTTP Basic auth z skonfigurowanym hasłem bramy. - Nagłówki tożsamości Tailscale Serve oraz
gateway.auth.mode: "trusted-proxy"nie uwierzytelniają tego samodzielnego loopback API przeglądarki. - Jeśli sterowanie przeglądarką jest włączone i nie skonfigurowano uwierzytelniania wspólnym sekretem, OpenClaw
automatycznie generuje
gateway.auth.tokenprzy starcie i zapisuje go w konfiguracji. - OpenClaw nie generuje automatycznie tego tokenu, gdy
gateway.auth.modema już wartośćpassword,nonelubtrusted-proxy. - Utrzymuj bramę i wszystkie hosty węzłów w sieci prywatnej (Tailscale); unikaj publicznej ekspozycji.
- Traktuj zdalne adresy URL/tokeny CDP jak sekrety; preferuj zmienne env lub menedżer sekretów.
- Jeśli to możliwe, preferuj szyfrowane punkty końcowe (HTTPS lub WSS) oraz tokeny krótkotrwałe.
- Unikaj osadzania długotrwałych tokenów bezpośrednio w plikach konfiguracji.
Profile (wiele przeglądarek)
OpenClaw obsługuje wiele nazwanych profili (konfiguracji routingu). Profile mogą być:- zarządzane przez openclaw: 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 uruchomiona gdzie indziej)
- istniejąca sesja: istniejący profil Chrome przez automatyczne łączenie Chrome DevTools MCP
- Profil
openclawjest tworzony automatycznie, jeśli go brakuje. - Profil
userjest wbudowany do dołączania existing-session przez Chrome MCP. - Profile existing-session poza
usersą opcjonalne; twó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.
?profile=<name>; CLI używa --browser-profile.
Existing-session przez Chrome DevTools MCP
OpenClaw może także dołączyć do uruchomionego profilu przeglądarki opartej na Chromium przez oficjalny serwer Chrome DevTools MCP. Pozwala to ponownie wykorzystać karty i stan logowania, które są już otwarte w tym profilu przeglądarki. Oficjalne materiały referencyjne i instrukcje konfiguracji: Wbudowany profil:user
- Wbudowany profil
userużywa automatycznego łączenia Chrome MCP, które kieruje na domyślny lokalny profil Google Chrome.
userDataDir dla Brave, Edge, Chromium lub niestandardowego profilu Chrome:
- Otwórz stronę inspect tej przeglądarki dla zdalnego debugowania.
- Włącz zdalne debugowanie.
- Pozostaw przeglądarkę uruchomioną i zatwierdź monit o połączenie, gdy OpenClaw będzie się dołączać.
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
statuspokazujedriver: existing-sessionstatuspokazujetransport: chrome-mcpstatuspokazujerunning: truetabswyświetla już otwarte karty przeglądarkisnapshotzwraca refy z wybranej aktywnej karty
- docelowa przeglądarka oparta na Chromium ma wersję
144+ - w stronie inspect tej przeglądarki włączono zdalne debugowanie
- przeglądarka wyświetliła monit o zgodę na dołączenie i został on zaakceptowany
openclaw doctormigruje starą konfigurację przeglądarki opartą na rozszerzeniu i sprawdza, czy Chrome jest zainstalowany lokalnie dla domyślnych profili auto-connect, ale nie może włączyć zdalnego debugowania po stronie przeglądarki za Ciebie
- Użyj
profile="user", gdy potrzebujesz zalogowanego stanu przeglądarki użytkownika. - Jeśli używasz niestandardowego profilu existing-session, przekaż jawną nazwę tego profilu.
- Wybieraj ten tryb tylko wtedy, gdy użytkownik jest przy komputerze, aby zatwierdzić monit o dołączenie.
- brama lub host węzła może uruchomić
npx chrome-devtools-mcp@latest --autoConnect
- Ta ścieżka jest bardziej ryzykowna niż izolowany profil
openclaw, ponieważ może działać wewnątrz Twojej zalogowanej sesji przeglądarki. - OpenClaw nie uruchamia przeglądarki dla tego sterownika; dołącza tylko do istniejącej sesji.
- OpenClaw używa tutaj oficjalnego przepływu Chrome DevTools MCP
--autoConnect. Jeśli ustawionouserDataDir, OpenClaw przekazuje je dalej, aby kierować na jawny katalog danych użytkownika Chromium. - Zrzuty ekranu existing-session obsługują przechwytywanie stron i przechwytywanie elementów
--refze snapshotów, ale nie obsługują selektorów CSS--element. - Zrzuty ekranu stron existing-session działają bez Playwright przez Chrome MCP.
Zrzuty elementów oparte na refach (
--ref) również działają, ale--full-pagenie może być łączone z--refani--element. - Działania existing-session są nadal bardziej ograniczone niż w ścieżce
zarządzanej przeglądarki:
click,type,hover,scrollIntoView,dragiselectwymagają refów snapshotu zamiast selektorów CSSclickobsługuje tylko lewy przycisk (bez nadpisywania przycisku ani modyfikatorów)typenie obsługujeslowly=true; użyjfilllubpresspressnie obsługujedelayMshover,scrollIntoView,drag,select,fillievaluatenie obsługują nadpisywania limitu czasu dla pojedynczego wywołaniaselectobecnie obsługuje tylko jedną wartość
- Existing-session
wait --urlobsługuje wzorce dokładne, częściowe i glob, tak jak inne sterowniki przeglądarki.wait --load networkidlenie jest jeszcze obsługiwane. - Hooki uploadu existing-session wymagają
reflubinputRef, obsługują po jednym pliku naraz i nie obsługują kierowania przez CSSelement. - Hooki dialogów existing-session nie obsługują nadpisywania limitu czasu.
- Niektóre funkcje nadal wymagają ścieżki zarządzanej przeglądarki, w tym działania
wsadowe, eksport PDF, przechwytywanie pobrań i
responsebody. - Existing-session jest lokalne dla hosta. Jeśli Chrome znajduje się na innej maszynie lub w innej przestrzeni nazw sieci, użyj zdalnego CDP albo hosta węzła.
Gwarancje izolacji
- Dedykowany katalog danych użytkownika: nigdy nie ingeruje w Twój osobisty profil przeglądarki.
- Dedykowane porty: unika
9222, aby zapobiec kolizjom z przepływami pracy deweloperskiej. - Deterministyczne sterowanie kartami: kierowanie kart według
targetId, a nie „ostatniej karty”.
Wybór przeglądarki
Przy lokalnym uruchamianiu OpenClaw wybiera pierwszą dostępną:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Platformy:
- macOS: sprawdza
/Applicationsi~/Applications. - Linux: szuka
google-chrome,brave,microsoft-edge,chromiumitd. - Windows: sprawdza typowe lokalizacje instalacji.
API sterowania (opcjonalne)
Tylko dla integracji lokalnych brama udostępnia małe loopback API HTTP:- Status/start/stop:
GET /,POST /start,POST /stop - Karty:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Snapshot/zrzut ekranu:
GET /snapshot,POST /screenshot - Działania:
POST /navigate,POST /act - Hooki:
POST /hooks/file-chooser,POST /hooks/dialog - Pobrania:
POST /download,POST /wait/download - Debugowanie:
GET /console,POST /pdf - Debugowanie:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Sieć:
POST /response/body - Stan:
GET /cookies,POST /cookies/set,POST /cookies/clear - Stan:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Ustawienia:
POST /set/offline,POST /set/headers,POST /set/credentials,POST /set/geolocation,POST /set/media,POST /set/timezone,POST /set/locale,POST /set/device
?profile=<name>.
Jeśli skonfigurowano uwierzytelnianie bramy wspólnym sekretem, trasy HTTP browser także wymagają uwierzytelniania:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>lub HTTP Basic auth z tym hasłem
- To samodzielne loopback API browser nie korzysta z trusted-proxy ani nagłówków tożsamości Tailscale Serve.
- Jeśli
gateway.auth.modema wartośćnonelubtrusted-proxy, te trasy loopback browser nie dziedziczą tych trybów opartych na tożsamości; utrzymuj je wyłącznie na loopback.
Kontrakt błędów /act
POST /act używa strukturalnej odpowiedzi błędu dla walidacji na poziomie trasy i
błędów polityki:
code:
ACT_KIND_REQUIRED(HTTP 400): brakujekindalbo jest nierozpoznane.ACT_INVALID_REQUEST(HTTP 400): ładunek działania nie przeszedł normalizacji lub walidacji.ACT_SELECTOR_UNSUPPORTED(HTTP 400): użytoselectorz nieobsługiwanym rodzajem działania.ACT_EVALUATE_DISABLED(HTTP 403):evaluate(lubwait --fn) jest wyłączone przez konfigurację.ACT_TARGET_ID_MISMATCH(HTTP 403): najwyższopoziomowy lub wsadowytargetIdkoliduje z celem żądania.ACT_EXISTING_SESSION_UNSUPPORTED(HTTP 501): działanie nie jest obsługiwane dla profili existing-session.
{ "error": "<message>" } bez
pola code.
Wymaganie Playwright
Niektóre funkcje (navigate/act/snapshot AI/snapshot roli, zrzuty ekranu elementów, PDF) wymagają Playwright. Jeśli Playwright nie jest zainstalowany, te punkty końcowe zwracają czytelny błąd 501. Co nadal działa bez Playwright:- Snapshoty ARIA
- Zrzuty ekranu stron dla zarządzanej przeglądarki
openclaw, gdy dostępny jest WebSocket CDP dla karty - Zrzuty ekranu stron dla profili
existing-session/ Chrome MCP - Zrzuty ekranu existing-session oparte na refach (
--ref) z danych wyjściowych snapshotu
navigateact- snapshoty AI / snapshoty roli
- zrzuty ekranu elementów z selektorem CSS (
--element) - pełny eksport PDF przeglądarki
--full-page; trasa zwraca fullPage is not supported for element screenshots.
Jeśli widzisz Playwright is not available in this gateway build, zainstaluj pełny
pakiet Playwright (nie playwright-core) i uruchom ponownie bramę albo zainstaluj
OpenClaw ponownie z obsługą browser.
Instalacja Playwright w Dockerze
Jeśli Twoja brama działa w Dockerze, unikajnpx playwright (konflikty nadpisań npm).
Zamiast tego użyj bundlowanego CLI:
PLAYWRIGHT_BROWSERS_PATH (na przykład
/home/node/.cache/ms-playwright) i upewnij się, że /home/node jest trwałe przez
OPENCLAW_HOME_VOLUME lub bind mount. Zobacz Docker.
Jak to działa (wewnętrznie)
Przepływ na wysokim poziomie:- Mały serwer sterowania przyjmuje żądania HTTP.
- Łączy się z przeglądarkami opartymi na Chromium (Chrome/Brave/Edge/Chromium) przez CDP.
- Do zaawansowanych działań (kliknięcie/pisanie/snapshot/PDF) używa Playwright ponad CDP.
- Gdy brakuje Playwright, dostępne są tylko operacje niewymagające Playwright.
Krótkie omówienie CLI
Wszystkie polecenia akceptują--browser-profile <name>, aby kierować na konkretny profil.
Wszystkie polecenia akceptują też --json dla danych wyjściowych czytelnych maszynowo (stabilne ładunki).
Podstawy:
openclaw browser statusopenclaw browser startopenclaw browser stopopenclaw browser tabsopenclaw browser tabopenclaw browser tab newopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://example.comopenclaw browser focus abcd1234openclaw browser close abcd1234
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref 12openclaw browser screenshot --ref e12openclaw browser snapshotopenclaw browser snapshot --format aria --limit 200openclaw browser snapshot --interactive --compact --depth 6openclaw browser snapshot --efficientopenclaw browser snapshot --labelsopenclaw browser snapshot --selector "#main" --interactiveopenclaw browser snapshot --frame "iframe#main" --interactiveopenclaw browser console --level error
- Dla profili tylko-dołączania i zdalnego CDP
openclaw browser stopnadal jest właściwym poleceniem czyszczenia po testach. Zamyka aktywną sesję sterowania i usuwa tymczasowe nadpisania emulacji zamiast zabijać bazową przeglądarkę. openclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000
openclaw browser navigate https://example.comopenclaw browser resize 1280 720openclaw browser click 12 --doubleopenclaw browser click e12 --doubleopenclaw browser type 23 "hello" --submitopenclaw browser press Enteropenclaw browser hover 44openclaw browser scrollintoview e12openclaw browser drag 10 11openclaw browser select 9 OptionA OptionBopenclaw browser download e12 report.pdfopenclaw browser waitfordownload report.pdfopenclaw browser upload /tmp/openclaw/uploads/file.pdfopenclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'openclaw browser dialog --acceptopenclaw browser wait --text "Done"openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"openclaw browser evaluate --fn '(el) => el.textContent' --ref 7openclaw browser highlight e12openclaw browser trace startopenclaw browser trace stop
openclaw browser cookiesopenclaw browser cookies set session abc123 --url "https://example.com"openclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set theme darkopenclaw browser storage session clearopenclaw browser set offline onopenclaw browser set headers --headers-json '{"X-Debug":"1"}'openclaw browser set credentials user passopenclaw browser set credentials --clearopenclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"openclaw browser set geo --clearopenclaw browser set media darkopenclaw browser set timezone America/New_Yorkopenclaw browser set locale en-USopenclaw browser set device "iPhone 14"
uploadidialogto wywołania uzbrajające; uruchom je przed kliknięciem/naciśnięciem, które wywołuje selektor plików/okno dialogowe.- Ścieżki wyjściowe pobrań i śladów są ograniczone do tymczasowych katalogów OpenClaw:
- ślady:
/tmp/openclaw(awaryjnie:${os.tmpdir()}/openclaw) - pobrania:
/tmp/openclaw/downloads(awaryjnie:${os.tmpdir()}/openclaw/downloads)
- ślady:
- Ścieżki uploadu są ograniczone do tymczasowego katalogu uploadów OpenClaw:
- uploady:
/tmp/openclaw/uploads(awaryjnie:${os.tmpdir()}/openclaw/uploads)
- uploady:
uploadmoże też ustawiać inputy plików bezpośrednio przez--input-reflub--element.snapshot:--format ai(domyślnie, gdy zainstalowano Playwright): zwraca snapshot AI z liczbowymi refami (aria-ref="<n>").--format aria: zwraca drzewo dostępności (bez refów; tylko do inspekcji).--efficient(lub--mode efficient): kompaktowy preset snapshotu roli (interactive + compact + depth + niższe maxChars).- Domyślna konfiguracja (tylko narzędzie/CLI): ustaw
browser.snapshotDefaults.mode: "efficient", aby używać wydajnych snapshotów, gdy wywołujący nie przekazuje trybu (zobacz Konfiguracja bramy). - Opcje snapshotu roli (
--interactive,--compact,--depth,--selector) wymuszają snapshot oparty na rolach z refami typuref=e12. --frame "<iframe selector>"ogranicza snapshoty roli do iframe (w parze z refami roli takimi jake12).--interactivezwraca płaską, łatwą do wyboru listę elementów interaktywnych (najlepszą do sterowania działaniami).--labelsdodaje zrzut ekranu tylko viewportu z nakładanymi etykietami refów (wypisujeMEDIA:<path>).
click/type/itd. wymagająrefzesnapshot(albo liczbowego12, albo refu rolie12). Selektory CSS celowo nie są obsługiwane dla działań.
Snapshoty i refy
OpenClaw obsługuje dwa style „snapshotów”:-
Snapshot AI (liczbowe refy):
openclaw browser snapshot(domyślnie;--format ai)- Wynik: tekstowy snapshot zawierający liczbowe refy.
- Działania:
openclaw browser click 12,openclaw browser type 23 "hello". - Wewnętrznie ref jest rozstrzygany przez
aria-refPlaywright.
-
Snapshot roli (refy roli, np.
e12):openclaw browser snapshot --interactive(albo--compact,--depth,--selector,--frame)- Wynik: lista/drzewo oparte na rolach z
[ref=e12](i opcjonalnie[nth=1]). - Działania:
openclaw browser click e12,openclaw browser highlight e12. - Wewnętrznie ref jest rozstrzygany przez
getByRole(...)(plusnth()dla duplikatów). - Dodaj
--labels, aby dołączyć zrzut ekranu viewportu z nakładanymi etykietamie12.
- Wynik: lista/drzewo oparte na rolach z
- Refy nie są stabilne między nawigacjami; jeśli coś się nie powiedzie, uruchom
snapshotponownie i użyj świeżego refu. - Jeśli snapshot roli został wykonany z
--frame, refy roli są ograniczone do tego iframe aż do następnego snapshotu roli.
Rozszerzone możliwości wait
Możesz czekać nie tylko na czas/tekst:- Czekanie na URL (globy obsługiwane przez Playwright):
openclaw browser wait --url "**/dash"
- Czekanie na stan załadowania:
openclaw browser wait --load networkidle
- Czekanie na predykat JS:
openclaw browser wait --fn "window.ready===true"
- Czekanie, aż selektor stanie się widoczny:
openclaw browser wait "#main"
Przepływy debugowania
Gdy działanie się nie powiedzie (np. „not visible”, „strict mode violation”, „covered”):openclaw browser snapshot --interactive- Użyj
click <ref>/type <ref>(preferuj refy roli w trybie interactive) - Jeśli nadal nie działa:
openclaw browser highlight <ref>, aby zobaczyć, na co kieruje Playwright - Jeśli strona zachowuje się dziwnie:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Do głębokiego debugowania: nagraj ślad:
openclaw browser trace start- odtwórz problem
openclaw browser trace stop(wypisujeTRACE:<path>)
Wynik JSON
--json służy do skryptów i narzędzi strukturalnych.
Przykłady:
refs oraz mały blok stats (lines/chars/refs/interactive), dzięki czemu narzędzia mogą analizować rozmiar i gęstość ładunku.
Ustawienia stanu i środowiska
Są przydatne w przepływach typu „spraw, by witryna zachowywała się jak X”:- Cookies:
cookies,cookies set,cookies clear - Storage:
storage local|session get|set|clear - Offline:
set offline on|off - Nagłówki:
set headers --headers-json '{"X-Debug":"1"}'(starszeset headers --json '{"X-Debug":"1"}'nadal jest obsługiwane) - Uwierzytelnianie HTTP Basic:
set credentials user pass(lub--clear) - Geolokalizacja:
set geo <lat> <lon> --origin "https://example.com"(lub--clear) - Media:
set media dark|light|no-preference|none - Strefa czasowa / ustawienia regionalne:
set timezone ...,set locale ... - Urządzenie / viewport:
set device "iPhone 14"(presety urządzeń Playwright)set viewport 1280 720
Bezpieczeństwo i prywatność
- Profil przeglądarki openclaw może zawierać zalogowane sesje; traktuj go jako wrażliwy.
browser act kind=evaluate/openclaw browser evaluateorazwait --fnwykonują dowolny JavaScript w kontekście strony. Prompt injection może tym sterować. Wyłącz to przezbrowser.evaluateEnabled=false, jeśli tego nie potrzebujesz.- Informacje o logowaniach i uwagach antybotowych (X/Twitter itp.) znajdziesz w Logowanie browser + publikowanie na X/Twitter.
- Utrzymuj bramę/host węzła w sieci prywatnej (tylko loopback lub tailnet).
- Zdalne punkty końcowe CDP są bardzo uprzywilejowane; tuneluj je i chroń.
Rozwiązywanie problemów
W przypadku problemów specyficznych dla Linuksa (szczególnie snap Chromium) zobacz Rozwiązywanie problemów z browser. W przypadku konfiguracji z rozdzieleniem hostów WSL2 Gateway + Windows Chrome zobacz Rozwiązywanie problemów z WSL2 + Windows + zdalnym Chrome CDP.Narzędzia agenta + jak działa sterowanie
Agent otrzymuje jedno narzędzie do automatyzacji browser:browser— status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
browser snapshotzwraca stabilne drzewo UI (AI lub ARIA).browser actużywa identyfikatorówrefze snapshotu do klikania/pisania/przeciągania/zaznaczania.browser screenshotprzechwytuje piksele (cała strona lub element).browserakceptuje:profile, aby wybrać nazwany profil przeglądarki (openclaw, chrome lub zdalne CDP).target(sandbox|host|node), aby wybrać, gdzie znajduje się przeglądarka.- W sesjach sandboxed
target: "host"wymagaagents.defaults.sandbox.browser.allowHostControl=true. - Jeśli pominięto
target: sesje sandboxed domyślnie używająsandbox, a sesje bez sandbox domyślniehost. - Jeśli podłączony jest węzeł z obsługą browser, narzędzie może automatycznie kierować do niego, chyba że przypniesz
target="host"lubtarget="node".
Powiązane
- Przegląd narzędzi — wszystkie dostępne narzędzia agenta
- Sandboxing — sterowanie browser w środowiskach sandbox
- Bezpieczeństwo — ryzyka i utwardzanie sterowania browser