
Ethan Collins
Pattern Recognition Specialist

Cuando tu asistente de IA navega por la web dentro de un contenedor seguro, los CAPTCHAs siguen siendo el obstáculo número uno. Las páginas protegidas bloquean al agente, los formularios no se pueden enviar y las tareas se detienen esperando intervención humana, incluso cuando el agente está en un entorno aislado.
NanoClaw es un marco ligero para asistentes de IA que ejecuta agentes Claude en contenedores Linux aislados. Cada agente tiene su propio sistema de archivos, su propio navegador y sus propias herramientas, completamente separados del host y de otros agentes. Pero como cualquier automatización de navegadores, los CAPTCHAs lo detienen por completo.
CapSolver cambia esto por completo. Al cargar la extensión de CapSolver en el navegador Chromium del contenedor, los CAPTCHAs se resuelven automáticamente y de forma invisible en segundo plano. Sin código. Sin llamadas a API desde tu lado. Sin cambios en cómo te comunicas con tu asistente de IA.
Lo mejor de todo es que ni siquiera necesitas mencionar los CAPTCHAs al IA. Solo le dices que espere un momento antes de enviar y, cuando haga clic en "Enviar", el CAPTCHA ya está resuelto.
Y como NanoClaw ejecuta cada agente en su propio contenedor, cada agente obtiene un navegador aislado con su propia instancia de CapSolver — sin conflictos, sin estado compartido, sin interferencia entre agentes.
NanoClaw es un marco ligero para asistentes de IA diseñado para seguridad y simplicidad. Ejecuta agentes Claude en contenedores Linux aislados, proporcionando a cada agente un aislamiento a nivel del sistema operativo en lugar de comprobaciones de permisos a nivel de aplicación.
agent-browser para automatización webCada contenedor NanoClaw incluye Chromium de Debian y la herramienta CLI agent-browser. El agente puede:
Imagínalo como darle a cada agente de IA una ventana de navegador aislada dentro de un sandbox protegido.
CapSolver es un servicio líder de resolución de CAPTCHAs que proporciona soluciones impulsadas por IA para evitar diversos desafíos de CAPTCHA. Con soporte para múltiples tipos de CAPTCHA y tiempos de respuesta rápidos, CapSolver se integra sin problemas en flujos automatizados.
La mayoría de las integraciones para resolver CAPTCHAs requieren que escribas código: crea llamadas a API, consulta resultados, inyecta tokens en campos ocultos. Así funciona con herramientas como Crawlee, Puppeteer o Playwright.
NanoClaw + CapSolver es fundamentalmente diferente:
| Tradicional (basado en código) | NanoClaw (lenguaje natural) |
|---|---|
Escribe una clase CapSolverService |
Monta una extensión en el contenedor |
Llama a createTask() / getTaskResult() |
Simplemente habla con tu IA |
Inyecta tokens mediante page.$eval() |
La extensión lo maneja todo |
| Maneja errores, reintentos, tiempos de espera en código | Dile al IA que "espere 70 segundos, luego haga clic en Enviar" |
| Código diferente para cada tipo de CAPTCHA | Funciona para todos los tipos automáticamente |
| Estado compartido del navegador entre tareas | Cada agente obtiene un navegador aislado propio |
La clave del insight: La extensión de CapSolver se ejecuta dentro del navegador Chromium del contenedor. Cuando el agente navega a una página con un CAPTCHA, la extensión lo detecta, lo resuelve en segundo plano y inyecta el token — todo antes de que el agente intente enviar el formulario.
Solo necesitas darle tiempo. En lugar de decirle al IA "resuelve el CAPTCHA", simplemente dices:
"Ve a esa página, espera 70 segundos, luego haz clic en Enviar."
Eso es todo. El IA no necesita saber nada sobre CapSolver en absoluto.
Como NanoClaw ejecuta cada agente en su propio contenedor, obtienes una ventaja única: cada agente tiene su propia instancia de Chromium con su propia extensión de CapSolver. Esto significa:
Antes de configurar la integración, asegúrate de tener:
Buena noticia: Los contenedores de NanoClaw usan Chromium de Debian (a través de
apt-get install chromium), que es no marcado y soporta completamente la bandera--load-extension. A diferencia de Chrome de Google 137+, que eliminó silenciosamente el soporte para carga de extensiones a mediados de 2025, Chromium de Debian funciona de forma predeterminada.
No necesitas instalar Chrome para pruebas, Chromium empaquetado por Playwright o ningún otro navegador alternativo. El Chromium ya presente en tu contenedor es todo lo que necesitas.
Descarga la extensión de CapSolver para Chrome en tu directorio de proyecto NanoClaw:
CapSolver.Browser.Extension-chrome-vX.X.X.zipmkdir -p assets/capsolver-extension
unzip CapSolver.Browser.Extension-chrome-v*.zip -d assets/capsolver-extension/
ls assets/capsolver-extension/manifest.json
Deberías ver manifest.json — esto confirma que la extensión está en el lugar correcto.
Abre el archivo de configuración de la extensión en assets/capsolver-extension/assets/config.js y reemplaza el valor de apiKey con la tuya:
export const defaultConfig = {
apiKey: 'CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', // ← tu clave aquí
useCapsolver: true,
// ... resto de la configuración
};
Puedes obtener tu clave de API desde tu panel de CapSolver.
NanoClaw ejecuta agentes en contenedores Docker. El directorio de la extensión debe estar disponible dentro del contenedor en /opt/capsolver-extension.
Opción A: Montaje automático mediante el ejecutor de contenedores (recomendado)
Coloca la extensión en assets/capsolver-extension/ en tu directorio de proyecto NanoClaw. Luego agrega un montaje de volumen en src/container-runner.ts:
// Montar extensión de CapSolver si existe
const capsolverPath = path.join(process.cwd(), 'assets', 'capsolver-extension');
if (fs.existsSync(capsolverPath)) {
mounts.push({
hostPath: capsolverPath,
containerPath: '/opt/capsolver-extension',
readonly: true,
});
}
Opción B: Incluir en la imagen del contenedor
Agrega lo siguiente a tu container/Dockerfile:
# Añadir extensión de CapSolver
COPY ../assets/capsolver-extension/ /opt/capsolver-extension/
Luego reconstruye la imagen del contenedor.
NanoClaw usa la herramienta CLI agent-browser para automatización web dentro de los contenedores. Soporta cargar extensiones de Chrome mediante variables de entorno.
Agrega estas variables de entorno al contenedor en src/container-runner.ts:
if (fs.existsSync(capsolverPath)) {
args.push('-e', 'AGENT_BROWSER_EXTENSIONS=/opt/capsolver-extension');
args.push('-e', 'DISPLAY=:99');
args.push('-e', 'AGENT_BROWSER_ARGS=--no-sandbox,--disable-gpu,--disable-blink-features=AutomationControlled,--disable-background-timer-throttling');
args.push('-e', 'AGENT_BROWSER_HEADED=true');
}
| Variable de entorno | Propósito |
|---|---|
AGENT_BROWSER_EXTENSIONS |
Ruta a la extensión de CapSolver dentro del contenedor |
DISPLAY |
Pantalla virtual para Xvfb (las extensiones necesitan un contexto de pantalla) |
AGENT_BROWSER_ARGS |
Marcas de Chrome: sin sandbox, anti-detección, evitar throttling de extensiones |
AGENT_BROWSER_HEADED |
Ejecutar en modo con interfaz gráfica (las extensiones funcionan de forma más confiable) |
Los navegadores Chrome requieren una pantalla, incluso en contenedores. Añade xvfb a tu container/Dockerfile y arráncalo automáticamente en el punto de entrada:
# Añadir xvfb a la lista de instalación de apt-get
RUN apt-get update && apt-get install -y \
chromium \
xvfb \
# ... otros dependencias
&& rm -rf /var/lib/apt/lists/*
# Hacer que Xvfb sea ejecutable por usuario no root
RUN chmod u+s /usr/bin/Xvfb
# Crear directorio de sesión (agent-browser lo necesita)
RUN mkdir -p /home/node/.claude/session-env && chown -R node:node /home/node/.claude
Actualiza el punto de entrada para iniciar Xvfb automáticamente:
#!/bin/bash
set -e
# Iniciar Xvfb para extensiones de navegador
if [ -n "$DISPLAY" ]; then
Xvfb $DISPLAY -screen 0 1280x720x24 &
sleep 0.5
fi
# ... resto del punto de entrada
# Reiniciar NanoClaw para aplicar los cambios
npm run dev
# o si se ejecuta como servicio:
pm2 restart nanoclaw
Envía un mensaje de prueba a tu agente NanoClaw a través de cualquier canal conectado (Discord, WhatsApp, Telegram):
Ve a https://www.google.com/recaptcha/api2/demo, espera 70 segundos,
luego haz clic en Enviar y dime qué texto aparece en la página.
Si CapSolver funciona, el agente debería informar: "Verificación exitosa... ¡Hurra!"
Esta es la sección más importante. Una vez que la configuración esté completa, usar CapSolver con NanoClaw es muy sencillo.
No menciones los CAPTCHAs ni a CapSolver al IA. Solo déjale tiempo antes de enviar formularios.
El agente de IA no necesita saber sobre los CAPTCHAs. La extensión lo maneja todo en segundo plano. Todo lo que necesitas hacer es incluir un tiempo de espera en tus instrucciones para que la extensión tenga tiempo de resolver el desafío antes de que se envíe el formulario.
Envía esto a tu agente NanoClaw (por Discord, WhatsApp, Telegram, o cualquier canal):
Ve a https://example.com, espera 70 segundos,
luego haz clic en Enviar y dime qué texto aparece en la página.
Lo que sucede en segundo plano:
Ve a https://example.com/login, completa el campo de correo electrónico con
"me@example.com" y el campo de contraseña con "mypassword123",
luego espera 30 segundos y haz clic en el botón Iniciar sesión.
Dime qué página carga después de iniciar sesión.
Abre https://example.com/contact, completa el formulario de contacto:
- Nombre: "John Doe"
- Correo electrónico: "john@example.com"
- Mensaje: "Hola, tengo una pregunta sobre sus servicios."
Espera 45 segundos, luego haz clic en Enviar mensaje. ¿Qué confirmación aparece?
| Tipo de CAPTCHA | Tiempo de resolución típico | Tiempo de espera recomendado |
|---|---|---|
| reCAPTCHA v2 (casilla) | 10-30 segundos | 60-70 segundos |
| reCAPTCHA v2 (invisible) | 5-15 segundos | 45 segundos |
| reCAPTCHA v3 | 3-10 segundos | 30 segundos |
| Cloudflare Turnstile | 3-10 segundos | 30 segundos |
Consejo: Cuando estés en duda, usa 70 segundos. Es mejor esperar un poco más que enviar demasiado pronto. El tiempo adicional no afecta el resultado. En nuestras pruebas, 60 segundos era límite para reCAPTCHA v2 — 70 segundos funcionó de forma confiable.
Estas son frases probadas que puedes usar:
Evita estas frases — pueden confundir al IA o provocar rechazos:
Para los curiosos técnicos, aquí está lo que sucede cuando la extensión de CapSolver se carga dentro de un contenedor NanoClaw:
Tu mensaje Servidor de NanoClaw
───────────────────────────────────────────────────
"Ve a la página, ──► El router de mensajes recibe el mensaje
espera 60s, enviar" │
▼
Contenedor creado para el agente
┌─────────────────────────────────┐
│ Contenedor Docker aislado │
│ │
│ Agente de Claude (vía SDK de Agente) │
│ │ │
│ ▼ │
│ agent-browser: navegar a URL │
│ │ │
│ ▼ │
│ Chromium + Extensión CapSolver │
│ ┌───────────────────────────┐ │
│ │ Página con reCAPTCHA │ │
│ │ │ │
│ │ Extensión CapSolver: │ │
│ │ 1. El script de contenido detecta │ │
│ │ reCAPTCHA en la página │ │
│ │ 2. El trabajador de servicio llama │ │
│ │ a la API de CapSolver │ │
│ │ 3. Se recibe el token │ │
│ │ 4. El token se inyecta en un campo │ │
│ │ de formulario oculto │ │
│ └───────────────────────────┘ │
│ │ │
│ ▼ │
│ El agente espera 70 segundos... │
│ │ │
│ ▼ │
│ agente-navegador: hacer clic en Enviar │
│ │ │
│ ▼ │
│ "Verificación exitosa!" │
└─────────────────────────────────┘
│
▼
Respuesta enviada de vuelta a través de Discord/WhatsApp/etc.
NanoClaw utiliza la herramienta de línea de comandos agent-browser, que admite cargar extensiones de Chrome mediante la variable de entorno AGENT_BROWSER_EXTENSIONS. Cuando esta variable está establecida, agent-browser pasa automáticamente --load-extension a Chromium.
AGENT_BROWSER_EXTENSIONS=/opt/capsolver-extension establecidoagent-browser open <url> — Chromium se inicia con la extensión cargadaComo NanoClaw utiliza Chromium de Debian (no Chrome de Google), el indicador --load-extension funciona de manera confiable sin necesidad de trabajos en equipo. Y como agent-browser maneja el indicador internamente, no necesita gestionar los argumentos de inicio de Chrome usted mismo.
Síntoma: El agente navega y envía pero los CAPTCHAs no se resuelven.
Posibles causas:
ls /opt/capsolver-extension/manifest.json dentro del contenedorAGENT_BROWSER_EXTENSIONS esté establecida en /opt/capsolver-extension en el contenedorDISPLAY=:99Síntoma: El agente reporta "no se puede crear el directorio de sesión en /home/node/.claude/session-env"
Causa: La herramienta agent-browser necesita un directorio de sesión escribible. Si el directorio .claude montado en el host no contiene el directorio, la herramienta falla.
Solución: Asegúrese de que el directorio exista tanto en el Dockerfile como en el host:
# En el Dockerfile:
RUN mkdir -p /home/node/.claude/session-env && chown -R node:node /home/node/.claude
# En el host (para el volumen montado):
mkdir -p data/sessions/main/.claude/session-env
chmod -R 777 data/sessions/main/.claude
Posibles causas:
Síntoma: Chromium se bloquea o las extensiones no funcionan dentro del contenedor.
Solución: Asegúrese de que Xvfb esté en ejecución antes de iniciar Chromium:
Xvfb :99 -screen 0 1280x720x24 &
export DISPLAY=:99
Agregue estos comandos al script de entrada del contenedor para que se ejecuten automáticamente.
Además del método de extensión de Chrome, NanoClaw admite un segundo método de integración utilizando Habilidades de CapSolver — una herramienta de línea de comandos en Python que resuelve CAPTCHAs a través de la API de CapSolver directamente.
En lugar de que la extensión resuelva los CAPTCHAs de forma invisible en segundo plano, el agente actúa explícitamente:
python3 /opt/capsolver-skills/scripts/solver.pyClone el repositorio capsolver-skills en su proyecto NanoClaw:
git clone https://github.com/capsolver/capsolver-skills.git assets/capsolver-skills
Agregue python3 y dependencias a su container/Dockerfile:
RUN apt-get update && apt-get install -y python3 python3-pip \
&& pip3 install --break-system-packages requests python-dotenv
Monte el directorio de habilidades y pase la clave de API en src/container-runner.ts:
// Montar capsolver-skills
const capsolverSkillsPath = path.join(process.cwd(), 'assets', 'capsolver-skills');
if (fs.existsSync(capsolverSkillsPath)) {
mounts.push({
hostPath: capsolverSkillsPath,
containerPath: '/opt/capsolver-skills',
readonly: true,
});
}
// Pasar clave de API
args.push('-e', `API_KEY=${capsolverApiKey}`);
Establezca CAPSOLVER_API_KEY en su archivo .env:
CAPSOLVER_API_KEY=CAP-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@OpenCrawl Ve a https://www.google.com/recaptcha/api2/demo,
usa la habilidad de capsolver para resolver el reCAPTCHA,
luego haz clic en Enviar y dime el resultado.
El solucionador de Habilidades de CapSolver admite todos los tipos principales de CAPTCHA a través de CLI:
| Comando | Tipo de CAPTCHA |
|---|---|
ReCaptchaV2TaskProxyLess |
reCAPTCHA v2 |
ReCaptchaV3TaskProxyLess |
reCAPTCHA v3 |
AntiTurnstileTaskProxyLess |
Cloudflare Turnstile |
AntiCloudflareTask |
Desafío de Cloudflare |
AntiAwsWafTaskProxyLess |
AWS WAF |
GeeTestTaskProxyLess |
GeeTest v3/v4 |
DatadomeSliderTask |
DataDome |
| Extensión de Chrome | Habilidades de CapSolver | |
|---|---|---|
| Cómo funciona | Invisible, automático | Llamadas API explícitas |
| Conocimiento del agente | El agente no sabe sobre CAPTCHAs | El agente resuelve CAPTCHAs activamente |
| Complejidad de configuración | Montar extensión + establecer variables de entorno | Montar scripts de Python + instalar dependencias |
| Velocidad | Depende del tiempo de espera | Directo — no se necesita esperar |
| Flexibilidad | Maneja cualquier CAPTCHA automáticamente | Control detallado por tipo de CAPTCHA |
| Mejor para | Tareas simples de "navegar y enviar" | Flujos de trabajo complejos que requieren inyección de token |
Consejo: Puede usar ambos métodos simultáneamente. La extensión maneja CAPTCHAs automáticamente en segundo plano, mientras que el solucionador de Habilidades da al agente control explícito cuando sea necesario.
Más tiempo de espera siempre es más seguro. El CAPTCHA suele resolverse en 10-30 segundos, pero la latencia de red, desafíos complejos o reintentos pueden agregar tiempo. 60-70 segundos es el punto óptimo.
En lugar de:
"Navegue hasta la URL, espere al solucionador de CAPTCHA, luego envíe"
Use:
"Ve a la URL, espera aproximadamente un minuto, luego envía el formulario"
Un lenguaje natural funciona mejor con la IA y evita rechazos de seguridad.
Cada resolución de CAPTCHA cuesta créditos. Verifique su saldo en capsolver.com/dashboard regularmente para evitar interrupciones.
Montar en volumen la extensión (en lugar de incrustarla en la imagen) hace que sea fácil actualizar la extensión sin reconstruir su imagen de contenedor. Solo descargue la nueva versión y reinicie NanoClaw.
La integración NanoClaw + CapSolver trae la resolución de CAPTCHA a agentes de IA contenedorizados — dos maneras:
Ambos enfoques están verificados y funcionan. Use la extensión para flujos de trabajo simples de "navegar y enviar", y Habilidades de CapSolver cuando necesite control detallado.
Y gracias a la arquitectura de contenedores de NanoClaw, cada agente tiene su propio navegador y instancia de CapSolver aislados — sin conflictos, sin estado compartido, resolución de CAPTCHA de múltiples agentes verdaderos.
Este es el aspecto de la resolución de CAPTCHA cuando tiene un asistente de IA contenedorizado: invisible, automático, aislado y sin código.
¿Listo para comenzar? Regístrese en CapSolver y use el código de bonificación NANOCLAW para obtener un 6% adicional en su primer recarga!
No. De hecho, debe evitar mencionar CAPTCHAs o CapSolver en sus mensajes. La extensión funciona de forma invisible en segundo plano. Solo incluya un tiempo de espera en sus instrucciones (por ejemplo, "espere 70 segundos, luego envíe") para darle tiempo a la extensión de resolver cualquier CAPTCHA en la página.
Los contenedores de NanoClaw usan Chromium de Debian instalado mediante apt-get, que no está etiquetado. A diferencia de Chrome de Google 137+ (que eliminó silenciosamente el soporte para --load-extension a mediados de 2025), Chromium de Debian admite completamente la carga de extensiones. Sin necesidad de trabajos en equipo.
CapSolver admite reCAPTCHA v2 (casilla e invisible), reCAPTCHA v3, Cloudflare Turnstile, CAPTCHA de AWS WAF y más. La extensión de Chrome detecta automáticamente el tipo de CAPTCHA y lo resuelve en consecuencia.
CapSolver ofrece precios competitivos basados en el tipo de CAPTCHA y volumen. Visite capsolver.com para ver los precios actuales. Use el código de bonificación NANOCLAW para obtener un 6% adicional en su primer recarga.
NanoClaw es de código abierto (licencia MIT) y gratuito para ejecutar en su propio hardware. Necesitará una clave de API para el modelo de IA — ya sea una clave de API de Anthropic directamente, o una clave de API de OpenRouter (que le da acceso a Claude y otros modelos a través de una sola cuenta). Para la resolución de CAPTCHA, necesitará una cuenta de CapSolver con créditos.
Para la mayoría de los CAPTCHAs, 60-70 segundos es suficiente. El tiempo real de resolución suele ser de 10-30 segundos, pero agregar un margen adicional asegura la fiabilidad. Si duda, use 70 segundos — en nuestras pruebas, 60 segundos fue borderline para reCAPTCHA v2.
Cada agente de NanoClaw funciona en su propio contenedor Docker con su propia instancia de Chromium y extensión CapSolver. Esto significa que múltiples agentes pueden resolver CAPTCHAs simultáneamente sin conflictos — sin cookies compartidas, sin estado de navegador compartido, sin interferencia. Si una sesión de navegador de un agente tiene problemas, no afecta a ningún otro agente.
Sí. Necesitará Xvfb (X Virtual Framebuffer) para la visualización ya que las extensiones de Chrome requieren un contexto de visualización. Establezca DISPLAY=:99 y ejecute Xvfb :99 en segundo plano dentro del contenedor.
Descubre cómo la infraestructura de automatización de IA impulsada por LLM revoluciona el reconocimiento de CAPTCHA, mejorando la eficiencia de los procesos de negocio y reduciendo la intervención manual. Optimiza tus operaciones automatizadas con soluciones avanzadas de verificación.

Aprende a escalar la recopilación de datos para el entrenamiento de modelos de lenguaje grandes resolviendo CAPTCHAs a gran escala. Descubre estrategias automatizadas para construir conjuntos de datos de alta calidad para modelos de IA.
