← Todos os Posts

Agents.txt não é controle de acesso

A DreamHost agora documenta que os planos de Web Hosting incluem automaticamente arquivos robots.txt e agents.txt padrão quando um site ainda não forneceu versões personalizadas.1

Esse pequeno detalhe de hospedagem aponta para uma mudança maior. Hoje, os sites falam com pelo menos três públicos ao mesmo tempo: crawlers de busca, crawlers de IA e assistentes em tempo de inferência que procuram contexto limpo. Os nomes dos arquivos fazem essa mudança parecer organizada. O robots.txt diz o que clientes automatizados podem rastrear. O llms.txt oferece aos LLMs um mapa curado. O agents.txt sugere uma política voltada a agentes. Nenhum desses arquivos deve fazer um operador se sentir protegido.

Agents.txt não é controle de acesso. Trate arquivos de crawler como orientações públicas de política e auxiliares de descoberta. O controle real ainda vem de autorização no servidor, verificação de identidade de bots, limites de requisições, logs, comportamento de cache e evidências de que os crawlers relevantes de fato viram os arquivos atuais.

Resumo rápido

O padrão Robots Exclusion Protocol afirma que regras para crawlers “não são uma forma de autorização de acesso”.2 O Google também alerta que uma URL bloqueada no robots.txt ainda pode aparecer na Busca se outras páginas criarem links para ela.3 O próprio artigo da DreamHost sobre controle de bots diz que arquivos robots funcionam como sugestões para mecanismos de busca compatíveis e que bots mal-intencionados podem ignorar o arquivo ou usar user agents enganosos.1

Crawlers de IA adicionam mais dimensões de política. A OpenAI separa o OAI-SearchBot, usado na busca do ChatGPT, do GPTBot, usado em rastreamento relacionado a treinamento, e diz que o ChatGPT-User representa ações acionadas pelo usuário nas quais o robots.txt pode não se aplicar.4 O Google diz que Google-Extended não tem uma string HTTP user-agent separada e funciona como um token de produto no robots.txt para preferências de treinamento e grounding, não para inclusão na Busca Google.5 O arquivo de controle de crawlers agora precisa de política por finalidade, não de uma chave única de permitir ou bloquear.

Use agents.txt se o seu host, plataforma ou ecossistema de agentes espera esse arquivo. Use llms.txt se você quer que ferramentas em tempo de inferência entendam suas melhores páginas. Mantenha o robots.txt correto, porque grandes crawlers ainda o usam. Depois, verifique as requisições na borda do servidor e leia os logs. Um arquivo de texto pode expressar intenção. Ele não consegue deter um cliente não confiável.

Principais pontos

Para donos de sites: - Publique robots.txt para política de rastreamento, llms.txt para contexto legível por IA e agents.txt apenas como orientação voltada a agentes. - Não coloque rotas privadas, nomes de arquivos secretos, prompts internos ou caminhos sensíveis em nenhum arquivo público de crawler. - Confira os logs depois de mudanças. Um arquivo de política só importa se o crawler certo o buscar e mudar de comportamento.

Para equipes de SEO e AIO: - Separe visibilidade em busca, permissões de treinamento e acessos acionados pelo usuário. - Deixe explícita a lista dos bots que você quer permitir, como crawlers de busca e superfícies de resposta por IA. - Combine arquivos de crawler com verificação de sitemap, canonical, schema e llms.txt.

Para equipes de segurança: - Trate strings de user-agent como declarações, não como identidade. - Verifique crawlers com DNS reverso ou faixas de IP publicadas quando o operador oferecer suporte a isso. - Proteja recursos sensíveis com autenticação, regras de WAF, política da aplicação e limites de requisições, não com etiqueta de crawler.

O que mudou com agents.txt?

O robots.txt existe há décadas. O RFC define um arquivo robots.txt que donos de serviços disponibilizam para que crawlers decidam quais URIs podem acessar.2 O formato básico do arquivo é familiar:

User-agent: *
Disallow: /private-draft/
Sitemap: https://example.com/sitemap.xml

O agents.txt aparece em outro momento. A web não recebe mais apenas crawlers de mecanismos de busca. Ela recebe crawlers de treinamento, crawlers de mecanismos de resposta, crawlers de segurança publicitária, buscas feitas por assistentes de navegador, acessos de LLM acionados pelo usuário, crawlers de arquivamento, ferramentas de SEO e bots de spam que pegam nomes emprestados de crawlers legítimos.

A documentação da DreamHost importa porque leva o agents.txt de uma ideia de nicho para um comportamento padrão de hospedagem em pelo menos um host popular. O artigo diz que a DreamHost inclui automaticamente arquivos robots.txt e agents.txt padrão em planos de Web Hosting e permite que donos de sites sobrescrevam qualquer um dos arquivos colocando uma versão personalizada na raiz do site.1 Isso não transforma agents.txt em um padrão com semântica de aplicação obrigatória. Mas torna mais provável que esse nome de arquivo apareça na web.

A leitura segura é estreita:

Arquivo Melhor função Suposição ruim
robots.txt Preferência de rastreamento para crawlers compatíveis. “Bloqueado significa privado.”
llms.txt Mapa curado e legível por LLM para uso em tempo de inferência. “Listado significa ranqueado ou citado.”
agents.txt Orientação de política voltada a agentes quando uma plataforma procura esse arquivo. “Um bot é obrigado a obedecer.”
Sitemap Descoberta completa de URLs para páginas públicas indexáveis. “Enviado significa indexado.”
Logs do servidor Evidência do que realmente aconteceu. “Sem referenciador visível significa que nenhum crawler usou a página.”

Os nomes dos arquivos não devem competir. Eles devem formar um pacote de política: o que os crawlers podem solicitar, o que sistemas de IA devem ler, o que agentes devem saber e o que o servidor realmente observou.

Robots.txt ainda importa, mas não protege

Arquivos de crawler falham quando equipes os usam como barreiras de segurança.

O RFC deixa esse limite explícito. O protocolo pede que clientes automatizados respeitem regras ao acessar URIs; ele não autoriza acesso.2 O Google diz o mesmo em termos operacionais: se outra página criar link para uma URL bloqueada, o Google ainda pode encontrar e indexar o endereço da URL e outras informações públicas de link, mesmo sem rastrear o conteúdo da página bloqueada.3 A DreamHost alerta que regras robots funcionam como sugestões para mecanismos de busca compatíveis e que bots mal-intencionados podem ignorar o arquivo ou usar user agents falsos.1

Esses fatos levam a uma regra simples: nunca coloque em robots.txt, agents.txt ou llms.txt nada que causaria prejuízo se fosse copiado para um resultado de busca, extraído para um conjunto de dados ou exibido por um LLM.

Arquivos de crawler ruins expõem mais do que protegem:

User-agent: *
Disallow: /internal-product-roadmap/
Disallow: /legal-private/
Disallow: /prompt-drafts/
Disallow: /customers/acme-renewal-risk/

O arquivo acima diz a qualquer visitante onde material sensível pode estar. Um crawler compatível pode evitar esses caminhos. Um atacante recebe um mapa de diretórios.

Um arquivo mais seguro declara a política pública de rastreamento sem revelar a estrutura sensível:

User-agent: *
Allow: /
Disallow: /*.md$
Sitemap: https://example.com/sitemap.xml

Essa versão expressa uma preferência real sem expor a estrutura privada. Se /prompt-drafts/ existe, o servidor deve protegê-lo com autenticação e cabeçalhos noindex quando apropriado. O arquivo de crawler não deve carregar esse peso.

Crawlers de IA precisam de política por finalidade

A política para crawlers de busca costumava parecer binária: permita Googlebot, bloqueie ferramentas de SEO barulhentas e mantenha páginas privadas sob controles do servidor.

A política para crawlers de IA adiciona finalidade. Um dono de site pode querer que uma página apareça nos resultados de busca do ChatGPT e, ao mesmo tempo, optar por não usar essa mesma página no treinamento de modelos. A documentação de crawlers da OpenAI explicita essa separação. Ela diz que o OAI-SearchBot dá suporte aos recursos de busca do ChatGPT, enquanto o GPTBot rastreia conteúdo que pode ser usado para treinar os modelos fundacionais de IA generativa da OpenAI.4 A OpenAI também diz que essas configurações são independentes: um webmaster pode permitir OAI-SearchBot e bloquear GPTBot.4

O Google traça um limite parecido de outro jeito. A documentação de crawlers do Google diz que Google-Extended não tem uma string HTTP user-agent separada; user agents existentes do Google fazem o rastreamento, e Google-Extended atua como token de produto no robots.txt.5 O Google diz que o token controla se o conteúdo rastreado do site pode apoiar treinamentos futuros de modelos Gemini e grounding, e que ele não afeta inclusão ou ranqueamento na Busca Google.5

Esses dois exemplos mostram por que uma lista plana de bloqueio não resolve o problema. A matriz real de política pergunta:

Finalidade Sinal de exemplo Pergunta do operador
Descoberta em busca Googlebot, Bingbot, OAI-SearchBot Quero que a página apareça em resultados de busca ou resposta?
Preferência de treinamento GPTBot, Google-Extended Quero que a página seja usada em fluxos de treinamento ou grounding de modelos?
Acesso acionado pelo usuário ChatGPT-User, assistentes de navegador Um humano pediu ao assistente para recuperar a página?
Entendimento do site llms.txt, schema, RSS Dei aos sistemas de IA uma explicação limpa do conteúdo público?
Tráfego abusivo User agents falsificados, ferramentas de scraping A requisição comprovou identidade e se comportou dentro da política?

O arquivo de política deve acompanhar a finalidade. Não bloqueie todos os user agents de IA e depois se pergunte por que superfícies de busca por IA ignoram o site. Não permita todos os crawlers de IA e depois reclame quando crawlers de treinamento consumirem páginas que você queria apenas para busca voltada ao usuário. Separe as finalidades, declare a preferência e verifique o comportamento.

Llms.txt resolve outro problema

llms.txt não substitui robots.txt. A proposta de Jeremy Howard descreve /llms.txt como uma forma de fornecer informações que ajudam LLMs a usar um site em tempo de inferência.6 A mesma proposta diz que llms.txt pode coexistir com os padrões atuais da web: sitemaps listam páginas para mecanismos de busca, enquanto llms.txt oferece uma visão curada para LLMs e pode complementar robots.txt com contexto para conteúdo permitido.6

Essa distinção importa no trabalho de AIO.

robots.txt responde: “Este crawler pode solicitar este caminho?”

llms.txt responde: “Se um assistente ler meu site, o que ele deve entender primeiro?”

agents.txt pode responder: “O que clientes agentivos devem saber sobre o comportamento desejado?”

Essas perguntas ficam próximas, mas não cabem em um único arquivo. Um site sério deve tratar a descoberta por IA como uma superfície de lançamento:

  1. Publique páginas canônicas com títulos e descrições claros.
  2. Adicione dados estruturados que correspondam à página visível.
  3. Mantenha sitemap e RSS atualizados.
  4. Publique llms.txt e llms-full.txt para contexto curado de IA.
  5. Publique robots.txt com política explícita para crawlers.
  6. Adicione agents.txt apenas se a plataforma ou o ecossistema de agentes der ao arquivo um leitor concreto.
  7. Confira os logs para confirmar que crawlers solicitaram os arquivos alterados.

Pular a última etapa transforma AIO em ritual de esperança. O arquivo de crawler existe. A rota retorna 200. Nenhuma evidência prova que os clientes pretendidos o viram.

A verificação pertence à borda

Strings de user-agent não comprovam identidade. Um script qualquer pode enviar User-Agent: Googlebot. Um scraper pode enviar User-Agent: GPTBot. Uma política que confia apenas no header dá o tratamento mais generoso ao sinal mais fácil de falsificar.

O Google documenta dois caminhos de verificação para requisições que afirmam vir do Google: DNS reverso mais DNS direto para verificações pontuais, e correspondência com faixas de IP publicadas para sistemas maiores.7 A OpenAI publica arquivos JSON de endereços IP para OAI-SearchBot, GPTBot e ChatGPT-User em sua documentação de crawlers.4 Esses mecanismos não cobrem todo crawler. Mas estabelecem o formato correto: identidade exige evidência além de uma string.

A política mínima na borda deve registrar:

Evidência Por que importa
User-agent Mostra a declaração do cliente.
IP de origem e ASN Ajuda a separar scrapers em nuvem de faixas verificadas de crawlers.
Resultado de DNS reverso ou faixa de IP Comprova identidade quando o operador oferece verificação.
Caminho solicitado Mostra em qual conteúdo o cliente realmente tocou.
Horário de busca do robots.txt Mostra se o cliente conferiu a política antes de rastrear.
Código de status e resultado de cache Mostra o que o crawler recebeu.
Taxa e padrão de caminhos Revela abuso até mesmo de bots nomeados.

Esse pacote de logs transforma política de crawler de opinião em evidência. Se o GPTBot continuar solicitando caminhos bloqueados, você consegue provar. Se um falso Googlebot martelar URLs com aparência privada a partir de um proxy residencial, você pode bloqueá-lo sem punir o Googlebot real. Se o OAI-SearchBot nunca solicitar o artigo alterado, você sabe por que a página ainda não apareceu na busca do ChatGPT.

Um pacote prático de política para crawlers de IA

Não comece pelo arquivo. Comece pelo resultado.

Resultado Controle necessário
Mecanismos de busca devem indexar páginas públicas. Sitemap, tags canônicas, schema, respostas 200 rápidas e crawlers de busca permitidos.
Mecanismos de resposta por IA devem entender o site. Artigos limpos, schema, RSS, llms.txt e páginas-fonte com resumos explícitos.
Crawlers de treinamento devem evitar conteúdos específicos. Grupos por finalidade no robots.txt, além de aplicação no servidor quando a política ou a lei exigir.
Conteúdo privado deve continuar privado. Autenticação, autorização, ausência de links públicos, nenhuma divulgação em arquivos de crawler e nenhum vazamento de cache.
Bots ruins não devem drenar recursos. Limites de requisições, regras de WAF, exceções para bots verificados e logs de abuso.
Mudanças de política devem ser auditáveis. Verificações de rota, logs de acesso de crawlers, timestamps de deploy e um pacote curto de revisão.

Esse pacote dá a cada camada o trabalho certo. robots.txt comunica preferência. llms.txt comunica contexto. agents.txt comunica intenção voltada a agentes onde existe um leitor. O servidor aplica. Os logs provam.

No meu próprio site, o trabalho com crawlers segue essa divisão. O arquivo público de política recebe crawlers legítimos e bloqueia caminhos Markdown brutos que crawlers haviam inferido a partir de exemplos em blocos de código. Os arquivos de contexto de IA dão aos assistentes uma entrada curada para a escrita pública. O censo noturno de rastreamento me mostra se crawlers viram erros, cache antigo, rotas ausentes ou URLs antigas que agora deveriam retornar 410. O arquivo de política dá a intenção. Os logs decidem se a intenção funcionou.

O que colocar em agents.txt

Até o ecossistema se estabilizar, mantenha o agents.txt simples e público.

Bons candidatos:

  • Contato do site e URL da política.
  • Ponteiros para robots.txt, sitemap, llms.txt e RSS.
  • Uma declaração sobre o uso preferido do conteúdo público.
  • Um aviso de que rotas privadas ou autenticadas exigem autorização.
  • Um endereço de suporte para problemas de rastreamento.

Maus candidatos:

  • Caminhos secretos.
  • Regras internas de prompt.
  • Rotas API não públicas.
  • Nomes de clientes.
  • Exceções de segurança.
  • Instruções que prejudicariam o site se fossem copiadas por um cliente hostil.

O padrão certo para agents.txt não é “Um bom agente apreciaria isso?” O padrão certo é “Eu ficaria confortável se um agente ruim, um resultado de busca e um usuário qualquer lessem este arquivo?”

O melhor modelo mental

Arquivos de crawler são placas em uma via pública.

Uma placa pode dizer “entrada de entregas”, “não entre” ou “comece aqui”. Motoristas respeitosos seguem a placa. Motoristas imprudentes a ignoram. A placa ainda ajuda porque a maior parte do tráfego legítimo quer instruções claras. Ela falha quando você a trata como uma porta trancada.

Crawlers de IA tornam essas placas mais importantes e, ao mesmo tempo, menos suficientes. Mais importantes porque sistemas de IA precisam de contexto público claro, política por finalidade e mapas de rotas. Menos suficientes porque user agents se multiplicam, treinamento e busca se separam, e clientes ruins conseguem se passar por clientes bons.

A resposta não é desistir dos arquivos de crawler. A resposta é reduzir a autoridade deles ao nível correto. Publique uma política pública clara. Verifique quem solicita os arquivos. Observe o que eles buscam. Aplique limites privados no servidor. Trate qualquer afirmação sobre “visibilidade em IA” como não comprovada até que logs e rotas ativas a sustentem.

Essa é a diferença entre teatro de AIO e operações reais com crawlers.


Perguntas frequentes

O que é agents.txt?

agents.txt é um arquivo de texto emergente, voltado a agentes, que alguns hosts ou ferramentas podem servir na raiz do site. A DreamHost documenta arquivos agents.txt padrão para planos de Web Hosting, mas essa documentação não transforma o arquivo em um padrão de controle de acesso. Trate-o como uma orientação pública até que uma plataforma específica de agentes documente exatamente como lê e aplica o arquivo.1

Robots.txt bloqueia crawlers de IA?

Crawlers compatíveis podem respeitar robots.txt, e grandes operadores documentam tokens específicos para seus crawlers. A OpenAI documenta controles para OAI-SearchBot e GPTBot, enquanto o Google documenta Google-Extended como token de produto para preferências de treinamento e grounding.45 Ainda assim, robots.txt não autentica o cliente, não oculta conteúdo e não impede um bot que decide ignorar o arquivo.23

Devo publicar llms.txt?

Publique llms.txt se você quer que assistentes de IA encontrem um mapa curado do seu conteúdo público. A proposta apresenta llms.txt como contexto em tempo de inferência, não como substituto para sitemap ou robots.txt.6 Um arquivo útil aponta para as páginas que você realmente quer que agentes entendam.

Uma URL bloqueada ainda pode aparecer na busca?

Sim. O Google diz que uma URL bloqueada por robots.txt ainda pode aparecer se outras páginas criarem links para ela, embora o Google não rastreie nem indexe o conteúdo da página bloqueada.3 Use autenticação, noindex quando o acesso por crawler for permitido e política no servidor para páginas que precisam ficar fora dos resultados públicos.

Como diferencio um crawler real de um falso?

Use mais do que a string de user-agent. O Google documenta verificações com DNS reverso mais DNS direto e correspondência com faixas de IP publicadas.7 A OpenAI publica arquivos JSON de endereços IP para seus bots documentados.4 Quando o operador de um crawler não publica dados de verificação, trate a requisição como uma declaração e aplique limites de requisições ou desafios conforme o comportamento.

Qual é a configuração mais segura de arquivos de crawler para um site público?

Use robots.txt para política de crawlers, sitemap para descoberta de URLs, llms.txt para contexto curado de IA e agents.txt apenas para orientação pública voltada a agentes. Mantenha caminhos sensíveis fora de todos os arquivos públicos. Depois, verifique rotas ativas, estado de cache, acessos de crawlers e logs do servidor antes de dizer que a configuração funciona.

Referências


  1. DreamHost, “Control bots, spiders, and crawlers,” DreamHost Knowledge Base. Acessado em 18 de maio de 2026. 

  2. Koster, M., Illyes, G., Zeller, H., and Sassman, L., “RFC 9309: Robots Exclusion Protocol,” IETF, setembro de 2022. 

  3. Google Search Central, “Introduction to robots.txt,” Google for Developers. 

  4. OpenAI, “Overview of OpenAI Crawlers,” documentação da API da OpenAI. 

  5. Google Crawling Infrastructure, “Google’s common crawlers,” Google for Developers. 

  6. Jeremy Howard, “The /llms.txt file,” proposta llms-txt, 3 de setembro de 2024. 

  7. Google Crawling Infrastructure, “Verify requests from Google crawlers and fetchers,” Google for Developers, atualizado pela última vez em 20 de março de 2026. 

Artigos relacionados

O Fork Bomb Nos Salvou

O atacante do LiteLLM cometeu um erro de implementação. Esse erro foi a única razão pela qual 47.000 instalações foram d…

6 min de leitura

Código aberto não é uma barreira de segurança

A orientação do GDS sobre descoberta de vulnerabilidades por IA acerta na segurança de código aberto: esconder menos por…

11 min de leitura

O Ralph Loop: Como Executo Agentes de IA Autônomos Durante a Noite

Construí um sistema de agentes autônomos com stop hooks, orçamentos de spawn e memória em sistema de arquivos. Aqui estã…

7 min de leitura