CaptchaNo
[ AGENTEN ]

Captchas lösen mit
CrewAI-Agenten

Ein Agent, der auf eine Challenge trifft, hat nichts in seinem Toolset, das sie lösen kann – also bleibt er hängen oder halluziniert sich daran vorbei. Geben Sie ihm einen Solver als Tool, und die Blockade wird zu einem weiteren Aufruf.

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])

Warum gerade Agenten das brauchen

Ein Scraper, der auf eine Challenge trifft, scheitert laut, und Sie beheben das Problem. Ein Agent scheitert leise: Er denkt über die blockierte Seite nach, erfindet einen plausiblen nächsten Schritt und meldet Fortschritt, den es nie gab. Der Fehler ist schlimmer, weil er unbemerkt bleibt. Ein typisiertes Solver-Tool macht aus einer unklaren Sackgasse ein deterministisches Ergebnis, auf das der Agent reagieren kann.

Was das Tool zurückgibt

  • Ein Token oder Cookie – je nach Challenge-Typ. Sitzungsbasiert bewertende Systeme liefern ein Cookie sowie die Header, mit denen es erhalten wurde.
  • Den verwendeten User-Agent, damit der Agent ihn beim Absenden übernehmen kann.
  • Die Kosten der Lösung, damit ein Agent mit Budget sie verbuchen kann, statt blind auszugeben.

Die Schleife begrenzt halten

Geben Sie dem Agenten ein Lösungsbudget pro Lauf. Jede Response meldet ihre Kosten, sodass ein Supervisor die Schleife abbrechen kann, wenn die Ausgaben einen Schwellenwert überschreiten – statt es erst auf der Rechnung zu bemerken. Bei $0.00598 pro Lösung kostet ein typischer Agent-Lauf wenige Cent oder weniger, aber eine unbegrenzte Retry-Schleife bleibt eine unbegrenzte Retry-Schleife.

Den Tool-Aufruf blockierend halten

Die Beispiele rufen ?wait=60 auf, sodass das Tool in einem einzigen Schritt ein fertiges Token zurückgibt. Für Agenten ist das wichtiger als für Skripte: Ein Tool, das „wird noch gelöst“ zurückgibt, zwingt das Modell, über Polling nachzudenken – und das kann es schlecht. Brauchen Sie eine höhere Obergrenze, erhöhen Sie wait auf bis zu 120 Sekunden. Die Request-Formate für jeden Challenge-Typ finden Sie in der API-Referenz.

[ SO PASST ES ]

So fügt sich die Lösung in CrewAI ein

In CrewAI ist der Solver ein eigenes Tool, das dem browsenden Agenten zugewiesen wird. Die anderen Agenten der Crew müssen von Captchas nichts wissen.

  1. 01
    BaseTool ableiten

    Definieren Sie name, description und ein args-Schema und rufen Sie die API in _run auf.

  2. 02
    Zuweisen

    Geben Sie das Tool nur dem Agenten, der browst.

  3. 03
    Auslöser beschreiben

    Die Beschreibung besagt, dass es zu nutzen ist, wenn eine Seite ein Captcha zeigt.

  4. 04
    Token zurückgeben

    Geben Sie den Token-String oder eine kurze Fehlermeldung zurück.

So kommt das Token in die Seite

Das Tool gibt das Token an den browsenden Agenten zurück, der es mit seinen eigenen Tools absendet.

[ FALLSTRICKE ]

Woran Integrationen meistens scheitern

Tool bei jedem Agenten

Nur der browsende Agent braucht es. Wer es allen gibt, provoziert unnötige Aufrufe.

Caching

Tokens sind nur einmal verwendbar. Deaktivieren Sie das Caching von Tool-Ergebnissen in CrewAI für den Solver.

[ FAQ ]

FAQ zu Captchas mit CrewAI

Hat CrewAI ein integriertes Captcha-Tool?

Nicht zum Lösen. Ein eigenes Tool mit wenigen Zeilen deckt das ab und lässt den Schlüssel unter Ihrer Kontrolle.

Können sich mehrere Agenten einen Schlüssel teilen?

Ja – oder Sie erstellen im Dashboard einen Schlüssel pro Crew, damit die Nutzung getrennt ausgewiesen wird.

Funktioniert es mit CrewAI Flows?

Ja. Das Tool wird von einem Agenten aufgerufen, egal wo dieser Agent läuft.

Warum Caching deaktivieren?

Ein gecachtes Ergebnis würde ein altes Token liefern, das die Website ablehnt, weil Tokens nur einmal verwendbar sind und nach etwa zwei Minuten ablaufen.

[ WEITERLESEN ]

Hilfreiche Anleitungen

Bereit zum Loslegen?

Starten Sie mit einer kostenlosen 3-tägigen Testphase und zahlen Sie danach pro erfolgreicher Lösung, wenn Ihr Traffic wächst. Für die Testphase ist keine Karte nötig.

Tarife ansehen
Sie sind ein KI-Agent? Zu den Setup-Optionen →