Browser Use: crea tu primer agente de navegación con IA
Aprende qué es Browser Use, cómo crear un agente de navegador en Python y qué aporta Cloud. Modelos compatibles, primeros pasos y límites de seguridad.
Publicado el

Browser Use permite encargarle a un agente de IA una tarea en un sitio web y mantener la automatización dentro de tu aplicación. Su biblioteca de código abierto requiere Python 3.11 o posterior; Browser Use Cloud puede alojar el navegador o el agente completo. Conviene empezar con una tarea cuyo resultado puedas comprobar, como consultar un registro en un portal, antes de darle permiso para enviar cambios.
Información verificada con el README de Browser Use en GitHub y la documentación oficial enlazada el 2 de noviembre de 2026. El ejemplo que sigue está adaptado de esa documentación; no es una prueba de rendimiento realizada por el autor.
Browser Use: automatización web con IA
Browser Use conecta un modelo de lenguaje con un navegador para que tu aplicación pueda describir un objetivo sin tener que especificar cada clic. Sirve para tareas como buscar un registro en el portal de un proveedor, consultar un panel de control o recorrer un formulario cuya siguiente pantalla depende de la respuesta anterior. La biblioteca de código abierto aporta el agente: el software que elige y ejecuta acciones de forma sucesiva para alcanzar ese objetivo. README de la biblioteca
Piensa en el modelo de lenguaje como un conductor, en Browser Use como los mandos y la información que lo guían, y en el navegador como el vehículo. La carretera sigue siendo el sitio web de otra persona. Por muy bien que conduzca, no puede abrir una carretera cerrada ni decidir que un encargo de entrega autoriza una compra ajena a ese encargo.
El ciclo funciona así:
- Observar: recopilar el estado actual de la página, incluidos sus elementos interactivos. Browser Use también puede proporcionar capturas de pantalla al modelo.
- Decidir: el modelo de lenguaje de gran tamaño, o LLM, elige la siguiente acción a partir de la tarea y del estado actual.
- Actuar: el navegador se desplaza a otra página, hace clic, escribe o realiza otra operación disponible.
- Volver a observar: la siguiente decisión parte de la página modificada. El ciclo continúa hasta que el agente se detiene o lo interrumpe un límite configurado.
El DOM, el árbol que organiza los elementos de una página, ayuda a identificar los controles sobre los que puede actuar el agente; las capturas aportan contexto visual. Browser Use documenta tanto el procesamiento del DOM como las opciones de visión, por lo que describirlo como un modelo que solo mira imágenes resulta engañoso. Controles del navegador, configuración del agente

Para quien está creando una empresa y desarrolla un asistente de compras, una tarea útil podría ser «buscar el estado del envío de este pedido». El criterio para darla por válida es obtener el pedido correcto y su estado, junto con el registro de origen. Un párrafo convincente del agente no basta para comprobarlo.
Browser Use de código abierto: qué necesitas instalar
La instalación básica consta del paquete de Python browser-use, un navegador que controlar y acceso a un modelo compatible. La biblioteca tiene licencia MIT. Su README exige Python 3.11 o posterior, mientras que la guía de inicio rápido utiliza Python 3.12. Puedes ejecutar el agente en tu propio proceso y elegir un navegador local o remoto. README e instalación
«Local» indica dónde se ejecuta ese proceso o navegador. Si eliges la API de un modelo remoto, las observaciones siguen enviándose a ese servicio; usar un navegador local no convierte todo el sistema en local.
¿Qué modelos se pueden usar?
Browser Use incluye adaptadores para varios proveedores, así que no obliga a usar su propio modelo:
- Browser Use BU2:
ChatBrowserUse(model="bu-2-0"), conBROWSER_USE_API_KEY. - Modelos de OpenAI:
ChatOpenAI, conOPENAI_API_KEY. - Modelos Claude de Anthropic:
ChatAnthropic, conANTHROPIC_API_KEY. - Modelos Gemini de Google:
ChatGoogle, conGOOGLE_API_KEY. - Modelos locales mediante Ollama:
ChatOllama, conectado a tu servicio de modelos local.
La documentación de modelos compatibles también enumera integraciones con DeepSeek, Mistral, Microsoft Azure OpenAI, Amazon Web Services Bedrock y OpenRouter. Comprueba qué modelos ofrece actualmente el proveedor; un identificador que aparece en un ejemplo antiguo no equivale a una recomendación.
Disponer de un adaptador no garantiza la calidad. Esa misma documentación advierte que algunos modelos Qwen generan un esquema de acciones incorrecto, es decir, instrucciones en un formato que el agente no puede ejecutar, y actualmente recomienda qwen-vl-max para esa integración. Evalúa el modelo con las páginas y los resultados que necesitas antes de ampliar sus responsabilidades.
La interfaz Browser Use Web UI
Browser Use Web UI es un proyecto independiente que ofrece una interfaz web con Gradio para interactuar con el agente. Tiene su propia instalación y sus propias dependencias. Para integrarlo en una aplicación, empieza por la documentación vigente de la biblioteca de Python; no mezcles la configuración del repositorio de Web UI con el SDK del servicio alojado.
¿Qué aporta Browser Use Cloud?
Browser Use Cloud permite delegar la infraestructura del navegador, el agente completo o ambas cosas. De esa elección depende cuánto código tendrás que operar. La guía de inicio rápido de Cloud actual distingue expresamente estas opciones:
Si ejecutas tu propio agente, Browser(use_cloud=True) selecciona el navegador alojado de Browser Use y requiere BROWSER_USE_API_KEY. El navegador gestionado añade funciones para reducir la detección de la automatización, proxies y una vista previa en directo. El README también describe la gestión de CAPTCHA y aclara expresamente que los resultados dependen del sitio y del desafío. Guía del navegador de Cloud, README
CDP, el protocolo Chrome DevTools Protocol, es la conexión de control remoto que utiliza la modalidad de infraestructura documentada. Por tanto, un navegador alojado puede trabajar con código que sigues ejecutando por tu cuenta.
En la modalidad totalmente alojada, el paquete es browser-use-sdk, no browser-use. Los ejemplos actuales de Cloud utilizan la API V4 y la importación de Python from browser_use_sdk.v4 import BrowserUse. Tu programa envía una tarea y recupera el resultado en lugar de ejecutar el ciclo local de Agent. Inicio rápido del agente alojado
Para quien desarrolla la aplicación, es una decisión de despliegue. Para quien la opera, la responsabilidad sigue siendo la misma: decidir a qué puede acceder el agente y qué pruebas permiten dar el trabajo por terminado.
¿Cuándo conviene una alternativa a Browser Use?
Elige qué parte del sistema necesitas controlar. Browser Use es un buen punto de partida si la tarea se limita a sitios web y buscas un ciclo de agente de navegador ya implementado, con libertad para elegir el modelo. Una API de control de computadoras encaja cuando quieres desarrollar tu solución a partir de su interfaz de acciones o necesitas trabajar fuera de las páginas web.
OpenAI también ofrece una Agents API con un navegador alojado por OpenAI independiente, de modo que ya no sirve la regla de que «el control de computadoras siempre exige alojar tu propio navegador». Browserbase también cuenta con productos de agentes además de su infraestructura de navegadores.
Browser Use y Browserbase no son necesariamente opciones excluyentes: Browser Use acepta un cdp_url y Browserbase proporciona una URL de conexión CDP. Esas interfaces documentadas permiten plantear la combinación de la biblioteca de agentes con ese entorno de ejecución, aunque este artículo no afirma haber probado la integración. Configuración de conexión de Browser Use
Conserva una API fiable o un script de navegador con una secuencia fija si ya resuelve la tarea. Un formulario estable no gana nada si le pides a un modelo que redescubra siempre los mismos pasos. La guía de agentes de control de computadoras explica con más detalle cómo decidir quién controla las acciones; la comparativa de navegadores para agentes de IA aborda la infraestructura.
Los riesgos que tu aplicación sigue teniendo que gestionar
En producción, lo más difícil es delimitar qué puede hacer el navegador con una sesión iniciada. Alojarlo en otro lugar no vuelve fiables las instrucciones de las páginas ni elimina las consecuencias de un envío equivocado.
Inyección de prompts en el contenido de las páginas
Hay inyección de prompts cuando el contenido que lee el agente intenta desviar sus instrucciones. En un portal, podría ser una nota escrita por un cliente que le ordena subir un informe a otro destino. Trata esa nota como un dato, aunque se presente como una instrucción del administrador.
Usa cuentas dedicadas con solo los permisos que exige la tarea. Restringe la navegación con allowed_domains de Browser Use y haz que tu aplicación o entorno de ejecución exija aprobación para las acciones con consecuencias. Un sitio permitido también puede mostrar contenido malicioso generado por sus usuarios: una lista de dominios, por sí sola, no garantiza que el contenido sea fiable. Restricciones del navegador, orientaciones de seguridad para el control de computadoras

Un prompt que diga «pregunta antes de enviar» no impone un límite efectivo de permisos. Si tu integración no puede interceptar de forma fiable la acción en cuestión, déjala fuera de los permisos del agente y encárgasela a una persona. La guía sobre inyección de prompts explica cómo vincular la aprobación a la acción exacta que se autoriza.
Inicios de sesión, almacenamiento y registros
Una sesión guardada da acceso a una cuenta. Browser Use puede reutilizar Chrome mediante Browser.from_system_chrome() o cargar cookies y almacenamiento local guardados con Browser(storage_state="auth.json"). Protege ese archivo de estado como una credencial, exclúyelo del control de versiones y evita usar un perfil personal de navegador para una tarea empresarial sin supervisión. Documentación de autenticación
La migración tiene un límite concreto: según el README, la sincronización del perfil local transfiere las cookies, pero no el almacenamiento local, IndexedDB ni las extensiones. IndexedDB es otro sistema de almacenamiento del navegador. Por su parte, los perfiles de Cloud pueden conservar cookies, almacenamiento local y estado de inicio de sesión entre navegadores en la nube. Esa persistencia no implica que la sincronización local haya copiado todos los mecanismos de almacenamiento. En algunos sitios tendrás que volver a iniciar sesión. Limitación de la sincronización
Mantén perfiles separados para cada usuario final. Antes de trabajar con datos privados de un portal, revisa también qué información llega a las entradas del modelo, las capturas de pantalla y los historiales de conversación guardados. Browser Use ofrece controles para las capturas y el guardado de conversaciones; configúralos según lo que necesites. Configuración del agente
Límites de solicitudes y reintentos con resultado incierto
Disponer de una sesión de navegador en la nube no da acceso ilimitado al sitio de destino. Planifica por separado los límites del servicio de modelos, la capacidad y los límites de solicitudes de Browser Use Cloud, y las restricciones de frecuencia o los desafíos del propio sitio.
Limita el trabajo simultáneo por sitio de destino, reduce el ritmo cuando te pida esperar y detén los intentos bloqueados que se repiten. Ante errores de la API de Cloud, comprueba si el fallo se debe a la capacidad o a la frecuencia de solicitudes y respeta las indicaciones recibidas para reintentar. Límites de Cloud
Sobre todo, no dupliques un envío porque tu cliente haya agotado el tiempo de espera. Primero comprueba la ejecución existente y el registro en el sistema de destino. Un tiempo de espera agotado puede dejarte sin saber qué pasó con una acción que ya se realizó.
Primeros pasos con Browser Use: una tarea sencilla
Empieza con una página pública y una tarea de solo lectura. Así podrás comprobar que el paquete, el navegador y el modelo se conectan sin involucrar una sesión de usuario ni una transacción de negocio. Los comandos siguen la guía de inicio rápido de código abierto; este ejemplo utiliza su entorno de Python 3.12 y la selección explícita del modelo BU2 que aparece en el README.
Cómo configurar Browser Use en Python
Instala el paquete y el navegador
En macOS o Linux, con Python y pip disponibles, abre una terminal Bash en una carpeta nueva para el proyecto:
Bashpip install uv uv venv --python 3.12 source .venv/bin/activate uv pip install browser-use uvx browser-use installEl último comando instala el navegador. En Windows, sustituye
sourcepor el comando de activación del entorno que indica la guía de inicio rápido.Configura la credencial del modelo
Crea una clave de API de Browser Use en el panel enlazado desde la guía de inicio rápido. Introdúcela en la misma terminal Bash sin mostrarla en pantalla:
Bashread -rsp "Browser Use API key: " BROWSER_USE_API_KEY printf '\n' export BROWSER_USE_API_KEYEsta clave habilita el servicio del modelo elegido. No traslada automáticamente el navegador a Cloud.
Ejecuta una tarea breve de solo lectura
Guarda lo siguiente en
agent.py:Pythonimport asyncio from browser_use import Agent, ChatBrowserUse async def main(): agent = Agent( task=( "Open https://example.com and report the page heading. " "Do not follow links or submit anything." ), llm=ChatBrowserUse(model="bu-2-0"), ) history = await agent.run() print(history.final_result()) if __name__ == "__main__": asyncio.run(main())Después, ejecuta:
Bashpython agent.pyCompara por tu cuenta el encabezado que devuelve con el de la página. La instrucción de la tarea sirve como restricción inicial para este ejemplo inocuo; en producción, las restricciones deben imponerse fuera del prompt.
Si falla, lee el error antes de cambiar de modelo: la instalación del navegador, la autenticación del modelo y el acceso al sitio web son puntos de fallo distintos. Cuando funcione, conserva las versiones de las dependencias que utilizaste y pasa a una cuenta de prueba en el sitio previsto.
¿Qué expectativas conviene ajustar?
Que el agente termine su ejecución no demuestra que haya completado una transacción de negocio. La documentación de resultados de Browser Use distingue ambos conceptos: is_done() significa que el agente emitió una acción de finalización; is_successful() refleja la valoración del propio agente. Los resultados externos importantes siguen necesitando una comprobación en el sistema de destino. Significado de los resultados
Si cambias una dirección, revisa la dirección guardada. Si descargas un informe, comprueba el archivo y el periodo que abarca. Si realizas un envío, guarda la confirmación del destino y aclara cualquier resultado incierto antes de reintentar.
La misma cautela se aplica a la promesa de que «funciona en cualquier sitio web». Las funciones del navegador gestionado pueden reducir las dificultades de acceso, pero el README del proyecto no promete evitar ni resolver todos los CAPTCHA. Un modelo mejor tampoco puede conceder permisos de cuenta que el usuario no tiene. Diseña la integración según el comportamiento real del sitio, incluido el momento en que debe intervenir una persona.
Por dónde empezar el lunes
Si estás creando una empresa y tienes un perfil técnico, la primera prueba útil consiste en una tarea acotada de lectura en un portal, con una respuesta clara. Usa una cuenta de prueba independiente, identifica las páginas permitidas y deja por escrito cómo verificarás el registro devuelto. Registra tanto los fallos como las ejecuciones completadas.
Amplía el alcance a la preparación de formularios solo cuando comprendas esos fallos. Deja el envío en manos de una persona hasta que tu aplicación pueda exigir aprobación, inspeccionar el resultado guardado y recuperarse sin duplicar la acción. Si una API compatible o un script estable ya cubre el flujo de trabajo, conserva esa integración más sencilla.
Para recibir consejos prácticos sobre cómo crear flujos de trabajo fiables con IA, suscríbete al boletín.
- Publicado
- Categoría
- Build
- Idioma








