Guia

llms.txt v2: o que mudou

A proposta llms.txt foi revisada em agosto de 2026, quase dois anos depois da original. O formato do arquivo não mudou — um arquivo v1 continua sendo um arquivo v2 válido. O que mudou foi tudo ao redor do arquivo: como os agentes o encontram e qual ferramental a especificação espera.

O formato está inalterado

A estrutura exigida é exatamente a de antes: um BOM opcional, um H1 com o nome do projeto (ainda o único elemento obrigatório), um resumo em blockquote, prosa opcional sem títulos e, depois, zero ou mais seções H2 com listas de links Markdown. Se o seu arquivo tirava 100 pela v1, ele continua tirando 100.

1. Relações de link, para os agentes pararem de adivinhar

Esta é a adição substancial, e responde ao pedido mais frequente em dois anos de adoção: dada uma página, como um agente encontra a versão em Markdown dela, ou o llms.txt que a cobre, sem adivinhar URLs?

A v2 responde com duas relações de link padrão:

Qualquer uma pode ser um elemento HTML <link>:

<link rel="describedby" href="/llms.txt">
<link rel="alternate" type="text/markdown" href="/docs/page.html.md">

… ou um cabeçalho de resposta HTTP, a única opção para recursos que não são HTML, como os próprios arquivos Markdown, e que pode ser configurado no servidor web ou na CDN sem mexer em uma única página:

Link: </docs/page.html.md>; rel="alternate"; type="text/markdown", </docs/llms.txt>; rel="describedby"

Se você seguiu a orientação de anunciar o arquivo com rel="alternate" type="text/plain" — inclusive em versões anteriores dos nossos próprios guias —, troque por rel="describedby". Era uma convenção razoável enquanto a especificação não tinha uma; agora tem.

2. As duas formas de URL .md agora são permitidas

A v1 definia uma única forma de URL para o gêmeo Markdown de uma página: .md acrescentado à URL completa, de modo que page.html virava page.html.md. Na prática, várias ferramentas de publicação substituíam a extensão, produzindo page.md. A v2 abençoa as duas. Para URLs sem nome de arquivo, acrescente index.html.md ou index.md.

Aqui não há nada a migrar — a forma que você já emite agora está correta.

3. Arquivos em subcaminhos ficaram devidamente definidos

A v1 permitia um llms.txt fora da raiz, mas nunca disse o que isso significava. A v2 define: um arquivo cobre as páginas sob o seu caminho e, quando mais de um se aplica, os agentes usam o mais específico. Assim, /docs/llms.txt cobre tudo que está sob /docs/, e um agente lendo uma página de documentação prefere esse arquivo ao da raiz.

Isso importa para quem controla um caminho mas não um host — um site de projeto no GitHub Pages, uma seção de documentação em um domínio compartilhado — e é a razão pela qual a especificação mantém um nome de arquivo convencional em vez de /.well-known/, que só existe na raiz da origem.

Consequência prática: se a sua documentação é a parte que interessa aos agentes, um /docs/llms.txt dedicado passa a ser uma escolha de primeira classe, não uma zona cinzenta.

4. O ferramental de expansão de contexto saiu (e «Optional» perdeu a mecânica)

A v1 descrevia o llms_txt2ctx, uma ferramenta que expandia um llms.txt em um único contexto para o LLM. A v2 abandona isso e declara a expectativa diretamente: os agentes consultam ou pesquisam o llms.txt e então seguem os links de que precisam — portanto os links devem apontar para conteúdo amigável a LLMs, e o próprio arquivo permanece pequeno o bastante para caber no contexto.

Com esse ferramental vai embora o significado mecânico da seção ## Optional, que existia para dizer a essas ferramentas o que omitir. Seções Optional continuam permitidas e continuam sendo uma convenção útil para links secundários que um agente pode pular — elas apenas não acionam mais nada automático.

Observe que o llms-full.txt nunca fez parte da especificação, em nenhuma das versões. É uma prática de mercado bastante adotada, e boa para conjuntos grandes de documentação — só não a trate como exigência.

O que fazer nesta semana

  1. Adicione rel="describedby" apontando para o seu llms.txt — uma linha no layout, ou uma regra de cabeçalho na CDN.
  2. Se você publica gêmeos em Markdown, anuncie-os com rel="alternate" type="text/markdown".
  3. Substitua qualquer dica rel="alternate" type="text/plain" por rel="describedby".
  4. Se a documentação é a parte valiosa, considere um /docs/llms.txt dedicado a ela.
  5. Rode o validador novamente — ele agora informa se suas páginas anunciam as relações da v2 e segue arquivos em subcaminhos como a v2 diz que os agentes devem fazer.

Por que houve revisão

Porque a premissa deixou de ser especulativa. Quando o llms.txt foi proposto em setembro de 2024, «agentes vão ler o seu site» era uma previsão. Hoje plataformas de documentação geram o arquivo automaticamente, o Lighthouse do Chrome audita sites em busca dele como parte de suas verificações de navegação agêntica, e os laboratórios de IA publicam llms.txt para a própria documentação de desenvolvedores. A v2 é a aparência de uma proposta depois que suas premissas foram testadas por adoção real.

Continue lendo

Valide seu llms.txt →