Activer la prise en charge native de LLMs.txt dans Discourse

:bookmark: Ce guide explique comment rendre votre communauté détectable et utilisable par les agents IA et les crawlers de LLM grâce à la norme llms.txt. Il couvre à la fois le document par défaut généré automatiquement et les fichiers personnalisés téléversés.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur

Résumé

Discourse prend en charge nativement la norme llms.txt, une convention proposée pour fournir un aperçu d’un site web adapté aux LLM. Pensez-y comme à un « robots.txt pour l’IA » : un petit fichier Markdown situé à /llms.txt qui aide les grands modèles de langage (LLM) et les agents IA à comprendre de quoi il s’agit sur votre site et comment y accéder de manière responsable.

Vous pouvez choisir entre deux approches, ou les combiner :

  1. Laisser Discourse générer un document par défaut automatiquement à partir de vos paramètres de site
  2. Téléverser votre propre fichier llms.txt personnalisé pour un contrôle total du contenu

Un fichier personnalisé téléversé a toujours la priorité sur le document généré.

Qu’est-ce que llms.txt ?

llms.txt est une norme proposée qui fournit une carte curatée et adaptée aux agents d’un site web. Elle est servie à la racine du site (/llms.txt) et suit un format Markdown précis :

  • Un titre H1 avec le nom du site (la seule section obligatoire)
  • Un bloc de citation avec un court résumé
  • Des sections Markdown facultatives avec plus de détails
  • Des sections délimitées par H2 contenant des listes de liens utiles

Contrairement à sitemap.xml, qui liste les pages pour les moteurs de recherche, llms.txt est un aperçu concis conçu pour tenir dans la fenêtre de contexte d’un LLM. Les détails se trouvent derrière les liens, qui ne sont récupérés que si nécessaire.

À partir de Discourse v2026.1.0, Discourse peut servir llms.txt depuis la racine du site.

Comment Discourse sert /llms.txt

Discourse traite les requêtes vers /llms.txt dans cet ordre :

  1. Si vous avez téléversé un fichier personnalisé, Discourse le sert inchangé en text/plain
  2. Si aucun fichier personnalisé n’est téléversé et que le document par défaut généré est activé, Discourse génère et sert le document
  3. Sinon, Discourse renvoie une 404

Le document généré est identique pour les visiteurs anonymes et les utilisateurs connectés, et n’est pas affecté par les redirections « connexion requise ».

Le document par défaut généré

Lorsqu’aucun fichier personnalisé n’est téléversé et que la fonctionnalité est activée, Discourse construit un document concis en utilisant les paramètres existants de votre site et la langue par défaut du site. Il inclut :

  • Le titre du site (depuis le paramètre title), avec le nom d’hôte en secours
  • Un bloc de citation de résumé utilisant votre site_description, ou short_site_description en secours
  • Une politique communautaire humaine indiquant que le site est destiné à la discussion humaine et que les agents ne doivent écrire que lorsqu’un humain le leur demande explicitement
  • Une politique d’accès agent demandant aux agents de ne récupérer que ce dont ils ont besoin, de respecter robots.txt et les contrôles de crawler, et d’honorer le HTTP 429 avec l’intervalle Retry-After
  • Une référence MCP Discourse, pointant les agents vers le serveur MCP Discourse comme interface privilégiée, tenant compte des autorisations
  • Une section Interface agent préférée avec le lien de configuration MCP Discourse
  • Une section Accès web public avec des liens vers /search, /filter, /latest et /categories, ainsi que /sitemap.xml si le paramètre enable_sitemap est activé
  • Une section Facultatif avec des liens vers /about, /guidelines, /tos et /privacy

Si votre site a login_required activé, le document ajoute une note indiquant que le contenu n’est disponible que pour les membres authentifiés et omet les liens de découverte publics décrits ci-dessus. Les liens sont sensibles au chemin de base, ils fonctionnent donc correctement sur les installations en sous-dossier.

Vous pouvez consulter l’annonce et discuter du modèle généré dans Automatically generated llms.txt. Meta lui-même sert actuellement un fichier personnalisé, spécifique au site.

Activer le document par défaut généré

Le document par défaut généré est distribué via le système Upcoming Changes en tant que modification bêta que les administrateurs peuvent activer ou désactiver.

  1. Allez dans Admin → Configure → Upcoming Changes, ou visitez /admin/config/upcoming-changes
  2. Trouvez la modification qui génère un /llms.txt par défaut lorsqu’aucun fichier personnalisé n’est téléversé
  3. Dans le menu déroulant Enabled for, choisissez Everyone pour l’activer pour tous les visiteurs
  4. Pour le désactiver, choisissez No one

Les modifications promues apparaissent ici automatiquement lorsqu’elles sont prêtes, et les administrateurs sont notifiés sur le tableau de bord. Si vous préférez qu’aucun fichier llms.txt ne soit servi du tout, réglez cette modification sur No one ou téléversez un fichier personnalisé minimal.

Téléverser un llms.txt personnalisé

Si vous préférez contrôler exactement le contenu, vous pouvez téléverser votre propre fichier.

  1. Préparez un fichier llms.txt au format .txt ou .md (taille de fichier maximale de 512 Ko)
  2. Allez dans Admin → Settings → Security, ou visitez /admin/config/security, et recherchez LLMs TXT
  3. Téléversez votre fichier et enregistrez la configuration

Une fois configuré, Discourse sert votre fichier inchangé à :

https://yourforum.com/llms.txt

Consultez llmstxt.org pour des conseils sur la syntaxe et le format. Un téléversement personnalisé remplace toujours le document généré. Pour référence, vous pouvez consulter le fichier de Meta.

Vérifier votre configuration

Vous pouvez vérifier ce que verront les agents en demandant le fichier dans un navigateur ou avec curl :

curl https://yourforum.com/llms.txt

Bonnes pratiques

  • Gardez le fichier concis. llms.txt est une carte, pas un manifeste ; chaque jeton coûte du contexte, et un fichier énorme conduit à des agents confus et à de pires résultats
  • Ne servez le document par défaut généré que si son contenu correspond à vos politiques. Si vous avez besoin d’une formulation différente, copiez le texte généré, modifiez-le pour s’adapter à votre communauté et téléversez-le en tant que fichier personnalisé
  • Structurez les fichiers personnalisés selon la spécification : titre H1, résumé en bloc de citation, puis sections H2 avec des listes de liens, en utilisant une section Optional pour les liens secondaires
  • Combinez llms.txt avec les contrôles de crawler. Pour régler l’accès automatisé, configurez les paramètres slow_down_crawler_user_agents et slow_down_crawler_rate (Admin → Settings → Security)
  • N’oubliez pas que llms.txt décrit votre site, tandis que robots.txt contrôle l’accès. Ils servent des objectifs différents et se complètent

Problèmes courants et solutions

J’obtiens une 404 sur /llms.txt

Cela se produit lorsqu’aucun fichier personnalisé n’est téléversé et que le document par défaut généré n’est pas activé. Téléversez un fichier personnalisé, activez le document par défaut généré dans Admin → Upcoming Changes, ou les deux.

J’utilise un plugin Générateur de llms.txt et le fichier principal a cessé de fonctionner

Discourse Core sert le chemin /llms.txt, il a donc la priorité sur les plugins qui le génèrent. Si vous dépendez des fichiers générés dynamiquement par le plugin (tels qu’un index complet des sujets), une solution de contournement pratique consiste à téléverser un llms.txt personnalisé minimal qui pointe les agents vers le contenu généré par le plugin, par exemple :

# [Votre titre de site]

Allez sur https://yourforum.com/llms-full.txt

Le plugin génère également des fichiers par catégorie, par sujet et par étiquette qui ne sont pas affectés.

J’ai téléversé un fichier mais /llms.txt renvoie 404

Si le fichier téléversé ne peut pas être lu depuis le stockage (par exemple, il est manquant dans un magasin d’objets externe), Discourse renvoie 404 et ne bascule pas sur le document généré. Ré-téléversez le fichier pour résoudre ce problème.

Mon site exige une connexion, comment cela se comporte-t-il ?

Le document généré fonctionne toujours : il contient l’avis de compte requis et omet les liens de découverte publics. Un téléversement personnalisé est toujours servi inchangé. Si vous voulez que les agents accèdent au contenu, réfléchissez à la manière dont vos paramètres de connexion affectent la crawlabililité.

FAQ

Discourse liste-t-il automatiquement tous mes sujets dans llms.txt ?

Le document par défaut généré ne liste pas intentionnellement les sujets individuels. C’est une carte minimale qui décrit votre site, énonce les politiques d’accès et pointe les agents vers l’interface MCP Discourse et quelques routes de découverte.

Dans quelle langue est le document généré ?

Il est généré dans la langue par défaut de votre site (le paramètre default_locale), indépendamment de la langue de la requête.

Puis-je opter pour la sortie ?

Oui. Réglez la modification sur No one dans Admin → Upcoming Changes. Alternativement, téléversez un fichier personnalisé avec votre propre contenu.

Pourquoi le document généré référence-t-il Discourse MCP ?

Le serveur MCP Discourse fournit des outils tenant compte des autorisations pour les sujets, les publications, la recherche, les utilisateurs, les catégories et les actions communautaires prises en charge. C’est la manière préférée pour les agents de travailler avec votre communauté, c’est pourquoi une configuration MCP locale est liée dans la section « Interface agent préférée » lorsqu’elle est disponible.

Ressources supplémentaires

14 « J'aime »

Est-il impossible pour Discourse de créer le fichier llms.txt dynamiquement pour le site ? Cela semblerait être une fonctionnalité bien plus utile et mettrait cela en accord avec 🤖 Discourse llms.txt Generator Plugin - #2 by Ivan_Rapekas, avec laquelle cette nouvelle fonctionnalité entre en conflit, en écrasant le chemin /llms.txt et en renvoyant une erreur 404 même si le plugin est correctement configuré.

Cette ajout à la fonctionnalité figure-t-il quelque part sur la feuille de route ?

5 « J'aime »

Ma solution de contournement pour ce problème était :

  • Créer un fichier llms.txt dans VS Code contenant uniquement :

    Rendez-vous sur [https://<VOTRE-URL_BASE>/llms-full.txt](https://<VOTRE-URL_BASE>/llms-full.txt)
    
  • Télécharger ce fichier dans la section llms.txt du cœur de Discourse, accessible via admin/config/security?filter=LLMs%20TXT. Enregistrez.

  • Vérifiez que https://<VOTRE-URL_BASE>/llms.txt affiche bien le contenu du fichier texte ci-dessus.

  • Désormais, espérons que les LLM accédant à llms.txt seront orientés vers llms-full.txt, qui est généré dynamiquement par 🤖 Discourse llms.txt Generator Plugin

1 « J'aime »

Guide mis à jour pour refléter les modifications annoncées dans Fichier llms.txt généré automatiquement.

3 « J'aime »