Navegador (administrado por OpenClaw)
OpenClaw puede ejecutar un perfil dedicado de Chrome/Brave/Edge/Chromium que el agente controla. Está aislado de tu navegador personal y se administra a través de un pequeño servicio de control local dentro del Gateway (solo loopback). Vista para principiantes:
- 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 carril seguro.
- El perfil predeterminado
chromeutiliza el navegador Chromium predeterminado del sistema a través del relé de extensión; cambia aopenclawpara el navegador administrado aislado.
Lo que obtienes
- Un perfil de navegador separado llamado openclaw (acento naranja por defecto).
- Control determinista de pestañas (listar/abrir/enfocar/cerrar).
- Acciones del agente (clic/escribir/arrastrar/seleccionar), instantáneas, capturas de pantalla, PDFs.
- Soporte opcional para múltiples perfiles (
openclaw,work,remote, …).
Este navegador no es tu navegador de uso diario. Es una superficie segura y aislada para la automatización y verificación del agente.
Inicio rápido
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
Si obtienes "Browser disabled", habilítalo en la configuración (ver abajo) y reinicia el Gateway.
Perfiles: openclaw vs chrome
openclaw: navegador administrado, aislado (no requiere extensión).chrome: relé de extensión a tu navegador del sistema (requiere que la extensión OpenClaw esté adjunta a una pestaña).
Establece browser.defaultProfile: "openclaw" si quieres el modo administrado por defecto.
Configuración
Los ajustes del navegador residen en ~/.openclaw/openclaw.json.
{
browser: {
enabled: true, // predeterminado: true
ssrfPolicy: {
dangerouslyAllowPrivateNetwork: true, // modo red-confiable predeterminado
// allowPrivateNetwork: true, // alias heredado
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
// cdpUrl: "http://127.0.0.1:18792", // anulación heredada de perfil único
remoteCdpTimeoutMs: 1500, // tiempo de espera HTTP para CDP remoto (ms)
remoteCdpHandshakeTimeoutMs: 3000, // tiempo de espera de handshake WebSocket para CDP remoto (ms)
defaultProfile: "chrome",
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" },
remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" },
},
},
}
Notas:
- El servicio de control del navegador se vincula a loopback en un puerto derivado de
gateway.port(predeterminado:18791, que es gateway + 2). El relé usa el siguiente puerto (18792). - Si anulas el puerto del Gateway (
gateway.portoOPENCLAW_GATEWAY_PORT), los puertos derivados del navegador cambian para permanecer en la misma "familia". cdpUrlpor defecto es el puerto del relé cuando no está establecido.remoteCdpTimeoutMsse aplica a las comprobaciones de accesibilidad de CDP remoto (no loopback).remoteCdpHandshakeTimeoutMsse aplica a las comprobaciones de accesibilidad de WebSocket de CDP remoto.- La navegación del navegador/apertura de pestaña está protegida contra SSRF antes de la navegación y se vuelve a verificar con el mejor esfuerzo en la URL
http(s)final después de la navegación. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkpor defecto estrue(modelo de red confiable). Establécelo enfalsepara una navegación estrictamente pública.browser.ssrfPolicy.allowPrivateNetworksigue siendo compatible como un alias heredado.attachOnly: truesignifica "nunca iniciar un navegador local; solo adjuntar si ya está en ejecución".color+colorpor perfil tiñen la interfaz de usuario del navegador para que puedas ver qué perfil está activo.- El perfil predeterminado es
openclaw(navegador independiente administrado por OpenClaw). UsadefaultProfile: "chrome"para optar por el relé de extensión de Chrome. - Orden de auto-detección: navegador predeterminado del sistema si es basado en Chromium; de lo contrario Chrome → Brave → Edge → Chromium → Chrome Canary.
- Los perfiles locales
openclawasignan automáticamentecdpPort/cdpUrl— establece esos solo para CDP remoto.
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. Establece browser.executablePath para anular la auto-detección: ejemplo CLI:
openclaw config set browser.executablePath "/usr/bin/google-chrome"
// macOS
{
browser: {
executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
}
}
// Windows
{
browser: {
executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
}
}
// Linux
{
browser: {
executablePath: "/usr/bin/brave-browser"
}
}
Control local vs remoto
- Control local (predeterminado): el Gateway inicia el servicio de control loopback y puede lanzar un navegador local.
- Control remoto (nodo host): ejecuta un nodo host en la máquina que tiene el navegador; el Gateway redirige las acciones del navegador a él.
- CDP remoto: establece
browser.profiles.<name>.cdpUrl(obrowser.cdpUrl) para adjuntar a un navegador remoto basado en Chromium. En este caso, OpenClaw no lanzará un navegador local.
Las URLs de CDP remoto pueden incluir autenticación:
- Tokens de consulta (ej.,
https://provider.example?token=<token>) - Autenticación HTTP Basic (ej.,
https://user:pass@provider.example)
OpenClaw preserva la autenticación al llamar a los endpoints /json/* y al conectarse al WebSocket de CDP. Prefiere variables de entorno o gestores de secretos para los tokens en lugar de comprometerlos en archivos de configuración.
Proxy de navegador de nodo (predeterminado sin configuración)
Si ejecutas un nodo host en la máquina que tiene tu navegador, OpenClaw puede redirigir automáticamente las llamadas de herramientas del navegador a ese nodo sin ninguna configuración adicional del navegador. Esta es la ruta predeterminada para gateways remotos. Notas:
- El nodo host expone su servidor de control de navegador local a través de un comando proxy.
- Los perfiles provienen de la propia configuración
browser.profilesdel nodo (igual que local). - Deshabilítalo si no lo quieres:
- En el nodo:
nodeHost.browserProxy.enabled=false - En el gateway:
gateway.nodes.browser.mode="off"
- En el nodo:
Browserless (CDP remoto alojado)
Browserless es un servicio alojado de Chromium que expone endpoints de CDP a través de HTTPS. Puedes apuntar un perfil de navegador OpenClaw a un endpoint de región de Browserless y autenticarte con tu clave API. Ejemplo:
{
browser: {
enabled: true,
defaultProfile: "browserless",
remoteCdpTimeoutMs: 2000,
remoteCdpHandshakeTimeoutMs: 4000,
profiles: {
browserless: {
cdpUrl: "https://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>",
color: "#00AA00",
},
},
},
}
Notas:
- Reemplaza
<BROWSERLESS_API_KEY>con tu token real de Browserless. - Elige el endpoint de región que coincida con tu cuenta de Browserless (consulta su documentación).
Seguridad
Ideas clave:
- El control del navegador es solo loopback; el acceso fluye a través de la autenticación del Gateway o el emparejamiento de nodos.
- Si el control del navegador está habilitado y no hay autenticación configurada, OpenClaw genera automáticamente
gateway.auth.tokenal inicio y lo persiste en la configuración. - Mantén el Gateway y cualquier nodo host en una red privada (Tailscale); evita la exposición pública.
- Trata las URLs/tokens de CDP remoto como secretos; prefiere variables de entorno o un gestor de secretos.
Consejos para CDP remoto:
- Prefiere endpoints HTTPS y tokens de corta duración cuando sea posible.
- Evita incrustar tokens de larga duración directamente en archivos de configuración.
Perfiles (multi-navegador)
OpenClaw admite múltiples perfiles con nombre (configuraciones de enrutamiento). Los perfiles pueden ser:
- Administrado por openclaw: una instancia de navegador basada en Chromium dedicada 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)
- Relé de extensión: tus pestañas de Chrome existentes a través del relé local + extensión de Chrome
Predeterminados:
- El perfil
openclawse crea automáticamente si falta. - El perfil
chromeestá integrado para el relé de extensión de Chrome (apunta ahttp://127.0.0.1:18792por defecto). - Los puertos CDP locales se asignan desde 18800–18899 por defecto.
- Eliminar un perfil mueve su directorio de datos local a la Papelera.
Todos los endpoints de control aceptan ?profile=<name>; la CLI usa --browser-profile.
Relé de extensión de Chrome (usa tu Chrome existente)
OpenClaw también puede controlar tus pestañas de Chrome existentes (sin una instancia de Chrome "openclaw" separada) a través de un relé CDP local + una extensión de Chrome. Guía completa: Extensión de Chrome Flujo:
- El Gateway se ejecuta localmente (misma máquina) o un nodo host se ejecuta en la máquina del navegador.
- Un servidor de relé local escucha en una
cdpUrlde loopback (predeterminado:http://127.0.0.1:18792). - Haces clic en el icono de la extensión OpenClaw Browser Relay en una pestaña para adjuntarla (no se adjunta automáticamente).
- El agente controla esa pestaña a través de la herramienta normal
browser, seleccionando el perfil correcto.
Si el Gateway se ejecuta en otro lugar, ejecuta un nodo host en la máquina del navegador para que el Gateway pueda redirigir las acciones del navegador.
Sesiones en sandbox
Si la sesión del agente está en sandbox, la herramienta browser puede usar por defecto target="sandbox" (navegador sandbox). La toma de control del relé de extensión de Chrome requiere control del navegador host, así que:
- ejecuta la sesión sin sandbox, o
- establece
agents.defaults.sandbox.browser.allowHostControl: truey usatarget="host"al llamar a la herramienta.
Configuración
- Carga la extensión (dev/unpacked):
openclaw browser extension install
- Chrome →
chrome://extensions→ habilita "Modo desarrollador" - "Cargar extensión descomprimida" → selecciona el directorio impreso por
openclaw browser extension path - Fija la extensión, luego haz clic en ella en la pestaña que quieres controlar (la insignia muestra
ON).
- Úsala:
- CLI:
openclaw browser --browser-profile chrome tabs - Herramienta del agente:
browserconprofile="chrome"
Opcional: si quieres un nombre o puerto de relé diferente, crea tu propio perfil:
openclaw browser create-profile \
--name my-chrome \
--driver extension \
--cdp-url http://127.0.0.1:18792 \
--color "#00AA00"
Notas:
- Este modo depende de Playwright-on-CDP para la mayoría de las operaciones (capturas de pantalla/instantáneas/acciones).
- Desadjunta haciendo clic en el icono de la extensión nuevamente.
Garantías de aislamiento
- Directorio de datos de usuario dedicado: nunca toca tu perfil de navegador personal.
- Puertos dedicados: evita
9222para prevenir colisiones con flujos de trabajo de desarrollo. - Control determinista de pestañas: apunta a pestañas por
targetId, no por "última pestaña".
Selección del navegador
Al lanzar localmente, OpenClaw elige el primero disponible:
- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
Puedes anularlo con browser.executablePath. Plataformas:
- macOS: verifica
/Applicationsy~/Applications. - Linux: busca
google-chrome,brave,microsoft-edge,chromium, etc. - Windows: verifica ubicaciones de instalación comunes.
API de control (opcional)
Solo para integraciones locales, el Gateway expone una pequeña API HTTP loopback:
- Estado/inicio/detención:
GET /,POST /start,POST /stop - Pestañas:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Instantánea/captura de pantalla:
GET /snapshot,POST /screenshot - Acciones:
POST /navigate,POST /act - Hooks:
POST /hooks/file-chooser,POST /hooks/dialog - Descargas:
POST /download,POST /wait/download - Depuración:
GET /console,POST /pdf - Depuración:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Red:
POST /response/body - Estado:
GET /cookies,POST /cookies/set,POST /cookies/clear - Estado:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Configuraciones:
POST /set/offline,POST /set/headers,POST /set/credentials,POST /set/geolocation,POST /set/media,POST /set/timezone,POST /set/locale,POST /set/device
Todos los endpoints aceptan ?profile=<name>. Si la autenticación del gateway está configurada, las rutas HTTP del navegador también requieren autenticación:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>o autenticación HTTP Basic con esa contraseña
Requisito de Playwright
Algunas características (navegar/act/instantánea IA/instantánea de rol, capturas de pantalla de elementos, PDF) requieren Playwright. Si Playwright no está instalado, esos endpoints devuelven un error 501 claro. Las instantáneas ARIA y las capturas de pantalla básicas aún funcionan para Chrome administrado por openclaw. Para el controlador de relé de extensión de Chrome, las instantáneas ARIA y las capturas de pantalla requieren Playwright. Si ves Playwright is not available in this gateway build, instala el paquete completo de Playwright (no playwright-core) y reinicia el gateway, o reinstala OpenClaw con soporte de navegador.
Instalación de Playwright en Docker
Si tu Gateway se ejecuta en Docker, evita npx playwright (conflictos de anulación de npm). Usa la CLI incluida en su lugar:
docker compose run --rm openclaw-cli \
node /app/node_modules/playwright-core/cli.js install chromium
Para persistir las descargas del navegador, establece PLAYWRIGHT_BROWSERS_PATH (por ejemplo, /home/node/.cache/ms-playwright) y asegúrate de que /home/node esté persistido a través de OPENCLAW_HOME_VOLUME o un bind mount. Ver Docker.
Cómo funciona (interno)
Flujo de alto nivel:
- Un pequeño servidor de control acepta solicitudes HTTP.
- Se conecta a navegadores basados en Chromium (Chrome/Brave/Edge/Chromium) a través de CDP.
- Para acciones avanzadas (clic/escribir/instantánea/PDF), usa Playwright sobre CDP.
- Cuando falta Playwright, solo están disponibles las operaciones que no son de Playwright.
Este diseño mantiene al agente en una interfaz estable y determinista mientras te permite intercambiar navegadores y perfiles locales/remotos.
Referencia rápida de CLI
Todos los comandos aceptan --browser-profile <name> para apuntar a un perfil específico. Todos los comandos también aceptan --json para salida legible por máquina (cargas útiles estables). Básicos:
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
Inspección:
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 erroropenclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000
Acciones:
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
Estado:
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"
Notas:
uploadydialogson llamadas de armado; ejecútalas antes del clic/presión que activa el selector/cuadro de diálogo.- Las rutas de salida de descarga y traza están restringidas a las raíces temporales de OpenClaw:
- trazas:
/tmp/openclaw(alternativa:${os.tmpdir()}/openclaw) - descargas:
/tmp/openclaw/downloads(alternativa:${os.tmpdir()}/openclaw/downloads)
- trazas:
- Las rutas de carga están restringidas a una raíz de cargas temporal de OpenClaw:
- cargas:
/tmp/openclaw/uploads(alternativa:${os.tmpdir()}/openclaw/uploads)
- cargas:
uploadtambién puede establecer entradas de archivo directamente a través de--input-refo--element.snapshot:--format ai(predeterminado cuando Playwright está instalado): devuelve una instantánea IA con referencias numéricas (aria-ref="<n>").--format aria: devuelve el árbol de accesibilidad (sin referencias; solo inspección).--efficient(o--mode efficient): preajuste de instantánea de rol compacta (interactivo + compacto + profundidad + maxChars más bajo).- Predeterminado de configuración (solo herramienta/CLI): establece
browser.snapshotDefaults.mode: "efficient"para usar instantáneas eficientes cuando el llamador no pasa un modo (ver Configuración del Gateway). - Las opciones de instantánea de rol (
--interactive,--compact,--depth,--selector) fuerzan una instantánea basada en rol con referencias comoref=e12. --frame "<iframe selector>"limita las instantáneas de rol a un iframe (se empareja con referencias de rol comoe12).--interactiveproduce una lista plana y fácil de seleccionar de elementos interactivos (mejor para acciones de control).--labelsagrega una captura de pantalla solo de la ventana gráfica con etiquetas de referencia superpuestas (imprimeMEDIA:<path>).
click/type/etc requieren unarefdesnapshot(ya sea numérica12o referencia de role12). Los selectores CSS no están soportados intencionalmente para acciones.
Instantáneas y referencias
OpenClaw admite dos estilos de "instantánea":
- Instantánea IA (referencias numéricas):
openclaw browser snapshot(predeterminado;--format ai)- Salida: una instantánea de texto que incluye referencias numéricas.
- Acciones:
openclaw browser click 12,openclaw browser type 23 "hello". - Internamente, la referencia se resuelve a través de
aria-refde Playwright.
- Instantánea de rol (referencias de rol como
e12):openclaw browser snapshot --interactive(o--compact,--depth,--selector,--frame)- Salida: una lista/árbol basado en rol con
[ref=e12](y opcionalmente[nth=1]). - Acciones:
openclaw browser click e12,openclaw browser highlight e12. - Internamente, la referencia se resuelve a través de
getByRole(...)(másnth()para duplicados). - Agrega
--labelspara incluir una captura de pantalla de la ventana gráfica con etiquetase12superpuestas.
- Salida: una lista/árbol basado en rol con
Comportamiento de las referencias:
- Las referencias no son estables entre navegaciones; si algo falla, vuelve a ejecutar
snapshoty usa una referencia nueva. - Si la instantánea de rol se tomó con
--frame, las referencias de rol están limitadas a ese iframe hasta la siguiente instantánea de rol.
Potenciadores de espera
Puedes esperar más que solo tiempo/texto:
- Esperar por URL (globs soportados por Playwright):
openclaw browser wait --url "**/dash"
- Esperar por estado de carga:
openclaw browser wait --load networkidle
- Esperar por un predicado JS:
openclaw browser wait --fn "window.ready===true"
- Esperar por un selector que se vuelva visible:
openclaw browser wait "#main"
Estos se pueden combinar:
openclaw browser wait "#main" \
--url "**/dash" \
--load networkidle \
--fn "window.ready===true" \
--timeout-ms 15000
Flujos de trabajo de depuración
Cuando una acción falla (ej. "no visible", "violación de modo estricto", "cubierto"):
openclaw browser snapshot --interactive- Usa
click <ref>/type <ref>(prefiere referencias de rol en modo interactivo) - Si aún falla:
openclaw browser highlight <ref>para ver qué está apuntando Playwright - Si la página se comporta de manera extraña:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Para depuración profunda: graba una traza:
openclaw browser trace start- reproduce el problema
openclaw browser trace stop(imprimeTRACE:<path>)
Salida JSON
--json es para scripting y herramientas estructuradas. Ejemplos:
openclaw browser status --json
openclaw browser snapshot --interactive --json
openclaw browser requests --filter api --json
openclaw browser cookies --json
Las instantáneas de rol en JSON incluyen refs más un pequeño bloque stats (líneas/caracteres/refs/interactivo) para que las herramientas puedan razonar sobre el tamaño y densidad de la carga útil.
Perillas de estado y entorno
Estas son útiles para flujos de trabajo de "hacer que el sitio se comporte como X":
- Cookies:
cookies,cookies set,cookies clear - Almacenamiento:
storage local|session get|set|clear - Sin conexión:
set offline on|off - Encabezados:
set headers --headers-json '{"X-Debug":"1"}'(el heredadoset headers --json '{"X-Debug":"1"}'sigue siendo compatible) - Autenticación HTTP básica:
set credentials user pass(o--clear) - Geolocalización:
set geo <lat> <lon> --origin "https://example.com"(o--clear) - Medios:
set media dark|light|no-preference|none - Zona horaria / localidad:
set timezone ...,set locale ... - Dispositivo / ventana gráfica:
set device "iPhone 14"(preajustes de dispositivo de Playwright)set viewport 1280 720
Seguridad y privacidad
- El perfil de navegador openclaw puede contener sesiones iniciadas; trátalo como sensible.
browser act kind=evaluate/openclaw browser evaluateywait --fnejecutan JavaScript arbitrario en el contexto de la página. La inyección de prompt puede dirigir esto. Deshabilítalo conbrowser.evaluateEnabled=falsesi no lo necesitas.- Para inicios de sesión y notas anti-bot (X/Twitter, etc.), consulta Inicio de sesión en navegador + publicación en X/Twitter.
- Mantén el Gateway/nodo host privado (solo loopback o tailnet).
- Los endpoints de CDP remoto son poderosos; túnelalos y protégelos.
Ejemplo de modo estricto (bloquear destinos privados/internos por defecto):
{
browser: {
ssrfPolicy: {
dangerouslyAllowPrivateNetwork: false,
hostnameAllowlist: ["*.example.com", "example.com"],
allowedHostnames: ["localhost"], // permiso exacto opcional
},
},
}
Solución de problemas
Para problemas específicos de Linux (especialmente Chromium snap), consulta Solución de problemas del navegador en Linux.
Herramientas del agente + cómo funciona el control
El agente obtiene una herramienta para la automatización del navegador:
browser— estado/inicio/detención/pestañas/abrir/enfocar/cerrar/instantánea/captura de pantalla/navegar/act
Cómo se mapea:
browser snapshotdevuelve un árbol de UI estable (IA o ARIA).browser actusa los IDsrefde la instantánea para hacer clic/escribir/arrastrar/seleccionar.browser screenshotcaptura píxeles (página completa o elemento).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 en sandbox,
target: "host"requiereagents.defaults.sandbox.browser.allowHostControl=true. - Si se omite
target: las sesiones en sandbox usan por defectosandbox, las sesiones no sandbox usan por defectohost. - Si un nodo con capacidad de navegador está conectado, la