Em 7 de outubro de 2026, a Shifter tem o maior pool de IPs dos EUA ativos, mais do que a Oxylabs e a Bright Data, por uma fração do custo.A Shifter agora tem o maior pool de IPs ativos dos EUA

Ver benchmarks

Quando um Agente de IA Esbarra em um Bloqueio Antibot: O Problema de Acesso Para o Qual Ninguém Projetou

Agentes de IA agem em nome de uma pessoa, mas chegam como um bot, e os sites não foram construídos para isso. O que acontece no bloqueio, por que um 200 é o risco, e como projetar para essa realidade.

Engenharia · Atualizado em 3 de novembro de 2026 · 10 min de leitura
200 OKverificação de botcomo textooutcome: wallEu não conseguia ver issook · wall · login · payment · rate_limited
O muro diz 200. Na faixa âmbar, o modelo interpreta isso como a página e responde mesmo assim.
Conhecimento
Nesta página
  1. Nem crawler, nem pessoa
  2. Como é a parede vista de uma chamada de ferramenta
  3. Uma ferramenta de busca que diz a verdade
  4. Não resolva o CAPTCHA
  5. A identidade é o caminho
  6. O panorama legal ainda não está definido
  7. Construindo para a parede
  8. Conclusão
  9. Fontes e referências

As defesas da web foram construídas em torno de uma divisão simples: pessoas de um lado, automação do outro. Um agente de IA não é nenhum dos dois. Ele age a pedido de uma pessoa, mas roda em um servidor, lê em velocidade de máquina e muitas vezes parte de um IP de nuvem. Para equipes que constroem agentes de IA que usam a web, o resultado é uma falha que ninguém planejou: o agente esbarra em uma parede, e o que acontece depois depende de detalhes que a maioria das camadas de ferramentas ignora.

Este guia explica por que os agentes caem entre as categorias, como é essa parede vista de dentro de uma chamada de ferramenta, e como construir um agente que lide com isso de forma honesta.

Nem crawler, nem pessoa

Os fornecedores agora descrevem esses agentes como uma classe separada. A OpenAI diz que o ChatGPT-User “não é usado para rastrear a web de forma automática”. O Google diz que o Google-Agent é usado “para navegar na web e realizar ações a pedido do usuário”. A Anthropic tem um agente Claude-User para quando pessoas fazem perguntas ao Claude.

As regras ainda não acompanharam isso, e os fornecedores não concordam entre si:

FornecedorBuscas acionadas pelo usuário e robots.txt
OpenAI”as regras do robots.txt podem não se aplicar”
Google”geralmente ignoram as regras do robots.txt”
AnthropicSeus bots respeitam as diretivas do robots.txt

O RFC 9309 acrescenta que as regras do robots.txt “não são uma forma de autorização de acesso”, então elas nunca resolveriam isso sozinhas. Enquanto isso, o tráfego cresce: a Cloudflare relata que o rastreamento de “ação do usuário” por IA cresceu mais de 15 vezes em 2025, e o Bad Bot Report de 2026 da Thales coloca os bots em mais de 53% de todo o tráfego em 2025. Os sites têm mais motivos do que nunca para filtrar automação, e os agentes acabam presos nesse filtro.

Como é a parede vista de uma chamada de ferramenta

O que voltaO que significaO que o agente deve fazer
200 com uma página de desafioUma verificação de bot, não a páginaInformar que não conseguiu ver a página
401 ou uma página de loginO conteúdo precisa de uma contaPedir ao usuário para fazer login
402O site quer pagamentoPerguntar antes de pagar qualquer coisa
403O servidor recusaInformar isso, e não insistir na página
429Muitas requisiçõesRespeitar o Retry-After, ou parar
404 ou 410A página não existeNão tentar novamente

A primeira linha é a perigosa. Um 403 pelo menos parece uma falha. Uma página de desafio muitas vezes chega como um 200 com um corpo HTML bem formado, então uma ferramenta de busca simples a entrega ao modelo como se fosse o artigo.

Isso importa por causa de como os modelos se comportam com uma saída de ferramenta ruim. Um preprint de setembro de 2026 sobre agentes aumentados por ferramentas descobriu que, quando uma ferramenta retornava status:error, a desonestidade estava ausente (0,0%), mas quando retornava status:ok com um valor redigido, corrompido, desatualizado, malformado, vazio ou truncado, ela chegava a 45,3%. Esse estudo testou sistemas internos em vez de páginas web, então aplicá-lo a páginas de bloqueio é uma inferência nossa. Ainda assim, a lição se mantém: um erro honesto é muito mais seguro do que um sucesso que não contém nada útil. Também já abordamos como páginas de desafio contaminam o que as ferramentas de IA produzem.

Uma ferramenta de busca que diz a verdade

A correção pertence à camada de ferramentas. A função abaixo classifica cada resposta antes que o modelo a veja, e retorna o texto da página somente quando a página é real. Ela precisa apenas de requests. Nós a executamos em Python 3.9 contra um servidor de teste local que retorna cada caso.

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

Saída, como status, resultado, se o modelo recebe o texto da página, e 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         -

Apenas um dos nove casos dá ao modelo algum texto de página. A linha /challenge é aquela em que uma busca simples erra, já que retornou um 200. Trate as listas de marcadores como ponto de partida e amplie-as a partir dos seus próprios logs, porque nenhuma lista pega todas as paredes. Se você fornece ferramentas por meio de um servidor MCP, a especificação tem um lugar para isso: erros de execução são informados com isError: true, e os clientes “SHOULD provide tool execution errors to language models”.

Não resolva o CAPTCHA

Os fornecedores estão incomumente alinhados neste ponto. A OpenAI descreveu o Operator como treinado para pedir que o usuário assuma o controle em logins, dados de pagamento e CAPTCHAs. A documentação do Claude in Chrome da Anthropic diz que, numa página de login ou CAPTCHA, ele “pauses and asks you to handle it manually”. As instruções recomendadas do Google para uso de computador dizem “You MUST NEVER attempt to solve or bypass” uma lista que inclui “CAPTCHAs (of any kind)”.

Um CAPTCHA é um site pedindo por um humano, então a resposta certa é repassar a tarefa a um. Isso também resulta em um produto melhor: a pessoa sabe o que aconteceu e pode decidir.

A identidade é o caminho

A resposta de longo prazo é que os agentes digam quem são de uma forma que os sites possam verificar. O Web Bot Auth permite que um cliente assine criptograficamente suas requisições com HTTP Message Signatures. A OpenAI já assina requisições do seu navegador em nuvem, com um cabeçalho Signature-Agent definido como https://chatgpt.com, e o Google diz que está experimentando o protocolo. A Cloudflare introduziu uma categoria de agentes assinados em agosto de 2025, e desde julho de 2026 rastreia a diferença entre bots verificados como acesso direto versus intermediário. O trabalho do IETF ainda é um rascunho, então espere mudanças.

Se você está construindo um agente hoje, envie um User-Agent descritivo com detalhes de contato, publique o que seu agente faz, e planeje-se para a assinatura.

O primeiro grande caso mostra o quanto isso está em aberto. A Amazon processou a Perplexity em novembro de 2025 por causa de seu navegador agêntico, alegando violações do Computer Fraud and Abuse Act dos EUA e do seu equivalente da Califórnia, e o parecer diz que o cerne da disputa foi a decisão da Perplexity de não usar uma string de user-agent. Em agosto de 2026, o Nono Circuito anulou uma liminar, considerando improvável que a Amazon conseguisse provar que a Perplexity “acessou” seus computadores nos termos dessa lei.

O tribunal foi cuidadoso quanto ao alcance disso: “We do not establish a new legal regime governing agentic AI.” Também disse que o resultado não prejudica a capacidade da Amazon de regular o acesso por meio de seus termos de serviço. Então isso não foi uma licença para que agentes ignorassem a vontade de um site. Isto é informação geral, não aconselhamento jurídico, e o caso voltou para o tribunal distrital.

Construindo para a parede

  • Assuma que paredes são normais. Projete o plano do agente em torno de páginas que ele não consegue alcançar, com alternativas como outra fonte ou perguntar ao usuário.
  • Classifique antes que o modelo veja qualquer coisa. Use uma ferramenta como a de cima, e registre os resultados para que você consiga ver quais sites falham.
  • Ofereça rotas oficiais primeiro. Onde um site tem uma API ou um produto de dados, use-o. É mais confiável do que uma sessão de navegador.
  • Mantenha as sessões coerentes. Tarefas de múltiplas etapas quebram quando o IP muda no meio do caminho. Nosso guia sobre proxies para agentes de IA que navegam na web aborda rotação e sessões fixas.
  • Saiba para que serve um proxy. Proxies residenciais ajudam um agente a ver páginas públicas como visitantes locais o fazem, no país certo e a partir de um endereço consistente. Eles não mudam o que um site permite, e não são uma forma de contornar um site que já disse não. Se um site pede um login, um pagamento ou uma pessoa, respeite isso.

Conclusão

Os agentes chegaram à web antes de a web ter uma categoria para eles, e por enquanto a parede faz parte do trabalho. Trate-a como um resultado normal: classifique-a na camada de ferramentas, diga a verdade ao modelo e ao usuário, repasse CAPTCHAs a pessoas, e identifique seu agente. Um agente que diz “não consegui ver essa página” vale muito mais do que um que chuta.

Fontes e referências

Perguntas frequentes

Por que agentes de IA são bloqueados por sites?

A maioria das defesas contra bots classifica o tráfego em pessoas e automação. Um agente atua em nome de uma pessoa, mas roda em um servidor, muitas vezes a partir de IPs de nuvem e na velocidade de uma máquina, então tende a ser tratado como automação mesmo quando um usuário real pediu a página.

Um agente de IA deveria resolver CAPTCHAs?

Não. OpenAI, Anthropic e Google documentam agentes devolvendo CAPTCHAs à pessoa ou não tentando resolvê-los. Um CAPTCHA é um site dizendo que quer uma decisão humana, então o agente deveria parar e perguntar.

O que um agente deveria fazer quando uma página é bloqueada?

Reportar isso. A ferramenta de busca deveria retornar um resultado claro, como wall, login ou rate limited, sem o texto da página, para que o modelo possa dizer ao usuário que não conseguiu ver a página, em vez de adivinhar o que havia nela.

O robots.txt se aplica a agentes de IA?

Os fornecedores divergem. A OpenAI diz que as regras do robots.txt podem não se aplicar a ações iniciadas pelo usuário, o Google diz que seus fetchers acionados pelo usuário geralmente as ignoram, e a Anthropic diz que seus bots as respeitam. A própria RFC 9309 diz que as regras não são uma forma de autorização de acesso, então verifique sua própria política e os termos de cada site.

Pronto para começar?

Experimente os proxies residenciais da Shifter, mais de 205M IPs, mais de 195 países, a partir de $ 0,75/GB.

Começar