Mit Stand 7. Oktober 2026 verfügt Shifter über den größten Pool an aktiven US-IPs, mehr als Oxylabs und Bright Data, und das zu einem Bruchteil der Kosten.Shifter hat jetzt den größten Pool aktiver US-IPs

Benchmarks ansehen

Wenn ein KI-Agent gegen eine Bot-Mauer läuft: Das Zugriffsproblem, für das niemand ausgelegt hat

KI-Agenten handeln für eine Person, treten aber wie ein Bot auf, und Websites wurden dafür nicht gebaut. Was an der Mauer passiert, warum eine 200 das Risiko ist, und wie man dafür baut.

Engineering · Aktualisiert am 3. November 2026 · 10 Min. Lesezeit
200 OKBot-Prüfungals Textoutcome: wallIch konnte es nicht sehenok · wall · login · payment · rate_limited
Die Wand zeigt 200 an. In der bernstein-Spur hält das Modell dies für die Seite und antwortet trotzdem.
Wissen
Auf dieser Seite
  1. Weder Crawler noch Mensch
  2. Wie die Wand von einem Tool-Aufruf aus aussieht
  3. Ein Fetch-Tool, das die Wahrheit sagt
  4. Das CAPTCHA nicht lösen
  5. Identität ist der Weg hindurch
  6. Die rechtliche Lage ist ungeklärt
  7. Für die Wand bauen
  8. Fazit
  9. Quellen und Referenzen

Die Verteidigungsmechanismen des Webs wurden um eine einfache Trennung herum gebaut: Menschen auf der einen Seite, Automatisierung auf der anderen. Ein KI-Agent ist keines von beidem. Er handelt auf Anfrage einer Person, läuft aber auf einem Server, liest in Maschinengeschwindigkeit und kommt oft von einer Cloud-IP. Für Teams, die KI-Agenten bauen, die das Web nutzen, ist das Ergebnis ein Fehlschlag, mit dem niemand geplant hat: Der Agent stößt auf eine Wand, und was als Nächstes passiert, hängt von Details ab, die die meisten Tool-Schichten ignorieren.

Dieser Leitfaden erklärt, warum Agenten zwischen die Kategorien fallen, wie die Wand von innerhalb eines Tool-Aufrufs aussieht, und wie man einen Agenten baut, der ehrlich damit umgeht.

Weder Crawler noch Mensch

Anbieter beschreiben diese Agenten mittlerweile als eigene Klasse. OpenAI sagt, ChatGPT-User werde “nicht zum automatischen Crawlen des Webs verwendet”. Google sagt, Google-Agent werde verwendet, “um auf Anfrage des Nutzers im Web zu navigieren und Aktionen auszuführen”. Anthropic hat einen Claude-User-Agent für den Fall, dass Personen Claude Fragen stellen.

Die Regeln haben nicht Schritt gehalten, und die Anbieter sind sich nicht einig:

AnbieterNutzerausgelöste Abrufe und robots.txt
OpenAI”robots.txt rules may not apply”
Google”generally ignore robots.txt rules”
AnthropicSeine Bots respektieren robots.txt-Anweisungen

RFC 9309 fügt hinzu, dass robots.txt-Regeln “keine Form der Zugriffsautorisierung” sind, also waren sie nie dazu gedacht, dies allein zu klären. Gleichzeitig wächst der Traffic: Cloudflare berichtet, dass KI-”User-Action”-Crawling 2025 um mehr als das 15-fache zugenommen hat, und der Bad Bot Report 2026 von Thales beziffert Bots auf über 53% des gesamten Traffics im Jahr 2025. Seiten haben mehr Grund denn je, Automatisierung zu filtern, und Agenten geraten in diesen Filter.

Wie die Wand von einem Tool-Aufruf aus aussieht

Was zurückkommtWas es bedeutetWas der Agent tun sollte
200 mit einer Challenge-SeiteEin Bot-Check, nicht die SeiteMelden, dass die Seite nicht gesehen werden konnte
401 oder eine Login-SeiteDer Inhalt erfordert ein KontoDen Nutzer bitten, sich anzumelden
402Die Seite verlangt ZahlungVor jeder Zahlung nachfragen
403Der Server verweigertMelden, und die Seite nicht bombardieren
429Zu viele AnfragenRetry-After respektieren, oder stoppen
404 oder 410Die Seite existiert nichtNicht erneut versuchen

Die erste Zeile ist die gefährliche. Ein 403 sieht zumindest wie ein Fehlschlag aus. Eine Challenge-Seite kommt oft als ein 200 mit einem wohlgeformten HTML-Body an, sodass ein einfaches Fetch-Tool sie dem Modell übergibt, als wäre es der Artikel.

Das ist wichtig wegen des Verhaltens von Modellen bei schlechter Tool-Ausgabe. Ein Preprint vom September 2026 zu tool-gestützten Agenten fand heraus, dass bei einer Tool-Rückgabe von status:error Unehrlichkeit nicht vorkam (0,0%), aber bei einer Rückgabe von status:ok mit einem geschwärzten, beschädigten, veralteten, fehlerhaften, leeren oder abgeschnittenen Wert erreichte sie 45,3%. Diese Studie testete interne Systeme statt Webseiten, daher ist die Anwendung auf Block-Seiten unsere Schlussfolgerung. Dennoch gilt die Lehre auch hier: Ein ehrlicher Fehler ist weitaus sicherer als ein Erfolg, der nichts Nützliches enthält. Wir haben auch behandelt, wie Challenge-Seiten das verfälschen, was KI-Tools produzieren.

Ein Fetch-Tool, das die Wahrheit sagt

Die Lösung gehört in die Tool-Schicht. Die folgende Funktion klassifiziert jede Antwort, bevor das Modell sie sieht, und gibt Seitentext nur zurück, wenn die Seite echt ist. Sie benötigt nur requests. Wir haben sie unter Python 3.9 gegen einen lokalen Testserver laufen lassen, der jeden Fall zurückgibt.

from __future__ import annotations

from dataclasses import asdict, dataclass

import requests

# Text that marks a page as a wall, not content. Extend it from your own logs.
WALL_MARKERS = ("verify you are human", "unusual traffic", "enable javascript and cookies",
                "attention required", "access denied", "captcha")
LOGIN_MARKERS = ("sign in to continue", "log in to continue")


@dataclass
class FetchResult:
    outcome: str         # ok, wall, login, payment, rate_limited, not_found, error
    status: int | None
    text: str            # only ever page content, empty unless outcome is ok
    retry_after: str | None
    note: str            # what the model should be told


NOTES = {
    "wall": "The site showed a bot check. You did not see this page. Say so, do not guess its content.",
    "login": "This page needs a login. Ask the user to sign in or to provide the content.",
    "payment": "The site asks for payment (HTTP 402). Ask the user before paying anything.",
    "rate_limited": "The site asked you to slow down. Wait, or tell the user it is unavailable now.",
    "not_found": "The page does not exist. Do not retry it.",
    "error": "The fetch failed. You did not see this page. Say so, do not guess its content.",
    "ok": "",
}


def classify(status, body):
    low = body.lower()
    if status == 402:
        return "payment"
    if status == 429:
        return "rate_limited"
    if status in (404, 410):
        return "not_found"
    if any(m in low for m in WALL_MARKERS):  # walls often arrive with a 200
        return "wall"
    if status in (401, 403):
        return "login" if status == 401 or any(m in low for m in LOGIN_MARKERS) else "wall"
    if status == 200 and any(m in low for m in LOGIN_MARKERS):
        return "login"
    return "ok" if status == 200 else "error"


def agent_fetch(url, agent_name="example-agent/1.0 (+https://example.com/agent)"):
    """A fetch tool that never hands the model a block page as if it were content."""
    try:
        r = requests.get(url, headers={"User-Agent": agent_name}, timeout=(10, 30))
    except requests.RequestException as exc:
        return FetchResult("error", None, "", None, f"{NOTES['error']} ({type(exc).__name__})")
    outcome = classify(r.status_code, r.text)
    return FetchResult(outcome, r.status_code, r.text if outcome == "ok" else "",
                       r.headers.get("Retry-After"), NOTES[outcome])

Ausgabe, als Status, Outcome, ob das Modell Seitentext erhält, und Retry-After:

/article   200  ok            content  
/challenge 200  wall          -        
/blocked   403  wall          -        
/members   200  login         -        
/priced    402  payment       -        
/busy      429  rate_limited  -        120
/gone      404  not_found     -        
/broken    503  error         -        
(no server)None error         -

Nur einer der neun Fälle gibt dem Modell überhaupt Seitentext. Die /challenge-Zeile ist diejenige, bei der ein einfaches Fetch falschliegt, da ein 200 zurückgegeben wurde. Betrachten Sie die Markerlisten als Ausgangspunkt und erweitern Sie sie anhand Ihrer eigenen Logs, denn keine Liste erfasst jede Wand. Wenn Sie Tools über einen MCP-Server bereitstellen, hat die Spezifikation dafür einen Platz: Ausführungsfehler werden mit isError: true gemeldet, und Clients “SHOULD provide tool execution errors to language models”.

Das CAPTCHA nicht lösen

Bei diesem Punkt sind sich die Anbieter ungewöhnlich einig. OpenAI beschrieb Operator als darauf trainiert, den Nutzer bei Logins, Zahlungsdetails und CAPTCHAs um Übernahme zu bitten. Anthropics Claude-in-Chrome-Dokumentation besagt, dass er bei einer Login-Seite oder einem CAPTCHA “pausiert und Sie bittet, es manuell zu erledigen”. Googles empfohlene Anweisungen zur Computernutzung besagen: “You MUST NEVER attempt to solve or bypass” eine Liste, die “CAPTCHAs (of any kind)” einschließt.

Ein CAPTCHA ist eine Seite, die nach einem Menschen fragt, also ist die richtige Reaktion, an einen zu übergeben. Das ergibt auch ein besseres Produkt: Die Person weiß, was passiert ist, und kann entscheiden.

Identität ist der Weg hindurch

Die langfristige Antwort besteht darin, dass Agenten auf überprüfbare Weise sagen, wer sie sind. Web Bot Auth ermöglicht es einem Client, seine Anfragen kryptografisch mit HTTP Message Signatures zu signieren. OpenAI signiert bereits Anfragen von seinem Cloud-Browser mit einem Signature-Agent-Header, der auf https://chatgpt.com gesetzt ist, und Google sagt, es experimentiere mit dem Protokoll. Cloudflare führte im August 2025 eine Kategorie für signierte Agenten ein und unterscheidet seit Juli 2026 zwischen direktem und vermitteltem Zugriff gegenüber verifizierten Bots. Die IETF-Arbeit ist noch ein Entwurf, also sind Änderungen zu erwarten.

Wenn Sie heute einen Agenten bauen, senden Sie einen beschreibenden User-Agent mit Kontaktdaten, veröffentlichen Sie, was Ihr Agent tut, und planen Sie für das Signieren.

Die rechtliche Lage ist ungeklärt

Der erste große Fall zeigt, wie offen das ist. Amazon verklagte Perplexity im November 2025 wegen seines agentischen Browsers und warf Verstöße gegen den US Computer Fraud and Abuse Act und dessen kalifornisches Äquivalent vor, und das Urteil besagt, der Kern des Streits sei Perplexitys Entscheidung gewesen, keinen User-Agent-String zu verwenden. Im August 2026 hob der Ninth Circuit eine einstweilige Verfügung auf und stellte fest, dass es unwahrscheinlich sei, dass Amazon zeigen könne, dass Perplexity seine Computer im Sinne dieses Gesetzes “zugegriffen” habe.

Das Gericht war vorsichtig damit, wie weit das reicht: “We do not establish a new legal regime governing agentic AI.” Es sagte auch, das Ergebnis beeinträchtige nicht Amazons Fähigkeit, den Zugriff über seine Nutzungsbedingungen zu regeln. Dies war also keine Lizenz für Agenten, die Wünsche einer Seite zu ignorieren. Dies sind allgemeine Informationen, keine Rechtsberatung, und der Fall ist an das Bezirksgericht zurückverwiesen worden.

Für die Wand bauen

  • Davon ausgehen, dass Wände normal sind. Gestalten Sie den Plan des Agenten rund um Seiten, die er nicht erreichen kann, mit Fallbacks wie einer anderen Quelle oder dem Nachfragen beim Nutzer.
  • Klassifizieren, bevor das Modell etwas sieht. Verwenden Sie ein Tool wie das obige, und protokollieren Sie die Ergebnisse, damit Sie sehen können, welche Seiten fehlschlagen.
  • Offizielle Wege zuerst anbieten. Wo eine Seite eine API oder ein Datenprodukt hat, nutzen Sie es. Es ist zuverlässiger als eine Browser-Sitzung.
  • Sitzungen konsistent halten. Mehrstufige Aufgaben brechen, wenn sich die IP mitten im Vorgang ändert. Unser Leitfaden zu Proxys für KI-Agenten, die das Web durchsuchen behandelt Rotation und Sticky Sessions.
  • Wissen, wofür ein Proxy da ist. Residential Proxies helfen einem Agenten, öffentliche Seiten so zu sehen, wie lokale Besucher sie sehen, im richtigen Land und von einer konsistenten Adresse aus. Sie ändern nicht, was eine Seite erlaubt, und sind kein Weg an einer Seite vorbei, die Nein gesagt hat. Wenn eine Seite einen Login, eine Zahlung oder eine Person möchte, respektieren Sie das.

Fazit

Agenten erreichten das Web, bevor das Web eine Kategorie für sie hatte, und vorerst ist die Wand Teil der Aufgabe. Behandeln Sie sie als normales Ergebnis: klassifizieren Sie sie in der Tool-Schicht, sagen Sie dem Modell und dem Nutzer die Wahrheit, geben Sie CAPTCHAs an Menschen zurück, und identifizieren Sie Ihren Agenten. Ein Agent, der sagt “Ich konnte diese Seite nicht sehen”, ist weit mehr wert als einer, der rät.

Quellen und Referenzen

Häufig gestellte Fragen

Warum werden KI-Agenten von Websites blockiert?

Die meisten Bot-Abwehrsysteme teilen den Traffic in Menschen und Automatisierung ein. Ein Agent handelt im Auftrag einer Person, läuft aber auf einem Server, oft von Cloud-IPs und mit Maschinengeschwindigkeit, sodass er tendenziell als Automatisierung eingestuft wird, selbst wenn ein echter Nutzer die Seite angefordert hat.

Sollte ein KI-Agent CAPTCHAs lösen?

Nein. OpenAI, Anthropic und Google dokumentieren allesamt, dass Agenten CAPTCHAs an die Person zurückgeben oder gar nicht erst versuchen, sie zu lösen. Ein CAPTCHA bedeutet, dass eine Website eine menschliche Entscheidung wünscht, also sollte der Agent innehalten und nachfragen.

Was sollte ein Agent tun, wenn eine Seite blockiert ist?

Es melden. Das Abruf-Tool sollte ein klares Ergebnis liefern, etwa Sperre, Login oder Rate Limited, ohne Seiteninhalt, damit das Modell dem Nutzer mitteilen kann, dass es die Seite nicht einsehen konnte, statt zu raten, was darauf stand.

Gilt robots.txt für KI-Agenten?

Die Anbieter sehen das unterschiedlich. OpenAI sagt, dass robots.txt-Regeln bei nutzerinitiierten Aktionen möglicherweise nicht gelten, Google erklärt, dass seine nutzerausgelösten Fetcher sie generell ignorieren, und Anthropic gibt an, dass seine Bots sie respektieren. RFC 9309 selbst besagt, dass die Regeln keine Form der Zugriffsautorisierung darstellen, also prüfen Sie Ihre eigene Richtlinie und die Nutzungsbedingungen jeder Website.

Bereit, loszulegen?

Testen Sie Shifters Residential-Proxys, 205M+ IPs, 195+ Länder, ab 0,75 $/GB.

Jetzt starten