OpenClaw può eseguire un profilo Chrome/Brave/Edge/Chromium dedicato controllato dall’agente. È isolato dal tuo browser personale ed è gestito tramite un piccolo servizio di controllo locale all’interno del Gateway (solo loopback). Vista per principianti:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Consideralo come un browser separato, solo per l’agente.
- Il profilo
openclawnon tocca il tuo profilo browser personale. - L’agente può aprire schede, leggere pagine, fare clic e digitare in un percorso sicuro.
- Il profilo
userintegrato si collega alla tua sessione Chrome reale con accesso effettuato tramite Chrome MCP.
Cosa ottieni
- Un profilo browser separato chiamato openclaw (accento arancione per impostazione predefinita).
- Controllo deterministico delle schede (elenca/apri/metti a fuoco/chiudi).
- Azioni dell’agente (clic/digitazione/trascinamento/selezione), snapshot, screenshot, PDF.
- Una skill
browser-automationinclusa che insegna agli agenti il ciclo di recupero snapshot, scheda stabile, riferimento obsoleto e blocco manuale quando il Plugin browser è abilitato. - Supporto opzionale per più profili (
openclaw,work,remote, …).
Avvio rapido
openclaw browser manca del tutto, o l’agente dice che lo strumento browser
non è disponibile, passa a Comando o strumento browser mancante.
Controllo del Plugin
Lo strumentobrowser predefinito è un Plugin incluso. Disabilitalo per sostituirlo con un altro Plugin che registra lo stesso nome di strumento browser:
plugins.entries.browser.enabled sia browser.enabled=true. Disabilitare solo il Plugin rimuove la CLI openclaw browser, il metodo Gateway browser.request, lo strumento dell’agente e il servizio di controllo come un’unica unità; la tua configurazione browser.* resta intatta per una sostituzione.
Le modifiche alla configurazione del browser richiedono un riavvio del Gateway affinché il Plugin possa registrare nuovamente il proprio servizio.
Guida per l’agente
Nota sul profilo strumenti:tools.profile: "coding" include web_search e
web_fetch, ma non include lo strumento browser completo. Se l’agente o un
sotto-agente avviato deve usare l’automazione del browser, aggiungi browser nella fase
del profilo:
agents.list[].tools.alsoAllow: ["browser"].
tools.subagents.tools.allow: ["browser"] da solo non basta perché la policy dei sotto-agenti
viene applicata dopo il filtro del profilo.
Il Plugin browser include due livelli di guida per l’agente:
- La descrizione dello strumento
browsercontiene il contratto compatto sempre attivo: scegliere il profilo corretto, mantenere i riferimenti sulla stessa scheda, usaretabId/etichette per il targeting delle schede e caricare la skill browser per il lavoro in più passaggi. - La skill
browser-automationinclusa contiene il ciclo operativo più esteso: controllare prima stato/schede, etichettare le schede dell’attività, acquisire uno snapshot prima di agire, acquisire un nuovo snapshot dopo modifiche dell’interfaccia, recuperare una volta i riferimenti obsoleti e segnalare login/2FA/captcha o blocchi di fotocamera/microfono come azione manuale invece di tirare a indovinare.
Comando o strumento browser mancante
Seopenclaw browser è sconosciuto dopo un aggiornamento, browser.request manca, o l’agente segnala lo strumento browser come non disponibile, la causa abituale è una lista plugins.allow che omette browser e l’assenza di un blocco di configurazione radice browser. Aggiungilo:
browser esplicito, per esempio browser.enabled=true o browser.profiles.<name>, attiva il Plugin browser incluso anche con un plugins.allow restrittivo, in linea con il comportamento della configurazione dei canali. plugins.entries.browser.enabled=true e tools.alsoAllow: ["browser"] non sostituiscono da soli l’appartenenza all’allowlist. Anche rimuovere completamente plugins.allow ripristina il valore predefinito.
Profili: openclaw vs user
openclaw: browser gestito e isolato (non richiede estensioni).user: profilo di collegamento Chrome MCP integrato per la tua sessione Chrome reale con accesso effettuato.
- Predefinito: usa il browser isolato
openclaw. - Preferisci
profile="user"quando le sessioni con accesso già effettuato sono importanti e l’utente è al computer per fare clic/approvare eventuali richieste di collegamento. profileè l’override esplicito quando vuoi una modalità browser specifica.
browser.defaultProfile: "openclaw" se vuoi la modalità gestita per impostazione predefinita.
Configurazione
Le impostazioni del browser si trovano in~/.openclaw/openclaw.json.
Porte e raggiungibilità
Porte e raggiungibilità
- Il servizio di controllo si associa al loopback su una porta derivata da
gateway.port(predefinita18791= gateway + 2). L’override digateway.portoOPENCLAW_GATEWAY_PORTsposta le porte derivate nella stessa famiglia. - I profili
openclawlocali assegnano automaticamentecdpPort/cdpUrl; impostali solo per CDP remoto.cdpUrlusa come valore predefinito la porta CDP locale gestita quando non è impostato. remoteCdpTimeoutMssi applica ai controlli di raggiungibilità HTTP CDP remoti eattachOnlye alle richieste HTTP di apertura scheda;remoteCdpHandshakeTimeoutMssi applica ai relativi handshake WebSocket CDP.localLaunchTimeoutMsè il budget per consentire a un processo Chrome gestito avviato localmente di esporre il proprio endpoint HTTP CDP.localCdpReadyTimeoutMsè il budget successivo per la disponibilità del websocket CDP dopo che il processo è stato individuato. Aumenta questi valori su Raspberry Pi, VPS di fascia bassa o hardware meno recente in cui Chromium si avvia lentamente. I valori devono essere interi positivi fino a120000ms; i valori di configurazione non validi vengono rifiutati.- I fallimenti ripetuti di avvio/prontezza di Chrome gestito attivano un circuit breaker per profilo. Dopo diversi fallimenti consecutivi, OpenClaw sospende brevemente i nuovi tentativi di avvio invece di generare Chromium a ogni chiamata allo strumento browser. Correggi il problema di avvio, disabilita il browser se non serve, oppure riavvia il Gateway dopo la riparazione.
actionTimeoutMsè il budget predefinito per le richiesteactdel browser quando il chiamante non passatimeoutMs. Il trasporto client aggiunge una piccola finestra di margine affinché le attese lunghe possano completarsi invece di andare in timeout al confine HTTP.tabCleanupè una pulizia best-effort per le schede aperte dalle sessioni browser dell’agente primario. La pulizia del ciclo di vita di sotto-agenti, cron e ACP chiude comunque le rispettive schede tracciate esplicite alla fine della sessione; le sessioni primarie mantengono riutilizzabili le schede attive, quindi chiudono in background le schede tracciate inattive o in eccesso.
Policy SSRF
Policy SSRF
- Navigazione del browser e apertura scheda sono protette da SSRF prima della navigazione e ricontrollate best-effort sull’URL
http(s)finale in seguito. - In modalità SSRF rigorosa, vengono controllati anche l’individuazione dell’endpoint CDP remoto e le sonde
/json/version(cdpUrl). - Le variabili d’ambiente Gateway/provider
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYeNO_PROXYnon applicano automaticamente un proxy al browser gestito da OpenClaw. Chrome gestito si avvia direttamente per impostazione predefinita, così le impostazioni proxy dei provider non indeboliscono i controlli SSRF del browser. - Per applicare un proxy al browser gestito stesso, passa flag proxy Chrome espliciti tramite
browser.extraArgs, come--proxy-server=...o--proxy-pac-url=.... La modalità SSRF rigorosa blocca il routing proxy esplicito del browser a meno che l’accesso del browser alla rete privata sia abilitato intenzionalmente. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkè disattivato per impostazione predefinita; abilitalo solo quando l’accesso del browser alla rete privata è considerato intenzionalmente attendibile.browser.ssrfPolicy.allowPrivateNetworkresta supportato come alias legacy.
Comportamento dei profili
Comportamento dei profili
attachOnly: truesignifica non avviare mai un browser locale; collegarsi solo se uno è già in esecuzione.headlesspuò essere impostato globalmente o per profilo locale gestito. I valori per profilo sovrascrivonobrowser.headless, quindi un profilo avviato localmente può rimanere headless mentre un altro resta visibile.POST /start?headless=trueeopenclaw browser start --headlessrichiedono un avvio headless una tantum per i profili locali gestiti senza riscriverebrowser.headlesso la configurazione del profilo. I profili con sessione esistente, solo collegamento e CDP remoto rifiutano la sostituzione perché OpenClaw non avvia quei processi browser.- Sugli host Linux senza
DISPLAYoWAYLAND_DISPLAY, i profili locali gestiti passano automaticamente a headless quando né l’ambiente né la configurazione del profilo/globale scelgono esplicitamente la modalità con interfaccia.openclaw browser status --jsonriportaheadlessSourcecomeenv,profile,config,request,linux-display-fallbackodefault. OPENCLAW_BROWSER_HEADLESS=1forza gli avvii locali gestiti in modalità headless per il processo corrente.OPENCLAW_BROWSER_HEADLESS=0forza la modalità con interfaccia per gli avvii ordinari e restituisce un errore risolvibile sugli host Linux senza un server display; una richiesta esplicitastart --headlessha comunque la precedenza per quel singolo avvio.executablePathpuò essere impostato globalmente o per profilo locale gestito. I valori per profilo sovrascrivonobrowser.executablePath, quindi profili gestiti diversi possono avviare browser diversi basati su Chromium. Entrambe le forme accettano~per la home directory del tuo OS.color(di primo livello e per profilo) colora la UI del browser così puoi vedere quale profilo è attivo.- Il profilo predefinito è
openclaw(standalone gestito). UsadefaultProfile: "user"per scegliere il browser utente con accesso eseguito. - Ordine di rilevamento automatico: browser predefinito di sistema se basato su Chromium; altrimenti Chrome → Brave → Edge → Chromium → Chrome Canary.
driver: "existing-session"usa Chrome DevTools MCP invece di CDP raw. Non impostarecdpUrlper quel driver.- Imposta
browser.profiles.<name>.userDataDirquando un profilo con sessione esistente deve collegarsi a un profilo utente Chromium non predefinito (Brave, Edge, ecc.). Questo percorso accetta anche~per la home directory del tuo OS.
Usare Brave o un altro browser basato su Chromium
Se il tuo browser predefinito di sistema è basato su Chromium (Chrome/Brave/Edge/ecc.), OpenClaw lo usa automaticamente. Impostabrowser.executablePath per sovrascrivere
il rilevamento automatico. I valori executablePath di primo livello e per profilo accettano ~
per la home directory del tuo OS:
- macOS
- Windows
- Linux
executablePath per profilo influisce solo sui profili locali gestiti che OpenClaw
avvia. I profili existing-session si collegano invece a un browser già in esecuzione,
e i profili CDP remoti usano il browser dietro cdpUrl.
Controllo locale e remoto
- Controllo locale (predefinito): il Gateway avvia il servizio di controllo loopback e può avviare un browser locale.
- Controllo remoto (host nodo): esegui un host nodo sulla macchina che ha il browser; il Gateway inoltra le azioni del browser a esso.
- CDP remoto: imposta
browser.profiles.<name>.cdpUrl(obrowser.cdpUrl) per collegarti a un browser remoto basato su Chromium. In questo caso, OpenClaw non avvierà un browser locale. - Per i servizi CDP gestiti esternamente su loopback (per esempio Browserless in
Docker pubblicato su
127.0.0.1), imposta ancheattachOnly: true. Il CDP loopback senzaattachOnlyviene trattato come un profilo browser locale gestito da OpenClaw. headlessinfluisce solo sui profili locali gestiti che OpenClaw avvia. Non riavvia né modifica i browser con sessione esistente o CDP remoti.executablePathsegue la stessa regola dei profili locali gestiti. Modificarlo su un profilo locale gestito in esecuzione contrassegna quel profilo per il riavvio/la riconciliazione, così il prossimo avvio usa il nuovo binario.
- profili locali gestiti:
openclaw browser stoparresta il processo browser che OpenClaw ha avviato - profili solo collegamento e CDP remoti:
openclaw browser stopchiude la sessione di controllo attiva e rilascia le sostituzioni di emulazione Playwright/CDP (viewport, schema colore, locale, fuso orario, modalità offline e stato simile), anche se nessun processo browser è stato avviato da OpenClaw
- Token di query (ad es.
https://provider.example?token=<token>) - Autenticazione HTTP Basic (ad es.
https://user:pass@provider.example)
/json/* e quando si connette
al WebSocket CDP. Preferisci variabili d’ambiente o gestori di segreti per i
token invece di committarli nei file di configurazione.
Proxy browser Node (predefinito zero-config)
Se esegui un host nodo sulla macchina che ha il tuo browser, OpenClaw può instradare automaticamente le chiamate agli strumenti browser verso quel nodo senza alcuna configurazione browser aggiuntiva. Questo è il percorso predefinito per i Gateway remoti. Note:- L’host nodo espone il proprio server locale di controllo browser tramite un comando proxy.
- I profili provengono dalla configurazione
browser.profilespropria del nodo (come in locale). nodeHost.browserProxy.allowProfilesè facoltativo. Lascialo vuoto per il comportamento legacy/predefinito: tutti i profili configurati restano raggiungibili tramite il proxy, incluse le route di creazione/eliminazione profilo.- Se imposti
nodeHost.browserProxy.allowProfiles, OpenClaw lo tratta come un limite di privilegio minimo: possono essere presi di mira solo i profili nella allowlist, e le route persistenti di creazione/eliminazione profilo sono bloccate sulla superficie proxy. - Disabilitalo se non lo vuoi:
- Sul nodo:
nodeHost.browserProxy.enabled=false - Sul gateway:
gateway.nodes.browser.mode="off"
- Sul nodo:
Browserless (CDP remoto ospitato)
Browserless è un servizio Chromium ospitato che espone URL di connessione CDP tramite HTTPS e WebSocket. OpenClaw può usare entrambe le forme, ma per un profilo browser remoto l’opzione più semplice è l’URL WebSocket diretto dalla documentazione di connessione di Browserless. Esempio:- Sostituisci
<BROWSERLESS_API_KEY>con il tuo vero token Browserless. - Scegli l’endpoint di regione che corrisponde al tuo account Browserless (vedi la loro documentazione).
- Se Browserless ti fornisce un URL base HTTPS, puoi convertirlo in
wss://per una connessione CDP diretta oppure mantenere l’URL HTTPS e lasciare che OpenClaw scopra/json/version.
Browserless Docker sullo stesso host
Quando Browserless è ospitato autonomamente in Docker e OpenClaw gira sull’host, tratta Browserless come un servizio CDP gestito esternamente:browser.profiles.browserless.cdpUrl deve essere raggiungibile dal
processo OpenClaw. Browserless deve anche pubblicizzare un endpoint raggiungibile corrispondente;
imposta EXTERNAL di Browserless sulla stessa base WebSocket pubblica verso OpenClaw, ad esempio
ws://127.0.0.1:3000, ws://browserless:3000 o un indirizzo stabile di rete Docker
privata. Se /json/version restituisce webSocketDebuggerUrl che punta a
un indirizzo che OpenClaw non può raggiungere, il CDP HTTP può apparire sano mentre il collegamento
WebSocket continua a fallire.
Non lasciare attachOnly non impostato per un profilo Browserless loopback. Senza
attachOnly, OpenClaw tratta la porta loopback come un profilo browser locale gestito
e può segnalare che la porta è in uso ma non di proprietà di OpenClaw.
Provider CDP WebSocket diretti
Alcuni servizi browser ospitati espongono un endpoint WebSocket diretto invece del rilevamento CDP standard basato su HTTP (/json/version). OpenClaw accetta tre
forme di URL CDP e sceglie automaticamente la strategia di connessione corretta:
- Rilevamento HTTP(S) -
http://host[:port]ohttps://host[:port]. OpenClaw chiama/json/versionper scoprire l’URL debugger WebSocket, poi si connette. Nessun fallback WebSocket. - Endpoint WebSocket diretti -
ws://host[:port]/devtools/<kind>/<id>owss://...con un percorso/devtools/browser|page|worker|shared_worker|service_worker/<id>. OpenClaw si connette direttamente tramite un handshake WebSocket e salta completamente/json/version. - Root WebSocket nudi -
ws://host[:port]owss://host[:port]senza percorso/devtools/...(ad es. Browserless, Browserbase). OpenClaw prova prima il rilevamento HTTP/json/version(normalizzando lo schema ahttp/https); se il rilevamento restituisce unwebSocketDebuggerUrl, viene usato, altrimenti OpenClaw ricorre a un handshake WebSocket diretto alla root nuda. Se l’endpoint WebSocket pubblicizzato rifiuta l’handshake CDP ma la root nuda configurata lo accetta, OpenClaw ricorre anche a quella root. Questo consente a unws://nudo puntato a un Chrome locale di connettersi comunque, poiché Chrome accetta upgrade WebSocket solo sul percorso specifico per target da/json/version, mentre i provider ospitati possono continuare a usare il loro endpoint WebSocket root quando il loro endpoint di rilevamento pubblicizza un URL di breve durata non adatto a Playwright CDP.
Browserbase
Browserbase è una piattaforma cloud per eseguire browser headless con risoluzione CAPTCHA integrata, modalità stealth e proxy residenziali.- Registrati e copia la tua API Key dalla dashboard Overview.
- Sostituisci
<BROWSERBASE_API_KEY>con la tua vera chiave API Browserbase. - Browserbase crea automaticamente una sessione browser alla connessione WebSocket, quindi non è necessario alcun passaggio manuale di creazione sessione.
- Il piano gratuito consente una sessione concorrente e un’ora browser al mese. Vedi i prezzi per i limiti dei piani a pagamento.
- Vedi la documentazione Browserbase per il riferimento API completo, le guide SDK e gli esempi di integrazione.
Sicurezza
Concetti chiave:- Il controllo del browser è solo loopback; l’accesso passa attraverso l’autenticazione del Gateway o l’associazione del nodo.
- L’API HTTP autonoma del browser loopback usa solo l’autenticazione con segreto condiviso:
autenticazione bearer con token del Gateway,
x-openclaw-passwordo autenticazione HTTP Basic con la password del Gateway configurata. - Gli header di identità di Tailscale Serve e
gateway.auth.mode: "trusted-proxy"non autenticano questa API autonoma del browser loopback. - Se il controllo del browser è abilitato e non è configurata alcuna autenticazione con segreto condiviso, OpenClaw
genera un token del Gateway solo runtime per quell’avvio. Configura
gateway.auth.token,gateway.auth.password,OPENCLAW_GATEWAY_TOKENoOPENCLAW_GATEWAY_PASSWORDin modo esplicito se i client hanno bisogno di un segreto stabile tra i riavvii. - OpenClaw non genera automaticamente quel token quando
gateway.auth.modeè giàpassword,noneotrusted-proxy. - Mantieni il Gateway e tutti gli host nodo su una rete privata (Tailscale); evita l’esposizione pubblica.
- Tratta gli URL/token CDP remoti come segreti; preferisci variabili env o un gestore di segreti.
- Preferisci endpoint cifrati (HTTPS o WSS) e token a breve durata quando possibile.
- Evita di incorporare token a lunga durata direttamente nei file di configurazione.
Profili (multi-browser)
OpenClaw supporta più profili denominati (configurazioni di instradamento). I profili possono essere:- gestiti da openclaw: un’istanza dedicata di browser basato su Chromium con la propria directory dei dati utente + porta CDP
- remoti: un URL CDP esplicito (browser basato su Chromium in esecuzione altrove)
- sessione esistente: il tuo profilo Chrome esistente tramite connessione automatica Chrome DevTools MCP
- Il profilo
openclawviene creato automaticamente se manca. - Il profilo
userè integrato per il collegamento a una sessione esistente Chrome MCP. - I profili di sessione esistente oltre a
usersono opt-in; creali con--driver existing-session. - Le porte CDP locali vengono allocate da 18800-18899 per impostazione predefinita.
- L’eliminazione di un profilo sposta la sua directory dati locale nel Cestino.
?profile=<name>; la CLI usa --browser-profile.
Sessione esistente tramite Chrome DevTools MCP
OpenClaw può anche collegarsi a un profilo di browser basato su Chromium in esecuzione tramite il server ufficiale Chrome DevTools MCP. Questo riutilizza le schede e lo stato di accesso già aperti in quel profilo browser. Riferimenti ufficiali di contesto e configurazione: Profilo integrato:user
- Il profilo integrato
userusa la connessione automatica Chrome MCP, che ha come target il profilo locale predefinito di Google Chrome.
userDataDir per Brave, Edge, Chromium o un profilo Chrome non predefinito.
~ si espande nella directory home del tuo sistema operativo:
- Apri la pagina inspect di quel browser per il debug remoto.
- Abilita il debug remoto.
- Mantieni il browser in esecuzione e approva la richiesta di connessione quando OpenClaw si collega.
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
statusmostradriver: existing-sessionstatusmostratransport: chrome-mcpstatusmostrarunning: truetabselenca le schede del browser già apertesnapshotrestituisce riferimenti dalla scheda live selezionata
- il browser target basato su Chromium è alla versione
144+ - il debug remoto è abilitato nella pagina inspect di quel browser
- il browser ha mostrato la richiesta di consenso al collegamento e l’hai accettata
openclaw doctormigra la vecchia configurazione browser basata su estensione e verifica che Chrome sia installato localmente per i profili predefiniti con connessione automatica, ma non può abilitare per te il debug remoto lato browser
- Usa
profile="user"quando hai bisogno dello stato autenticato del browser dell’utente. - Se usi un profilo personalizzato di sessione esistente, passa quel nome di profilo esplicito.
- Scegli questa modalità solo quando l’utente è al computer per approvare la richiesta di collegamento.
- il Gateway o l’host nodo può avviare
npx chrome-devtools-mcp@latest --autoConnect
- Questo percorso è più rischioso del profilo isolato
openclawperché può agire all’interno della tua sessione browser autenticata. - OpenClaw non avvia il browser per questo driver; si collega soltanto.
- OpenClaw usa qui il flusso ufficiale Chrome DevTools MCP
--autoConnect. SeuserDataDirè impostato, viene inoltrato per puntare a quella directory dei dati utente. - La sessione esistente può collegarsi sull’host selezionato o tramite un nodo browser connesso. Se Chrome si trova altrove e nessun nodo browser è connesso, usa CDP remoto o un host nodo.
Avvio Chrome MCP personalizzato
Sostituisci per profilo il server Chrome DevTools MCP avviato quando il flusso predefinitonpx chrome-devtools-mcp@latest non è ciò che vuoi (host offline,
versioni fissate, binari vendorizzati):
| Campo | Cosa fa |
|---|---|
mcpCommand | Eseguibile da avviare invece di npx. Risolto così com’è; i percorsi assoluti sono rispettati. |
mcpArgs | Array di argomenti passato letteralmente a mcpCommand. Sostituisce gli argomenti predefiniti chrome-devtools-mcp@latest --autoConnect. |
cdpUrl è impostato su un profilo di sessione esistente, OpenClaw salta
--autoConnect e inoltra automaticamente l’endpoint a Chrome MCP:
http(s)://...→--browserUrl <url>(endpoint di discovery HTTP DevTools).ws(s)://...→--wsEndpoint <url>(WebSocket CDP diretto).
userDataDir non possono essere combinati: quando cdpUrl è impostato,
userDataDir viene ignorato per l’avvio di Chrome MCP, poiché Chrome MCP si collega al
browser in esecuzione dietro l’endpoint invece di aprire una directory
di profilo.
Limitazioni della funzionalità sessione esistente
Limitazioni della funzionalità sessione esistente
Rispetto al profilo gestito
openclaw, i driver di sessione esistente sono più vincolati:- Screenshot - le acquisizioni di pagina e le acquisizioni di elementi
--reffunzionano; i selettori CSS--elementno.--full-pagenon può essere combinato con--refo--element. Playwright non è richiesto per screenshot di pagina o di elementi basati su ref. - Azioni -
click,type,hover,scrollIntoView,drageselectrichiedono ref snapshot (nessun selettore CSS).click-coordsfa clic sulle coordinate visibili del viewport e non richiede un ref snapshot.clickè solo con pulsante sinistro.typenon supportaslowly=true; usafillopress.pressnon supportadelayMs.type,hover,scrollIntoView,drag,select,filledevaluatenon supportano timeout per chiamata.selectaccetta un singolo valore. - Attesa / upload / dialogo -
wait --urlsupporta pattern esatti, sottostringhe e glob;wait --load networkidlenon è supportato. Gli hook di upload richiedonorefoinputRef, un file alla volta, nessunelementCSS. Gli hook di dialogo non supportano override del timeout. - Funzionalità solo gestite - azioni batch, esportazione PDF, intercettazione download e
responsebodyrichiedono ancora il percorso browser gestito.
Garanzie di isolamento
- Directory dati utente dedicata: non tocca mai il tuo profilo browser personale.
- Porte dedicate: evita
9222per prevenire collisioni con i flussi di sviluppo. - Controllo deterministico delle schede:
tabsrestituisce primasuggestedTargetId, poi handletabIdstabili comet1, etichette opzionali e iltargetIdgrezzo. Gli agenti dovrebbero riutilizzaresuggestedTargetId; gli id grezzi restano disponibili per debug e compatibilità.
Selezione del browser
Quando viene avviato localmente, OpenClaw sceglie il primo disponibile:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Piattaforme:
- macOS: controlla
/Applicationse~/Applications. - Linux: controlla le posizioni comuni di Chrome/Brave/Edge/Chromium sotto
/usr/bin,/snap/bin,/opt/google,/opt/brave.com,/usr/lib/chromiume/usr/lib/chromium-browser, più Chromium gestito da Playwright sottoPLAYWRIGHT_BROWSERS_PATHo~/.cache/ms-playwright. - Windows: controlla le posizioni di installazione comuni.
API di controllo (facoltativa)
Per scripting e debug, il Gateway espone una piccola API HTTP di controllo solo loopback più una CLIopenclaw browser corrispondente (snapshot, ref, potenziamenti
di attesa, output JSON, flussi di debug). Vedi
API di controllo browser per il riferimento completo.
Risoluzione dei problemi
Per problemi specifici di Linux (in particolare snap Chromium), vedi Risoluzione dei problemi del browser. Per configurazioni split-host WSL2 Gateway + Windows Chrome, vedi Risoluzione dei problemi WSL2 + Windows + CDP Chrome remoto.Errore di avvio CDP rispetto a blocco SSRF di navigazione
Queste sono classi di errore diverse e indicano percorsi di codice diversi.- Errore di avvio o di prontezza CDP significa che OpenClaw non può confermare che il piano di controllo del browser sia integro.
- Blocco SSRF di navigazione significa che il piano di controllo del browser è integro, ma un target di navigazione pagina viene rifiutato dalla policy.
- Errore di avvio o di prontezza 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 openclawquando è configurato un servizio CDP esterno loopback senzaattachOnly: true
- Blocco SSRF di navigazione:
- i flussi
open,navigate, snapshot o di apertura scheda falliscono con un errore di policy browser/rete mentrestartetabscontinuano a funzionare
- i flussi
- Se
startfallisce connot reachable after start, risolvi prima la prontezza CDP. - Se
startriesce matabsfallisce, il piano di controllo non è ancora integro. Trattalo come un problema di raggiungibilità CDP, non come un problema di navigazione pagina. - Se
startetabsriescono maopenonavigatefallisce, il piano di controllo del browser è attivo e l’errore è nella policy di navigazione o nella pagina target. - Se
start,tabseopenriescono tutti, il percorso di controllo di base del browser gestito è integro.
- La configurazione del browser usa per impostazione predefinita un oggetto policy SSRF fail-closed anche quando non configuri
browser.ssrfPolicy. - Per il profilo gestito locale loopback
openclaw, i controlli di integrità CDP saltano intenzionalmente l’applicazione della raggiungibilità SSRF del browser per il piano di controllo locale di OpenClaw. - La protezione della navigazione è separata. Un risultato
startotabsriuscito non significa che un target successivo diopenonavigatesia consentito.
- Non allentare per impostazione predefinita il criterio SSRF del browser.
- Preferisci eccezioni di host ristrette come
hostnameAllowlistoallowedHostnamesrispetto a un accesso ampio alla rete privata. - Usa
dangerouslyAllowPrivateNetwork: truesolo in ambienti intenzionalmente attendibili in cui l’accesso del browser alla rete privata è richiesto e revisionato.
Strumenti dell’agente + funzionamento del controllo
L’agente riceve uno strumento per l’automazione del browser:browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
browser snapshotrestituisce un albero dell’interfaccia utente stabile (IA o ARIA).browser actusa gli IDrefdello snapshot per fare clic/digitare/trascinare/selezionare.browser screenshotcattura i pixel (pagina intera, elemento o riferimenti etichettati).browser doctorcontrolla la preparazione di Gateway, Plugin, profilo, browser e scheda.browseraccetta:profileper scegliere un profilo browser denominato (openclaw, chrome o CDP remoto).target(sandbox|host|node) per selezionare dove risiede il browser.- Nelle sessioni in sandbox,
target: "host"richiedeagents.defaults.sandbox.browser.allowHostControl=true. - Se
targetè omesso: le sessioni in sandbox usano per impostazione predefinitasandbox, le sessioni non in sandbox usano per impostazione predefinitahost. - Se è connesso un nodo in grado di usare il browser, lo strumento può instradare automaticamente verso di esso a meno che tu non fissi
target="host"otarget="node".
Correlati
- Panoramica degli strumenti - tutti gli strumenti disponibili per l’agente
- Sandboxing - controllo del browser in ambienti in sandbox
- Sicurezza - rischi del controllo del browser e hardening