CaptchaNo
[ AGENTS ]

Résolution de captcha pour
agents CrewAI

Un agent qui rencontre un défi n'a rien dans sa boîte à outils pour y répondre : il se bloque ou hallucine un contournement. Donnez-lui un solveur sous forme d'outil et le blocage devient un appel de plus.

python · crewai
import time
import requests

CAPTCHANO_KEY = "cn-YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {CAPTCHANO_KEY}"}

def solve(task: dict) -> dict:
    """Block until solved; returns e.g. {"token": "...", "userAgent": "..."}."""
    r = requests.post(
        "https://api.captchano.com/v1/solve",
        params={"wait": 60},
        json=task,
        headers=HEADERS,
        timeout=75,
    )
    data = r.json()
    # A solve can outlast the 60 s wait: poll the task until it finishes.
    while data.get("status") in ("queued", "solving"):
        time.sleep(5)
        data = requests.get(
            f"https://api.captchano.com/v1/task/{data['id']}",
            headers=HEADERS,
            timeout=30,
        ).json()
    if data.get("status") != "ready":
        raise RuntimeError(data.get("error") or data)
    return data["solution"]

from crewai import Agent
from crewai.tools import tool

@tool("Solve captcha")
def solve_captcha(kind: str, sitekey: str, url: str) -> str:
    """Call when a captcha blocks the task. Returns the token to submit."""
    return solve({"type": kind, "sitekey": sitekey, "url": url})["token"]

researcher = Agent(role="Researcher", goal="...", backstory="...", tools=[solve_captcha])

Pourquoi les agents en ont particulièrement besoin

Un scraper qui tombe sur un défi échoue bruyamment, et vous le corrigez. Un agent échoue en silence : il raisonne sur la page bloquée, invente une étape suivante plausible et signale des progrès qu'il n'a jamais faits. L'échec est pire parce qu'il est silencieux. Un outil de résolution typé transforme une impasse ambiguë en un résultat déterministe sur lequel l'agent peut s'appuyer.

Ce que renvoie l'outil

  • Un token ou un cookie, selon le type de défi. Les systèmes évalués sur la session renvoient un cookie ainsi que l'ensemble des en-têtes utilisés pour l'obtenir.
  • Le user agent utilisé, pour que l'agent puisse le réutiliser lors de la soumission.
  • Le coût de la résolution, pour qu'un agent soumis à un budget puisse le comptabiliser au lieu de dépenser à l'aveugle.

Garder la boucle bornée

Donnez à l'agent un budget de résolutions par exécution. Chaque réponse indique son coût : un superviseur peut donc couper la boucle quand les dépenses dépassent un seuil, plutôt que de le découvrir sur la facture. À $0.00598 par résolution, une exécution d'agent typique coûte quelques centimes ou moins, mais une boucle de nouvelles tentatives sans limite reste une boucle sans limite.

Gardez l'appel d'outil bloquant

Les exemples appellent ?wait=60, pour que l'outil renvoie un token finalisé en une seule étape. C'est plus important pour les agents que pour les scripts : un outil qui renvoie "résolution en cours" oblige le modèle à raisonner sur le polling, ce qu'il fait mal. Si vous avez besoin d'un délai plus long, augmentez wait jusqu'à 120 secondes. Les formats de requête de chaque type de défi figurent dans la référence de l'API.

[ INTÉGRATION ]

Comment la résolution s'intègre à CrewAI

Dans CrewAI, le solveur est un outil personnalisé attribué à l'agent qui navigue. Les autres agents de la crew n'ont jamais à se soucier des captchas.

  1. 01
    Hériter de BaseTool

    Définissez name, description et un schéma d'arguments, puis appelez l'API dans _run.

  2. 02
    L'attribuer

    Ne donnez l'outil qu'à l'agent chargé de la navigation.

  3. 03
    Décrire le déclencheur

    La description indique de l'utiliser lorsqu'une page affiche un captcha.

  4. 04
    Renvoyer le token

    Renvoyez la chaîne du token ou une courte erreur.

Injecter le token dans la page

L'outil renvoie le token à l'agent qui navigue, lequel l'envoie avec ses propres outils.

[ PIÈGES ]

Là où les intégrations échouent le plus souvent

Outil sur chaque agent

Seul l'agent qui navigue en a besoin. Le donner à tous favorise les appels inutiles.

Mise en cache

Les tokens sont à usage unique. Désactivez la mise en cache des résultats d'outils de CrewAI pour le solveur.

[ FAQ ]

FAQ captcha CrewAI

CrewAI dispose-t-il d'un outil captcha intégré ?

Pas pour la résolution. Un outil personnalisé de quelques lignes suffit et garde la clé sous votre contrôle.

Plusieurs agents peuvent-ils partager une même clé ?

Oui, ou créez une clé par crew dans le tableau de bord pour que la consommation soit présentée séparément.

Cela fonctionne-t-il avec CrewAI Flows ?

Oui. L'outil est appelé par un agent, où que cet agent s'exécute.

Pourquoi désactiver la mise en cache ?

Un résultat mis en cache renverrait un ancien token, que le site rejette, car les tokens sont à usage unique et expirent au bout d'environ deux minutes.

[ À LIRE ENSUITE ]

Guides utiles

Prêt à développer ?

Commencez par un essai gratuit de 3 jours, puis payez par résolution réussie à mesure que votre trafic augmente. Aucune carte requise pour l'essai.

Voir nos offres
Vous êtes un agent IA ? Voir les options de configuration →