OpenClaw puede ejecutar un perfil dedicado de Chrome/Brave/Edge/Chromium que controla el agente. Está aislado de tu navegador personal y se gestiona mediante un pequeño servicio de control local dentro del Gateway (solo loopback). Vista para principiantes: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.
- Piensa en él como un navegador separado, solo para el agente.
- El perfil
openclawno toca tu perfil de navegador personal. - El agente puede abrir pestañas, leer páginas, hacer clic y escribir en un canal seguro.
- El perfil integrado
userse adjunta a tu sesión real iniciada en Chrome mediante Chrome MCP.
Qué obtienes
- Un perfil de navegador separado llamado openclaw (acento naranja de forma predeterminada).
- Control determinista de pestañas (listar/abrir/enfocar/cerrar).
- Acciones del agente (clic/escribir/arrastrar/seleccionar), instantáneas, capturas de pantalla, PDF.
- Una skill
browser-automationincluida que enseña a los agentes el bucle de recuperación de instantáneas, pestañas estables, referencias obsoletas y bloqueadores manuales cuando el plugin de navegador está habilitado. - Soporte opcional para múltiples perfiles (
openclaw,work,remote, …).
Inicio rápido
openclaw browser no existe en absoluto, o el agente dice que la herramienta de navegador
no está disponible, ve a Falta el comando o la herramienta de navegador.
Control del Plugin
La herramientabrowser predeterminada es un plugin incluido. Deshabilítalo para reemplazarlo por otro plugin que registre el mismo nombre de herramienta browser:
plugins.entries.browser.enabled como browser.enabled=true. Deshabilitar solo el plugin elimina la CLI openclaw browser, el método de Gateway browser.request, la herramienta del agente y el servicio de control como una sola unidad; tu configuración browser.* permanece intacta para un reemplazo.
Los cambios de configuración del navegador requieren reiniciar el Gateway para que el plugin pueda volver a registrar su servicio.
Guía para agentes
Nota sobre perfiles de herramientas:tools.profile: "coding" incluye web_search y
web_fetch, pero no incluye la herramienta browser completa. Si el agente o un
subagente generado debe usar automatización del navegador, añade browser en la etapa
de perfil:
agents.list[].tools.alsoAllow: ["browser"].
tools.subagents.tools.allow: ["browser"] por sí solo no basta porque la política de subagente
se aplica después del filtrado de perfiles.
El plugin de navegador incluye dos niveles de guía para agentes:
- La descripción de la herramienta
browserlleva el contrato compacto siempre activo: elegir el perfil correcto, mantener las referencias en la misma pestaña, usartabId/etiquetas para dirigir pestañas y cargar la skill de navegador para trabajo de varios pasos. - La skill
browser-automationincluida lleva el bucle operativo más largo: comprobar primero estado/pestañas, etiquetar pestañas de tarea, tomar una instantánea antes de actuar, volver a tomarla después de cambios en la interfaz, recuperar referencias obsoletas una vez e informar inicios de sesión/2FA/captcha o bloqueadores de cámara/micrófono como acción manual en lugar de adivinar.
Falta el comando o la herramienta de navegador
Siopenclaw browser es desconocido después de una actualización, falta browser.request, o el agente informa que la herramienta de navegador no está disponible, la causa habitual es una lista plugins.allow que omite browser y no existe ningún bloque raíz de configuración browser. Añádelo:
browser, por ejemplo browser.enabled=true o browser.profiles.<name>, activa el plugin de navegador incluido incluso bajo un plugins.allow restrictivo, coincidiendo con el comportamiento de configuración de canales. plugins.entries.browser.enabled=true y tools.alsoAllow: ["browser"] no sustituyen por sí solos la pertenencia a la lista permitida. Eliminar plugins.allow por completo también restaura el valor predeterminado.
Perfiles: openclaw frente a user
openclaw: navegador gestionado y aislado (no requiere extensión).user: perfil integrado de adjunción de Chrome MCP para tu sesión real de Chrome con sesión iniciada.
- Predeterminado: usa el navegador aislado
openclaw. - Prefiere
profile="user"cuando importen las sesiones existentes con inicio de sesión y el usuario esté frente al ordenador para hacer clic/aprobar cualquier solicitud de adjunción. profilees la anulación explícita cuando quieres un modo de navegador específico.
browser.defaultProfile: "openclaw" si quieres el modo gestionado de forma predeterminada.
Configuración
La configuración del navegador vive en~/.openclaw/openclaw.json.
Puertos y accesibilidad
Puertos y accesibilidad
- El servicio de control se enlaza a loopback en un puerto derivado de
gateway.port(predeterminado18791= gateway + 2). Anulargateway.portoOPENCLAW_GATEWAY_PORTdesplaza los puertos derivados dentro de la misma familia. - Los perfiles locales
openclawasignan automáticamentecdpPort/cdpUrl; establece esos valores solo para CDP remoto.cdpUrlusa de forma predeterminada el puerto CDP local gestionado cuando no se establece. remoteCdpTimeoutMsse aplica a comprobaciones de accesibilidad HTTP de CDP remoto yattachOnly, y a solicitudes HTTP de apertura de pestañas;remoteCdpHandshakeTimeoutMsse aplica a sus handshakes WebSocket de CDP.localLaunchTimeoutMses el presupuesto para que un proceso local gestionado de Chrome exponga su endpoint HTTP de CDP.localCdpReadyTimeoutMses el presupuesto posterior para la disponibilidad del websocket CDP después de descubrir el proceso. Auméntalos en Raspberry Pi, VPS de gama baja o hardware antiguo donde Chromium arranque lentamente. Los valores deben ser enteros positivos de hasta120000ms; los valores de configuración inválidos se rechazan.- Los fallos repetidos de lanzamiento/disponibilidad de Chrome gestionado abren un cortacircuitos por perfil. Después de varios fallos consecutivos, OpenClaw pausa brevemente nuevos intentos de lanzamiento en lugar de iniciar Chromium en cada llamada a la herramienta de navegador. Corrige el problema de inicio, deshabilita el navegador si no se necesita, o reinicia el Gateway después de la reparación.
actionTimeoutMses el presupuesto predeterminado para solicitudesactdel navegador cuando el llamador no pasatimeoutMs. El transporte del cliente añade una pequeña ventana de holgura para que esperas largas puedan terminar en lugar de agotar el tiempo en el límite HTTP.tabCleanupes una limpieza de mejor esfuerzo para pestañas abiertas por sesiones de navegador del agente principal. La limpieza del ciclo de vida de subagente, cron y ACP sigue cerrando sus pestañas rastreadas explícitas al final de la sesión; las sesiones principales mantienen las pestañas activas reutilizables y luego cierran en segundo plano las pestañas rastreadas inactivas o excedentes.
Política SSRF
Política SSRF
- La navegación del navegador y la apertura de pestañas están protegidas contra SSRF antes de la navegación y se vuelven a comprobar con mejor esfuerzo en la URL
http(s)final después. - En modo SSRF estricto, también se comprueban la detección de endpoints CDP remotos y las sondas
/json/version(cdpUrl). - Las variables de entorno
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYyNO_PROXYde Gateway/proveedor no proxy automáticamente el navegador gestionado por OpenClaw. Chrome gestionado se inicia de forma directa de manera predeterminada para que la configuración de proxy del proveedor no debilite las comprobaciones SSRF del navegador. - Para proxy el navegador gestionado en sí, pasa flags explícitos de proxy de Chrome mediante
browser.extraArgs, como--proxy-server=...o--proxy-pac-url=.... El modo SSRF estricto bloquea el enrutamiento explícito de proxy del navegador salvo que el acceso del navegador a redes privadas esté habilitado intencionalmente. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkestá desactivado de forma predeterminada; habilítalo solo cuando el acceso del navegador a redes privadas sea de confianza de forma intencional.browser.ssrfPolicy.allowPrivateNetworksigue siendo compatible como alias heredado.
Comportamiento del perfil
Comportamiento del perfil
attachOnly: truesignifica no iniciar nunca un navegador local; solo adjuntarse si ya hay uno en ejecución.headlessse puede establecer globalmente o por perfil administrado local. Los valores por perfil anulanbrowser.headless, de modo que un perfil iniciado localmente puede permanecer sin interfaz mientras otro sigue visible.POST /start?headless=trueyopenclaw browser start --headlesssolicitan un inicio sin interfaz de una sola vez para perfiles administrados locales sin reescribirbrowser.headlessni la configuración del perfil. Los perfiles de sesión existente, solo adjuntar y CDP remoto rechazan la anulación porque OpenClaw no inicia esos procesos de navegador.- En hosts Linux sin
DISPLAYniWAYLAND_DISPLAY, los perfiles administrados locales pasan automáticamente al modo sin interfaz cuando ni el entorno ni la configuración del perfil/global eligen explícitamente el modo con interfaz.openclaw browser status --jsoninformaheadlessSourcecomoenv,profile,config,request,linux-display-fallbackodefault. OPENCLAW_BROWSER_HEADLESS=1fuerza inicios administrados locales sin interfaz para el proceso actual.OPENCLAW_BROWSER_HEADLESS=0fuerza el modo con interfaz para los inicios ordinarios y devuelve un error accionable en hosts Linux sin servidor de pantalla; una solicitud explícitastart --headlesssigue teniendo prioridad para ese inicio.executablePathse puede establecer globalmente o por perfil administrado local. Los valores por perfil anulanbrowser.executablePath, de modo que distintos perfiles administrados pueden iniciar distintos navegadores basados en Chromium. Ambas formas aceptan~para el directorio de inicio de tu SO.color(de nivel superior y por perfil) tiñe la interfaz del navegador para que puedas ver qué perfil está activo.- El perfil predeterminado es
openclaw(independiente administrado). UsadefaultProfile: "user"para optar por el navegador de usuario con sesión iniciada. - Orden de detección automática: navegador predeterminado del sistema si está basado en Chromium; de lo contrario, Chrome → Brave → Edge → Chromium → Chrome Canary.
driver: "existing-session"usa Chrome DevTools MCP en lugar de CDP sin procesar. No establezcascdpUrlpara ese driver.- Establece
browser.profiles.<name>.userDataDircuando un perfil de sesión existente deba adjuntarse a un perfil de usuario de Chromium no predeterminado (Brave, Edge, etc.). Esta ruta también acepta~para el directorio de inicio de tu SO.
Usar Brave u otro navegador basado en Chromium
Si tu navegador predeterminado del sistema está basado en Chromium (Chrome/Brave/Edge/etc), OpenClaw lo usa automáticamente. Establecebrowser.executablePath para anular
la detección automática. Los valores executablePath de nivel superior y por perfil aceptan ~
para el directorio de inicio de tu SO:
- macOS
- Windows
- Linux
executablePath por perfil solo afecta a los perfiles administrados locales que OpenClaw
inicia. Los perfiles existing-session se adjuntan a un navegador que ya está en ejecución,
y los perfiles CDP remotos usan el navegador detrás de cdpUrl.
Control local frente a remoto
- Control local (predeterminado): el Gateway inicia el servicio de control loopback y puede iniciar un navegador local.
- Control remoto (host de Node): ejecuta un host de Node en la máquina que tiene el navegador; el Gateway reenvía las acciones del navegador a él.
- CDP remoto: establece
browser.profiles.<name>.cdpUrl(obrowser.cdpUrl) para adjuntarte a un navegador remoto basado en Chromium. En este caso, OpenClaw no iniciará un navegador local. - Para servicios CDP administrados externamente en loopback (por ejemplo, Browserless en
Docker publicado en
127.0.0.1), establece tambiénattachOnly: true. El CDP en loopback sinattachOnlyse trata como un perfil de navegador local administrado por OpenClaw. headlesssolo afecta a los perfiles administrados locales que OpenClaw inicia. No reinicia ni cambia navegadores de sesión existente o CDP remotos.executablePathsigue la misma regla de perfil administrado local. Cambiarlo en un perfil administrado local en ejecución marca ese perfil para reinicio/reconciliación, de modo que el siguiente inicio use el nuevo binario.
- perfiles administrados locales:
openclaw browser stopdetiene el proceso de navegador que OpenClaw inició - perfiles solo adjuntar y CDP remotos:
openclaw browser stopcierra la sesión de control activa y libera las anulaciones de emulación de Playwright/CDP (viewport, esquema de color, locale, zona horaria, modo sin conexión y estado similar), aunque OpenClaw no haya iniciado ningún proceso de navegador
- Tokens de consulta (p. ej.,
https://provider.example?token=<token>) - Autenticación HTTP Basic (p. ej.,
https://user:pass@provider.example)
/json/* y al conectarse
al WebSocket de CDP. Prefiere variables de entorno o gestores de secretos para
tokens en lugar de confirmarlos en archivos de configuración.
Proxy de navegador de Node (predeterminado sin configuración)
Si ejecutas un host de Node en la máquina que tiene tu navegador, OpenClaw puede enrutar automáticamente las llamadas a herramientas de navegador a ese Node sin ninguna configuración de navegador adicional. Esta es la ruta predeterminada para Gateways remotos. Notas:- El host de Node expone su servidor local de control del navegador mediante un comando de proxy.
- Los perfiles provienen de la propia configuración
browser.profilesdel Node (igual que en local). nodeHost.browserProxy.allowProfileses opcional. Déjalo vacío para el comportamiento heredado/predeterminado: todos los perfiles configurados siguen siendo accesibles a través del proxy, incluidas las rutas de creación/eliminación de perfiles.- Si estableces
nodeHost.browserProxy.allowProfiles, OpenClaw lo trata como un límite de privilegio mínimo: solo se pueden seleccionar los perfiles permitidos, y las rutas persistentes de creación/eliminación de perfiles se bloquean en la superficie del proxy. - Desactívalo si no lo quieres:
- En el Node:
nodeHost.browserProxy.enabled=false - En el Gateway:
gateway.nodes.browser.mode="off"
- En el Node:
Browserless (CDP remoto alojado)
Browserless es un servicio de Chromium alojado que expone URL de conexión CDP mediante HTTPS y WebSocket. OpenClaw puede usar cualquiera de las dos formas, pero para un perfil de navegador remoto la opción más sencilla es la URL directa de WebSocket de la documentación de conexión de Browserless. Ejemplo:- Sustituye
<BROWSERLESS_API_KEY>por tu token real de Browserless. - Elige el endpoint de región que coincida con tu cuenta de Browserless (consulta su documentación).
- Si Browserless te da una URL base HTTPS, puedes convertirla a
wss://para una conexión CDP directa o conservar la URL HTTPS y dejar que OpenClaw descubra/json/version.
Browserless Docker en el mismo host
Cuando Browserless está autoalojado en Docker y OpenClaw se ejecuta en el host, trata Browserless como un servicio CDP administrado externamente:browser.profiles.browserless.cdpUrl debe ser accesible desde el
proceso de OpenClaw. Browserless también debe anunciar un endpoint accesible coincidente;
establece EXTERNAL de Browserless en esa misma base WebSocket pública para OpenClaw, como
ws://127.0.0.1:3000, ws://browserless:3000 o una dirección estable de red privada de Docker.
Si /json/version devuelve webSocketDebuggerUrl que apunta a
una dirección que OpenClaw no puede alcanzar, el HTTP de CDP puede parecer correcto mientras la conexión
WebSocket sigue fallando.
No dejes attachOnly sin establecer para un perfil Browserless en loopback. Sin
attachOnly, OpenClaw trata el puerto loopback como un perfil de navegador administrado local
y puede informar de que el puerto está en uso pero no pertenece a OpenClaw.
Proveedores CDP WebSocket directos
Algunos servicios de navegador alojados exponen un endpoint WebSocket directo en lugar del descubrimiento CDP estándar basado en HTTP (/json/version). OpenClaw acepta tres
formas de URL CDP y elige automáticamente la estrategia de conexión adecuada:
- Descubrimiento HTTP(S) -
http://host[:port]ohttps://host[:port]. OpenClaw llama a/json/versionpara descubrir la URL del depurador WebSocket y luego se conecta. Sin alternativa WebSocket. - Endpoints WebSocket directos -
ws://host[:port]/devtools/<kind>/<id>owss://...con una ruta/devtools/browser|page|worker|shared_worker|service_worker/<id>. OpenClaw se conecta directamente mediante un handshake WebSocket y omite/json/versionpor completo. - Raíces WebSocket sin ruta -
ws://host[:port]owss://host[:port]sin ruta/devtools/...(p. ej., Browserless, Browserbase). OpenClaw intenta primero el descubrimiento HTTP/json/version(normalizando el esquema ahttp/https); si el descubrimiento devuelve unwebSocketDebuggerUrl, se usa; de lo contrario, OpenClaw recurre a un handshake WebSocket directo en la raíz sin ruta. Si el endpoint WebSocket anunciado rechaza el handshake de CDP pero la raíz sin ruta configurada lo acepta, OpenClaw también recurre a esa raíz. Esto permite que unws://sin ruta apuntando a un Chrome local aún se conecte, ya que Chrome solo acepta actualizaciones WebSocket en la ruta específica por destino de/json/version, mientras que los proveedores alojados todavía pueden usar su endpoint WebSocket raíz cuando su endpoint de descubrimiento anuncia una URL de vida corta que no es adecuada para CDP de Playwright.
Browserbase
Browserbase es una plataforma en la nube para ejecutar navegadores sin interfaz con resolución de CAPTCHA integrada, modo sigiloso y proxies residenciales.- Regístrate y copia tu API Key desde el panel de resumen.
- Sustituye
<BROWSERBASE_API_KEY>por tu clave de API real de Browserbase. - Browserbase crea automáticamente una sesión de navegador al conectarse por WebSocket, así que no se necesita ningún paso manual de creación de sesión.
- El nivel gratuito permite una sesión simultánea y una hora de navegador al mes. Consulta precios para ver los límites de los planes de pago.
- Consulta la documentación de Browserbase para la referencia completa de la API, guías de SDK y ejemplos de integración.
Seguridad
Ideas clave:- El control del navegador es solo de loopback; los flujos de acceso pasan por la autenticación del Gateway o el emparejamiento de nodos.
- La API HTTP independiente del navegador de loopback usa solo autenticación con secreto compartido:
autenticación bearer con token del gateway,
x-openclaw-passwordo autenticación HTTP Basic con la contraseña configurada del gateway. - Los encabezados de identidad de Tailscale Serve y
gateway.auth.mode: "trusted-proxy"no autentican esta API independiente del navegador de loopback. - Si el control del navegador está habilitado y no se configura autenticación con secreto compartido, OpenClaw
genera un token de gateway solo en tiempo de ejecución para ese arranque. Configura
gateway.auth.token,gateway.auth.password,OPENCLAW_GATEWAY_TOKENoOPENCLAW_GATEWAY_PASSWORDexplícitamente si los clientes necesitan un secreto estable entre reinicios. - OpenClaw no genera automáticamente ese token cuando
gateway.auth.modeya espassword,noneotrusted-proxy. - Mantén el Gateway y cualquier host de nodo en una red privada (Tailscale); evita la exposición pública.
- Trata las URL/tokens de CDP remoto como secretos; prefiere variables de entorno o un gestor de secretos.
- Prefiere endpoints cifrados (HTTPS o WSS) y tokens de corta duración cuando sea posible.
- Evita incrustar tokens de larga duración directamente en archivos de configuración.
Perfiles (multinavegador)
OpenClaw admite múltiples perfiles con nombre (configuraciones de enrutamiento). Los perfiles pueden ser:- gestionado por openclaw: una instancia dedicada de navegador basado en Chromium con su propio directorio de datos de usuario + puerto CDP
- remoto: una URL CDP explícita (navegador basado en Chromium ejecutándose en otro lugar)
- sesión existente: tu perfil de Chrome existente mediante conexión automática de Chrome DevTools MCP
- El perfil
openclawse crea automáticamente si falta. - El perfil
userviene integrado para adjuntar una sesión existente de Chrome MCP. - Los perfiles de sesión existente son opcionales más allá de
user; créalos con--driver existing-session. - Los puertos CDP locales se asignan desde 18800-18899 de forma predeterminada.
- Al eliminar un perfil, su directorio de datos local se mueve a la papelera.
?profile=<name>; la CLI usa --browser-profile.
Sesión existente mediante Chrome DevTools MCP
OpenClaw también puede adjuntarse a un perfil de navegador basado en Chromium en ejecución mediante el servidor oficial de Chrome DevTools MCP. Esto reutiliza las pestañas y el estado de inicio de sesión ya abiertos en ese perfil del navegador. Referencias oficiales de contexto y configuración:- Chrome for Developers: Usa Chrome DevTools MCP con tu sesión del navegador
- README de Chrome DevTools MCP
user
- El perfil integrado
userusa la conexión automática de Chrome MCP, que apunta al perfil local predeterminado de Google Chrome.
userDataDir para Brave, Edge, Chromium o un perfil de Chrome no predeterminado.
~ se expande al directorio personal de tu sistema operativo:
- Abre la página de inspección de ese navegador para depuración remota.
- Habilita la depuración remota.
- Mantén el navegador en ejecución y aprueba el aviso de conexión cuando OpenClaw se adjunte.
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
statusmuestradriver: existing-sessionstatusmuestratransport: chrome-mcpstatusmuestrarunning: truetabsenumera las pestañas del navegador que ya tienes abiertassnapshotdevuelve refs de la pestaña activa seleccionada
- el navegador basado en Chromium de destino tiene la versión
144+ - la depuración remota está habilitada en la página de inspección de ese navegador
- el navegador mostró el aviso de consentimiento de adjunción y lo aceptaste
openclaw doctormigra la configuración antigua de navegador basada en plugins y comprueba que Chrome esté instalado localmente para los perfiles predeterminados de conexión automática, pero no puede habilitar la depuración remota del lado del navegador por ti
- Usa
profile="user"cuando necesites el estado de navegador con sesión iniciada del usuario. - Si usas un perfil personalizado de sesión existente, pasa ese nombre de perfil explícito.
- Elige este modo solo cuando el usuario esté frente al equipo para aprobar el aviso de adjunción.
- el Gateway o el host de nodo puede iniciar
npx chrome-devtools-mcp@latest --autoConnect
- Esta ruta tiene mayor riesgo que el perfil aislado
openclawporque puede actuar dentro de tu sesión de navegador iniciada. - OpenClaw no inicia el navegador para este controlador; solo se adjunta.
- OpenClaw usa aquí el flujo oficial
--autoConnectde Chrome DevTools MCP. SiuserDataDirestá definido, se pasa para apuntar a ese directorio de datos de usuario. - La sesión existente puede adjuntarse en el host seleccionado o mediante un nodo de navegador conectado. Si Chrome vive en otro lugar y no hay ningún nodo de navegador conectado, usa CDP remoto o un host de nodo en su lugar.
Inicio personalizado de Chrome MCP
Sobrescribe el servidor Chrome DevTools MCP iniciado por perfil cuando el flujo predeterminadonpx chrome-devtools-mcp@latest no es lo que quieres (hosts sin conexión,
versiones fijadas, binarios incorporados):
| Campo | Qué hace |
|---|---|
mcpCommand | Ejecutable que se inicia en lugar de npx. Se resuelve tal cual; se respetan las rutas absolutas. |
mcpArgs | Arreglo de argumentos pasado literalmente a mcpCommand. Reemplaza los argumentos predeterminados chrome-devtools-mcp@latest --autoConnect. |
cdpUrl está definido en un perfil de sesión existente, OpenClaw omite
--autoConnect y reenvía el endpoint a Chrome MCP automáticamente:
http(s)://...→--browserUrl <url>(endpoint de descubrimiento HTTP de DevTools).ws(s)://...→--wsEndpoint <url>(WebSocket CDP directo).
userDataDir no se pueden combinar: cuando cdpUrl está definido,
userDataDir se ignora para el inicio de Chrome MCP, ya que Chrome MCP se adjunta al
navegador en ejecución detrás del endpoint en lugar de abrir un directorio de
perfil.
Limitaciones de la funcionalidad de sesión existente
Limitaciones de la funcionalidad de sesión existente
En comparación con el perfil gestionado
openclaw, los controladores de sesión existente están más restringidos:- Capturas de pantalla - funcionan las capturas de página y las capturas de elementos
--ref; los selectores CSS--elementno.--full-pageno puede combinarse con--refni--element. Playwright no es necesario para capturas de página ni de elementos basadas en refs. - Acciones -
click,type,hover,scrollIntoView,dragyselectrequieren refs de instantánea (sin selectores CSS).click-coordshace clic en coordenadas visibles del viewport y no requiere una ref de instantánea.clicksolo usa el botón izquierdo.typeno admiteslowly=true; usafillopress.pressno admitedelayMs.type,hover,scrollIntoView,drag,select,fillyevaluateno admiten timeouts por llamada.selectacepta un único valor. - Espera / carga / diálogo -
wait --urladmite patrones exactos, de subcadena y glob;wait --load networkidleno es compatible. Los hooks de carga requierenrefoinputRef, un archivo a la vez, sinelementCSS. Los hooks de diálogo no admiten sobrescrituras de timeout. - Funcionalidades solo gestionadas - las acciones por lotes, la exportación a PDF, la interceptación de descargas y
responsebodysiguen requiriendo la ruta del navegador gestionado.
Garantías de aislamiento
- Directorio dedicado de datos de usuario: nunca toca tu perfil personal del navegador.
- Puertos dedicados: evita
9222para prevenir colisiones con flujos de trabajo de desarrollo. - Control determinista de pestañas:
tabsdevuelve primerosuggestedTargetId, luego identificadorestabIdestables comot1, etiquetas opcionales y eltargetIdsin procesar. Los agentes deben reutilizarsuggestedTargetId; los id sin procesar siguen disponibles para depuración y compatibilidad.
Selección de navegador
Al iniciar localmente, OpenClaw elige el primero disponible:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Plataformas:
- macOS: comprueba
/Applicationsy~/Applications. - Linux: comprueba ubicaciones comunes de Chrome/Brave/Edge/Chromium bajo
/usr/bin,/snap/bin,/opt/google,/opt/brave.com,/usr/lib/chromiumy/usr/lib/chromium-browser, además de Chromium gestionado por Playwright bajoPLAYWRIGHT_BROWSERS_PATHo~/.cache/ms-playwright. - Windows: comprueba ubicaciones de instalación comunes.
API de control (opcional)
Para scripts y depuración, el Gateway expone una pequeña API HTTP de control solo de loopback junto con una CLIopenclaw browser correspondiente (instantáneas, refs, mejoras de espera,
salida JSON, flujos de trabajo de depuración). Consulta
API de control del navegador para obtener la referencia completa.
Solución de problemas
Para problemas específicos de Linux (especialmente snap Chromium), consulta Solución de problemas del navegador. Para configuraciones con Gateway en WSL2 + Chrome en Windows con hosts separados, consulta Solución de problemas de WSL2 + Windows + CDP remoto de Chrome.Error de inicio de CDP frente a bloqueo SSRF de navegación
Estas son clases de error diferentes y apuntan a rutas de código distintas.- Error de inicio o preparación de CDP significa que OpenClaw no puede confirmar que el plano de control del navegador esté sano.
- Bloqueo SSRF de navegación significa que el plano de control del navegador está sano, pero una página de destino de navegación se rechaza por política.
- Error de inicio o preparación de 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 openclawcuando un servicio CDP externo de loopback está configurado sinattachOnly: true
- Bloqueo SSRF de navegación:
- los flujos
open,navigate, de instantánea o de apertura de pestañas fallan con un error de política de navegador/red mientrasstartytabsaún funcionan
- los flujos
- Si
startfalla connot reachable after start, primero soluciona la preparación de CDP. - Si
starttiene éxito perotabsfalla, el plano de control sigue sin estar sano. Trátalo como un problema de alcanzabilidad de CDP, no como un problema de navegación de páginas. - Si
startytabstienen éxito peroopenonavigatefalla, el plano de control del navegador está activo y el fallo está en la política de navegación o en la página de destino. - Si
start,tabsyopentienen éxito, la ruta básica de control del navegador gestionado está sana.
- La configuración del navegador usa de forma predeterminada un objeto de política SSRF de cierre seguro incluso cuando no configuras
browser.ssrfPolicy. - Para el perfil gestionado local de loopback
openclaw, las comprobaciones de salud de CDP omiten intencionadamente la aplicación de alcanzabilidad SSRF del navegador para el propio plano de control local de OpenClaw. - La protección de navegación es independiente. Un resultado correcto de
startotabsno significa que un destino posterior deopenonavigateesté permitido.
- No relajes la política SSRF del navegador de forma predeterminada.
- Prefiere excepciones de host específicas, como
hostnameAllowlistoallowedHostnames, en lugar de un acceso amplio a redes privadas. - Usa
dangerouslyAllowPrivateNetwork: truesolo en entornos deliberadamente confiables donde el acceso del navegador a redes privadas sea necesario y haya sido revisado.
Herramientas del agente + cómo funciona el control
El agente recibe una herramienta para la automatización del navegador:browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
browser snapshotdevuelve un árbol de interfaz de usuario estable (AI o ARIA).browser actusa los IDrefde la instantánea para hacer clic/escribir/arrastrar/seleccionar.browser screenshotcaptura píxeles (página completa, elemento o referencias etiquetadas).browser doctorcomprueba la preparación de Gateway, Plugin, perfil, navegador y pestaña.browseracepta:profilepara elegir un perfil de navegador con nombre (openclaw, chrome o CDP remoto).target(sandbox|host|node) para seleccionar dónde reside el navegador.- En sesiones aisladas,
target: "host"requiereagents.defaults.sandbox.browser.allowHostControl=true. - Si se omite
target: las sesiones aisladas usansandboxde forma predeterminada; las sesiones no aisladas usanhostde forma predeterminada. - Si hay conectado un nodo con capacidad de navegador, la herramienta puede redirigir automáticamente a él, a menos que fijes
target="host"otarget="node".
Relacionado
- Resumen de herramientas - todas las herramientas disponibles del agente
- Aislamiento - control del navegador en entornos aislados
- Seguridad - riesgos y endurecimiento del control del navegador