Cómo resolver CAPTCHA en Agentes de AutoGen

Aloísio Vítor
Image Processing Expert
29-Jul-2026
El marco AutoGen de Microsoft permite agentes de inteligencia artificial conversacionales que colaboran mediante diálogos de múltiples turnos para completar tareas complejas. Cuando los agentes AutoGen realizan operaciones basadas en web - recuperación de datos, envío de formularios o investigación automatizada - los desafíos CAPTCHA interrumpen el flujo de la conversación y bloquean la finalización de la tarea. El paquete capsolver-agent de CapSolver proporciona esquemas de herramientas y un ejecutor asíncrono que se integran directamente en el mecanismo de llamada a funciones de AutoGen, otorgando a sus agentes la capacidad de resolver reCAPTCHA, Cloudflare Turnstile y otros desafíos de verificación durante la conversación.
TL;DR
- Los agentes conversacionales de AutoGen se detienen cuando las tareas web encuentran desafíos de verificación CAPTCHA
- CapSolver se integra a través de la API
register_functionde AutoGen como una herramienta llamable - El ejecutor
capsolver-agentresuelve de forma asíncrona y devuelve resultados estructurados - Soporta reCAPTCHA v2/v3 (incluyendo Enterprise) y Cloudflare Turnstile
- Funciona con los patrones de chat de dos agentes y chat grupal de AutoGen
¿Por qué los agentes de AutoGen necesitan resolver CAPTCHA?
La arquitectura multi-agente de AutoGen utiliza patrones conversacionales donde los agentes colaboran mediante mensajes. Una configuración típica incluye un AssistantAgent (la IA) y un UserProxyAgent (que ejecuta código y herramientas). Cuando el asistente determina que una tarea web requiere resolver CAPTCHA, necesita una función registrada para llamar - de lo contrario, el bucle de conversación se detiene sin manera de continuar.
El problema se agrava en los escenarios de chat grupal de AutoGen. Múltiples agentes pueden necesitar acceso web simultáneamente: un agente investigando datos de una empresa, otro verificando información de contacto, un tercero revisando documentos regulatorios. Cada uno puede encontrar CAPTCHAs en sitios diferentes. Sin un mecanismo de resolución, toda la conversación grupal se detiene en el primer muro de verificación.
Según los datos de producción de CapSolver, aproximadamente el 30% de las tareas web de los agentes encuentran desafíos de verificación. Para un flujo de trabajo de AutoGen que ejecuta 10 pasos dependientes de web, eso significa 3 interrupciones potenciales por conversación - cada una requiriendo intervención humana o una herramienta de resolución automatizada.
Lo que necesita antes de comenzar
Instale los paquetes requeridos:
bash
# Motor de CapSolver (dependencia requerida)
pip install git+https://github.com/capsolver-ai/capsolver-core.git
# Herramientas de agente de CapSolver
pip install git+https://github.com/capsolver-ai/capsolver-agent.git
# Marco AutoGen
pip install autogen-agentchat
Establezca variables de entorno:
bash
export CAPSOLVER_API_KEY="su-clave-de-api-de-capsolver"
export OPENAI_API_KEY="su-clave-de-api-de-openai"
Necesita una cuenta de CapSolver con créditos de API cargados.
Paso 1 — Registrar la resolución de CAPTCHA como una función de AutoGen
Qué hacer
AutoGen utiliza register_function para hacer disponibles las herramientas a los agentes. Cree una función para resolver CAPTCHA y regístrela:
python
import asyncio
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json
from capsolver_agent.schema import create_executor
# Crear el ejecutor de CapSolver
executor = create_executor(api_key="SU_CLAVE_DE_API_DE_CAPSOLVER")
def solve_captcha(
captcha_type: str,
website_url: str,
website_key: str,
page_action: str = "",
min_score: float = 0.7
) -> str:
"""Resolver un desafío CAPTCHA y devolver el token de verificación.
Args:
captcha_type: El tipo de CAPTCHA - 'reCaptchaV2', 'reCaptchaV3' o 'cloudflare'
website_url: La URL completa de la página con el CAPTCHA
website_key: La clave del sitio (atributo data-sitekey)
page_action: Nombre de la acción para reCAPTCHA v3 (opcional)
min_score: Puntuación mínima para reCAPTCHA v3 (predeterminado 0.7)
Returns:
El token de CAPTCHA resuelto o un mensaje de error
"""
params = {
"captcha_type": captcha_type,
"website_url": website_url,
"website_key": website_key
}
if page_action and captcha_type == "reCaptchaV3":
params["page_action"] = page_action
params["min_score"] = min_score
result = asyncio.run(executor.execute("solve_captcha", params))
if result["success"]:
token = result["solution"]["token"]
return f"CAPTCHA resuelto correctamente. Token (primeros 80 caracteres): {token[:80]}..."
return f"Falló la resolución de CAPTCHA: {result['error']}"
Por qué esto importa
El registro de funciones de AutoGen es el método estándar para otorgar capacidades ejecutables a los agentes. El agente asistente ve la descripción de la función, comprende sus parámetros a través del docstring y la llama cuando la conversación requiere resolver CAPTCHA. Esto sigue exactamente el patrón de diseño de AutoGen.
Paso 2 — Configurar el chat de dos agentes de AutoGen
Qué hacer
Cree un par de AssistantAgent y UserProxyAgent con capacidad de resolución de CAPTCHA:
python
# Configuración de LLM
llm_config = {
"config_list": [{"model": "gpt-4o", "api_key": "SU_CLAVE_DE_API_DE_OPENAI"}],
"temperature": 0
}
# Agente asistente (la IA que decide qué hacer)
assistant = AssistantAgent(
name="web_assistant",
system_message="""Eres un asistente de investigación web con capacidad de resolver CAPTCHA.
Cuando una tarea requiera acceder a una página protegida por CAPTCHA, usa la función solve_captcha
con los parámetros adecuados:
- captcha_type: 'reCaptchaV2', 'reCaptchaV3' o 'cloudflare'
- website_url: la URL completa de la página
- website_key: la clave del sitio de la página
Después de resolverlo, devuelve el token al usuario para el envío del formulario.""",
llm_config=llm_config
)
# Agente proxy de usuario (ejecuta funciones en nombre del asistente)
user_proxy = UserProxyAgent(
name="user_proxy",
human_input_mode="NEVER",
max_consecutive_auto_reply=5,
code_execution_config={"work_dir": "workspace", "use_docker": False}
)
# Registrar la función de resolución de CAPTCHA
from autogen import register_function
register_function(
solve_captcha,
caller=assistant, # El asistente decide cuándo llamar
executor=user_proxy, # El agente proxy ejecuta la función
name="solve_captcha",
description="Resolver un desafío CAPTCHA (reCAPTCHA v2/v3 o Cloudflare Turnstile) y devolver el token de verificación"
)
Por qué esto importa
El patrón de dos agentes es la arquitectura central de AutoGen. El asistente razona sobre la tarea y decide llamar a solve_captcha cuando sea necesario. El agente proxy ejecuta la llamada a la función y devuelve el resultado al asistente, quien luego continúa la conversación con el token disponible.
Paso 3 — Ejecutar una conversación con resolución de CAPTCHA
Qué hacer
Inicie una conversación que requiera resolver CAPTCHA:
python
# Iniciar la conversación
user_proxy.initiate_chat(
assistant,
message="""Necesito acceder a una página protegida por reCAPTCHA v2.
URL: https://example.com/data-portal
Clave del sitio: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI
Por favor, resuelva el CAPTCHA y me proporcione el token."""
)
Flujo de conversación:
- El agente proxy envía el mensaje de tarea
- El asistente reconoce que se necesita resolver CAPTCHA
- El asistente llama a
solve_captchacon los parámetros - El agente proxy ejecuta la función (CapSolver lo resuelve)
- El resultado regresa al asistente
- El asistente presenta el token para completar la tarea
Paso 4 — Usar en chat grupal de AutoGen
Qué hacer
Para flujos de trabajo complejos con múltiples agentes, registre la resolución de CAPTCHA en un chat grupal:
python
from autogen import GroupChat, GroupChatManager
# Agentes especializados
researcher = AssistantAgent(
name="researcher",
system_message="Investiga sitios web y recopila datos. Usa solve_captcha cuando encuentre desafíos de verificación.",
llm_config=llm_config
)
analyst = AssistantAgent(
name="analyst",
system_message="Analiza los datos recopilados y produce insights.",
llm_config=llm_config
)
executor_agent = UserProxyAgent(
name="executor",
human_input_mode="NEVER",
code_execution_config={"work_dir": "workspace", "use_docker": False}
)
# Registrar resolución de CAPTCHA para el investigador
register_function(
solve_captcha,
caller=researcher,
executor=executor_agent,
name="solve_captcha",
description="Resolver desafíos de CAPTCHA en sitios web"
)
# Crear chat grupal
group_chat = GroupChat(
agents=[researcher, analyst, executor_agent],
messages=[],
max_round=10
)
manager = GroupChatManager(groupchat=group_chat, llm_config=llm_config)
# Iniciar tarea de investigación grupal
executor_agent.initiate_chat(
manager,
message="Investigue los datos en https://example.com/reports. Está protegido por reCAPTCHA v2 (clave: 6Le...). Resuelva el CAPTCHA, recopile los datos y luego analícelos."
)
| Tipo de CAPTCHA | Parámetro de tipo de tarea | Tiempo promedio de resolución | Sitios comunes |
|---|---|---|---|
| reCAPTCHA v2 | reCaptchaV2 |
5-12 segundos | Páginas de inicio de sesión, formularios, portales |
| reCAPTCHA v3 | reCaptchaV3 |
3-8 segundos | APIs, protección invisible |
| Cloudflare Turnstile | cloudflare |
2-5 segundos | SaaS modernos, sitios de Shopify |
La guía de reCAPTCHA de CapSolver y la documentación de Cloudflare Turnstile proporcionan detalles adicionales sobre los parámetros para cada tipo de CAPTCHA.
Obtenga su código de bonificación: Use el código WEBS en el Panel de CapSolver para obtener un 5% adicional de bonificación en cada recarga. Perfecto para equipos que ejecutan flujos de trabajo multiagente de AutoGen.
Paso 5 — Patrones de producción y manejo de errores
Qué hacer
Agregue lógica de reintentos y verificación de balance para despliegues de producción:
python
def solve_captcha_with_retry(
captcha_type: str,
website_url: str,
website_key: str,
max_retries: int = 3
) -> str:
"""Resolver CAPTCHA con reintentos automáticos en caso de fallo."""
for attempt in range(max_retries):
params = {
"captcha_type": captcha_type,
"website_url": website_url,
"website_key": website_key
}
result = asyncio.run(executor.execute("solve_captcha", params))
if result["success"]:
return f"Resuelto (intentos {attempt+1}). Token: {result['solution']['token'][:80]}..."
if attempt < max_retries - 1:
import time
time.sleep(3)
return f"Fallo tras {max_retries} intentos: {result.get('error', 'Desconocido')}"
def check_captcha_balance() -> str:
"""Verificar el balance de créditos para resolver CAPTCHA."""
result = asyncio.run(executor.execute("get_balance", {}))
if result["success"]:
return f"Balance de CapSolver: ${result['balance']:.2f}"
return "No se pudo recuperar el balance"
Registre ambas funciones para una capacidad completa:
python
register_function(solve_captcha_with_retry, caller=assistant, executor=user_proxy,
name="solve_captcha", description="Resolver CAPTCHA con lógica de reintentos")
register_function(check_captcha_balance, caller=assistant, executor=user_proxy,
name="check_balance", description="Verificar el balance de créditos para resolver CAPTCHA")
La documentación de scraping web de CapSolver cubre patrones adicionales para recolección de datos de alto volumen aplicables a agentes de investigación de AutoGen. Para automatización basada en navegador, la extensión de CapSolver ayuda a identificar parámetros de CAPTCHA durante el desarrollo.
Conclusión
Integrar la resolución de CAPTCHA en agentes de AutoGen requiere registrar una función de resolución mediante register_function, conectarla al ejecutor de CapSolver y permitir que el agente asistente decida cuándo invocarla durante las conversaciones. CapSolver proporciona la infraestructura de resolución impulsada por IA que elimina los desafíos de verificación en 3-12 segundos, manteniendo las conversaciones de AutoGen sin intervención humana.
Comience con el patrón de dos agentes para tareas simples, luego expanda a chat grupal para flujos de trabajo complejos multiagente. El enfoque de registro de funciones significa que los agentes deciden naturalmente cuándo resolver basándose en el contexto de la conversación - sin necesidad de detección de CAPTCHA codificada.
Preguntas frecuentes
¿Funciona CapSolver con la ejecución asíncrona de AutoGen?
Sí. Aunque register_function de AutoGen utiliza firmas de funciones sincrónicas, puede envolver al ejecutor asíncrono de CapSolver con asyncio.run() dentro de la función registrada. Esto proporciona los beneficios de resolución asíncrona (agrupación de conexiones, solicitudes concurrentes) dentro de la interfaz de llamada a funciones sincrónicas de AutoGen.
¿Pueden múltiples agentes de AutoGen compartir el mismo solucionador de CAPTCHA?
Sí. Registre la misma función de resolución con múltiples agentes llamadores en un chat grupal. Cada agente puede invocar independientemente la resolución de CAPTCHA cuando su tarea específica lo requiera. La API de CapSolver maneja solicitudes concurrentes sin conflictos.
¿Cómo decide AutoGen cuándo llamar a la función de resolución de CAPTCHA?
El agente asistente de AutoGen utiliza la descripción de la función y el contexto de la conversación para decidir. Cuando la tarea menciona acceder a un recurso protegido por CAPTCHA, el asistente reconoce la necesidad y genera una llamada a la función con parámetros adecuados. También puede incluir instrucciones explícitas en el mensaje del sistema.
¿Qué ocurre si la resolución de CAPTCHA falla durante la conversación?
La función devuelve un mensaje de error al agente asistente. El asistente puede intentar nuevamente con diferentes parámetros, pedir aclaración o informar el fallo. El bucle de conversación de AutoGen continúa sin importar - el fallo se maneja como parte del diálogo en lugar de hacer caer el sistema.
¿Cuánto cuesta resolver CAPTCHA por conversación de AutoGen?
Una conversación de AutoGen que encuentre 1-3 CAPTCHAs cuesta aproximadamente 0.002-0.009 en tarifas de resolución. reCAPTCHA v2 cuesta alrededor de 2-3 por 1,000 resoluciones, y Cloudflare Turnstile cuesta $1-2 por 1,000. Para la mayoría de los flujos de trabajo, el costo de resolución de CAPTCHA es despreciable en comparación con los costos de la API de LLM.
Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.
Máse

Cómo resolver CAPTCHA con TinyFish AgentQL – Guía paso a paso usando CapSolver
Aprende a integrar CapSolver con TinyFish AgentQL para resolver automáticamente CAPTCHAs como reCAPTCHA y Cloudflare Turnstile. Tutorial paso a paso con ejemplos de SDK en Python y JavaScript para automatización web impulsada por IA.

Anh Tuan
05-Aug-2026

Cómo resolver CAPTCHA en LlamaIndex Agents
Integrar la resolución de CAPTCHA en agentes de LlamaIndex usando FunctionTool y CapSolver para pipelines de ingesta de datos web.

Aloísio Vítor
31-Jul-2026

Cómo resolver CAPTCHA con MCP: CapSolver Modelo Contexto Protocolo Servicio
Configurar el servicio CapSolver MCP para la resolución de CAPTCHA sin código en Claude Desktop, Cursor y cualquier cliente MCP.

Aloísio Vítor
31-Jul-2026

Cómo resolver reCAPTCHA v3 en el SDK de Agentes de OpenAI
Generar tokens de reCAPTCHA v3 de alta puntuación en el SDK de Agents de OpenAI usando la herramienta function_tool de CapSolver.

Aloísio Vítor
30-Jul-2026

Cómo resolver Cloudflare Turnstile en Agentes de CrewAI
Integrar la resolución de Cloudflare Turnstile en los flujos de trabajo multiagente de CrewAI usando CapSolver.

Aloísio Vítor
30-Jul-2026

Cómo resolver CAPTCHA en Agentes de AutoGen
Guía completa para integrar la resolución de CAPTCHA en conversaciones multi-agente de Microsoft AutoGen usando CapSolver con register_function y patrones de chat grupal.

Aloísio Vítor
29-Jul-2026

