L’idée de créer un équivalent du robots.txt pour les crawlers des IA trainait depuis quelques années déjà dans la tête de beaucoup d’acteurs. Google avait publié en 2023 un article dans son blog « The Keyword » qui plaidait pour une initiative de ce genre :
https://blog.google/technology/ai/ai-web-publisher-controls-sign-up
Nous l’avions commenté dans cet article :
Mais depuis quelques mois, ce projet est devenu concret grâce à une initiative de Jeremy Howard, le co-fondateur de Reponse.AI.
M. Howard a lancé un site « llmstxt.org » en septembre 2024, présentant le format qu’il souhaitait voir adopter par les producteurs de contenus.
Il semble que le pari de Jeremy Howard est en passe d’être gagné, car sa norme a été adoptée par un nombre croissant d’acteurs de l’IA depuis son lancement.
Parmi les principaux, on trouve Anthropic (Claude), Perplexity, Cloudflare ou Hugging Face,
A quoi sert ce fichier LLMs.txt
Contrairement au fichier robots.txt dont l’objectif de départ était d’indiquer les contenus à ne pas crawler, ici l’idée ici est de faciliter l’exploration et la récupération des contenus par des outils destinés à créer des LLMs.
En effet ces outils butent sur une difficulté : les LLM ont de plus en plus besoin de récupérer les informations présentes sur des sites Web, mais ils sont confrontés à une limitation critique : les fenêtres de contexte sont trop petites pour gérer la plupart des sites Web dans leur intégralité. La conversion de pages HTML complexes avec navigation, publicités et JavaScript en texte brut compatible avec la construction d’un LLM est à la fois difficile et imprécise.
Et l’augmentation des fenêtres de contexte (et donc en pratique la quantité de mémoire allouée pour « aspirer » et traiter les données en entrée) ne peut se faire qu’avec une augmentation radicale des coûts, ce qui rend certains projets infaisables pour des raisons financières.
Le fichier llms.txt crée une version simplifiée du contenu d’un site web, dans un format clair et structuré.
A quoi ressemble un fichier LLMs.txt ?
La « norme » LLMs.txt prévoit de créer un fichier texte lisible par un humain. C’est une caractéristique qui est inspirée du robots.txt.
En pratique, il faut deux fichiers textes sur un site :
- le fichier llms.txt contient les informations sur la structure du site et ses liens de navigation
- le fichier llms-full.txt contient les informations sur le contenu du site
Voici à quoi ressemble contenu d’un fichier llms.txt :
# Project Name
> Brief project summary
Additional context and important notes
## Core Documentation
- [Quick Start](url): Description of the resource
- [API Reference](url): API documentation details
## Optional
- [Additional Resources](url): Supplementary information
La syntaxe du fichier réutilise une norme de balisage préexistante, le langage Markdown. Cette syntaxe vous est peut-être familière, on la trouve dans de nombreux éditeurs de texte simplifiés (éditeurs de tickets, de commentaires etc…).
Vous trouverez la référence ici.
Voila un exemple de llms.txt pour un site de restaurant :
# Nate the Great's Grill
> Nate the Great's Grill is a popular destination off of Sesame Street that has been serving the community for over 20 years. We offer the best BBQ for a great price.
Here are our weekly hours:
- Monday - Friday: 9am - 9pm
- Saturday: 11am - 9pm
- Sunday: Closed
## Menus
- [Lunch Menu](https://host/lunch.html.md): Our lunch menu served from 11am to 4pm every day.
- [Dinner Menu](https://host/dinner.html.md): Our dinner menu served from 4pm to 9pm every day.
## Optional
- [Dessert Mneu](https://host/dessert.md): A subset of the Starlette docs
Et un extrait de llms-full.txt :
## By The Pound
| Item | Price |
| -------------- | ----------- |
| Brisket | 34 |
| Pork Spare Ribs | 30 |
| Pulled Pork | 28 |
## Drinks
| Item | Price |
| -------------- | ----------- |
| Iced Tea | 3 |
| Mexican Coke| 3 |
## Sides
| Item | Price |
| -------------- | ----------- |
| Potato Salad| 4 |
| Slaw | 4 |
Comment utiliser le LLMs.txt ?
C’est là que les affaires se corsent. Ces fichiers sont faits pour des outils d’IA générative qui ne crawlent pas le web correctement ou ne comprennent pas bien les contenus web ou ne sont pas capables de crawler des contenus sur le web externes pour formuler une réponse.
Le fichier ne se place pas à la racine du site, comme le robots.txt. Vous pouvez le faire, mais à l’heure actuelle cela n’a strictement aucun intérêt. Notez que si vous tombez sur un article qui vous dit que c’est ça qu’il faut faire, il a probablement été généré par une IA !
Une fois votre fichier créé, cela vous permet de le faire digérer plus facilement par un outil d’IA générative comme Claude d’Anthropic en l’ajoutant à votre prompt, et cela garantit d’avoir une réponse beaucoup, beaucoup plus pertinente.
Claude à une grosse fenêtre de contexte, donc cela permet de lui faire avaler des sites web assez conséquents.
Mais on peut utiliser cette méthode avec Copilot, Gemini ou ChatGpt.
Comment créer un LLMs.txt pour un site ?
Convertir un contenu HTML en markdown est assez simple, mais cela devient vite assez fastidieux pour un site entier, même réduit.
On peut dans ce cas utiliser des outils dédiés, il en existe déja un certain nombre :
- llmstxt by Firecrawl : https://llmstxt.firecrawl.dev/
- Mintlify : https://mintlify.com/blog/simplifying-docs-with-llms-txt
- L’outil de Writesonic : https://writesonic.com/free-tools/llms-txt-generator
Quel avenir pour cette initiative ?
Pour le moment, l’adoption est importante mais pour des cas d’usage limités. Les annuaires référençant les sites ayant adopté cette approche montrent que la plupart sont des sites d’outils logiciels qui veulent rendre leur documentation facile à digérer par les IA.
En clair, ces sites ont intérêt à ce que les IA qui génèrent du code comprennent bien leur fonctionnement.
En plus, ce n’est pas encore une norme standardisée et on voit fleurir des variations qui n’étaient pas prévues dans la proposition initiale.
Parmi les exemples de ces variations la directive x-robots-tag: llms.txt. Ironiquement cette syntaxe n’est supportée par … personne, il s’agit d’une invention d’une IA générative qui a été reprise par quelques uns.
Néanmoins, les fichiers LLMs.txt sont une solution efficace (mais pas forcément élégante et un peu malcommode) pour résoudre les limitations actuelles des IA génératives et permettre de mieux travailler avec ces outils.
Nous verrons bien dans les mois qui viennent si :
- l’adoption augmente dans des secteurs plus variés
- si des gros acteurs comme Google et Microsoft s’intéressent à l’idée (pour le moment pas vraiment)
- et si un véritable standard en sort
En attendant, c’est un sujet à surveiller…