Abilitazione del supporto nativo per LLMs.txt in Discourse

:bookmark: Questa guida spiega come rendere la tua community rilevabile e utilizzabile da agenti AI e crawler LLM tramite lo standard llms.txt. Copre sia il documento predefinito generato automaticamente sia i file personalizzati caricati.

:person_raising_hand: Livello utente richiesto: Amministratore

Riepilogo

Discourse include il supporto nativo per lo standard llms.txt, una convenzione proposta per fornire una panoramica amichevole per LLM di un sito web. Pensa a questo come a un “robots.txt per l’AI”: un piccolo file Markdown in /llms.txt che aiuta i grandi modelli linguistici (LLM) e gli agenti AI a capire di cosa tratta il tuo sito e come accedervi in modo responsabile.

Puoi scegliere tra due approcci, oppure combinarli:

  1. Lasciare che Discourse generi automaticamente un documento predefinito dalle impostazioni del tuo sito
  2. Caricare il tuo file llms.txt personalizzato per un controllo completo sul contenuto

Un caricamento personalizzato ha sempre la priorità rispetto al documento generato.

Cos’è llms.txt?

llms.txt è uno standard proposto che fornisce una mappa curata e amichevole per agenti di un sito web. Viene servito nella radice del sito (/llms.txt) e segue un preciso formato Markdown:

  • Un’intestazione H1 con il nome del sito (l’unica sezione obbligatoria)
  • Una citazione (blockquote) con un breve riassunto
  • Sezioni Markdown opzionali con maggiori dettagli
  • Sezioni delimitate da H2 contenenti elenchi di link utili

A differenza di sitemap.xml, che elenca le pagine per i motori di ricerca, llms.txt è una panoramica concisa progettata per adattarsi alla finestra di contesto di un LLM. I dettagli si trovano dietro i link, che vengono recuperati solo quando necessario.

A partire da Discourse v2026.1.0, Discourse può servire llms.txt dalla radice del sito.

Come Discourse serve /llms.txt

Discourse gestisce le richieste a /llms.txt in questo ordine:

  1. Se hai caricato un file personalizzato, Discourse lo serve invariato come text/plain
  2. Se non è stato caricato alcun file personalizzato e il predefinito generato è abilitato, Discourse genera e serve il documento
  3. Altrimenti, Discourse restituisce un 404

Il documento generato è identico per i visitatori anonimi e gli utenti connessi e non è influenzato dai reindirizzamenti login required.

Il documento predefinito generato

Quando non è stato caricato alcun file personalizzato e la funzione è abilitata, Discourse costruisce un documento conciso utilizzando le impostazioni esistenti del tuo sito e la lingua predefinita del sito. Include:

  • Il titolo del sito (dall’impostazione title), con il hostname come fallback
  • Un blockquote di riepilogo utilizzando il tuo site_description, o short_site_description come fallback
  • Una politica di community per umani che afferma che il sito è per discussioni umane e che gli agenti devono scrivere solo quando un umano lo chiede esplicitamente
  • Una politica di accesso per agenti che chiede agli agenti di recuperare solo ciò di cui hanno bisogno, di rispettare robots.txt e i controlli del crawler, e di onorare HTTP 429 con l’intervallo Retry-After
  • Un riferimento a Discourse MCP, che indirizza gli agenti al server Discourse MCP come interfaccia preferita e consapevole dei permessi
  • Una sezione Interfaccia agente preferita con il link di configurazione Discourse MCP
  • Una sezione Accesso web pubblico con link a /search, /filter, /latest e /categories, più /sitemap.xml quando l’impostazione enable_sitemap è attiva
  • Una sezione Opzionale con link a /about, /guidelines, /tos e /privacy

Se il tuo sito ha login_required abilitato, il documento aggiunge una nota che il contenuto è disponibile solo per i membri autenticati e omette i link di scoperta pubblica descritti sopra. I link sono consapevoli del percorso di base, quindi funzionano correttamente nelle installazioni in sottocartelle.

Puoi vedere l’annuncio e discutere il modello generato in llms.txt generato automaticamente. Meta stessa attualmente serve un file personalizzato, specifico per il sito.

Abilitare il documento predefinito generato

Il predefinito generato viene fornito tramite il sistema Upcoming Changes come una modifica beta che gli amministratori possono abilitare o disabilitare.

  1. Vai su Admin → Configure → Upcoming Changes, o visita /admin/config/upcoming-changes
  2. Trova la modifica che genera un /llms.txt predefinito quando non è stato caricato alcun file personalizzato
  3. Nel menu a tendina Enabled for, scegli Everyone per abilitarlo per tutti i visitatori
  4. Per disattivarlo, scegli No one

Le modifiche promosse appaiono qui automaticamente quando sono pronte e gli amministratori vengono notificati nella dashboard. Se preferisci che nessun file llms.txt venga servito, imposta questa modifica su No one o carica un file personalizzato minimale.

Caricare un llms.txt personalizzato

Se preferisci controllare esattamente il contenuto, puoi caricare il tuo file.

  1. Prepara un file llms.txt in formato .txt o .md (la dimensione massima del file è 512 KB)
  2. Vai su Admin → Settings → Security, o visita /admin/config/security, e cerca LLMs TXT
  3. Carica il tuo file e salva la configurazione

Una volta configurato, Discourse serve il tuo file invariato in:

https://yourforum.com/llms.txt

Fai riferimento a llmstxt.org per la guida su sintassi e formato. Un caricamento personalizzato sostituisce sempre il documento generato. Per riferimento, puoi visualizzare il file di Meta.

Verificare la configurazione

Puoi controllare ciò che vedranno gli agenti richiedendo il file in un browser o con curl:

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

Migliori pratiche

  • Mantieni il file conciso. llms.txt è una mappa, non un manifest; ogni token costa contesto e un file enorme porta a agenti confusi e risultati peggiori
  • Servi il predefinito generato solo se il suo contenuto corrisponde alle tue politiche. Se hai bisogno di una formulazione diversa, copia il testo generato, modificalo per adattarlo alla tua community e caricalo come file personalizzato
  • Struttura i file personalizzati secondo la specifica: titolo H1, blockquote di riepilogo, quindi sezioni H2 con elenchi di link, utilizzando una sezione Optional per i link secondari
  • Combina llms.txt con i controlli del crawler. Per regolare l’accesso automatizzato, configura le impostazioni slow_down_crawler_user_agents e slow_down_crawler_rate (Admin → Settings → Security)
  • Ricorda che llms.txt descrive il tuo sito, mentre robots.txt controlla l’accesso. Servono scopi diversi e si completano a vicenda

Problemi comuni e soluzioni

Ricevo un 404 su /llms.txt

Questo accade quando non è stato caricato alcun file personalizzato e il predefinito generato non è abilitato. Carica un file personalizzato, abilita il predefinito generato in Admin → Upcoming Changes, o entrambi.

Uso un plugin Generatore di llms.txt e il file principale ha smesso di funzionare

Il core di Discourse serve il percorso /llms.txt, quindi ha la precedenza sui plugin che lo generano. Se fai affidamento sui file generati dinamicamente dal plugin (come un indice completo dei topic), una soluzione pratica è caricare un llms.txt personalizzato minimale che indirizzi gli agenti al contenuto generato dal plugin, ad esempio:

# [Titolo del tuo sito]

Vai su https://yourforum.com/llms-full.txt

Il plugin genera anche file per categoria, per topic e per tag che non sono influenzati.

Ho caricato un file ma /llms.txt restituisce 404

Se il file caricato non può essere letto dall’archiviazione (ad esempio, è mancante da un object store esterno), Discourse restituisce 404 e non fa fallback al documento generato. Ricarica il file per risolvere questo problema.

Il mio sito richiede l’accesso, come si comporta?

Il documento generato funziona comunque: contiene l’avviso di account richiesto e omette i link di scoperta pubblica. Un caricamento personalizzato viene sempre servito invariato. Se vuoi che gli agenti accedano al contenuto, considera come le tue impostazioni di accesso influiscono sulla possibilità di essere indicizzati.

FAQ

Discourse elenca automaticamente tutti i miei topic in llms.txt?

Il predefinito generato non elenca intenzionalmente i singoli topic. È una mappa minima che descrive il tuo sito, dichiara le politiche di accesso e indirizza gli agenti all’interfaccia Discourse MCP e a poche rotte di scoperta.

In quale lingua è il documento generato?

Viene generato nella lingua predefinita del tuo sito (l’impostazione default_locale), indipendentemente dalla lingua della richiesta.

Posso disattivarlo?

Sì. Imposta la modifica su No one in Admin → Upcoming Changes. In alternativa, carica un file personalizzato con il tuo contenuto.

Perché il documento generato fa riferimento a Discourse MCP?

Il server Discourse MCP fornisce strumenti consapevoli dei permessi per topic, post, ricerca, utenti, categorie e azioni di community supportate. È il modo preferito per gli agenti di lavorare con la tua community, quindi una configurazione MCP locale è linkata nella sezione “Interfaccia agente preferita” quando disponibile.

Risorse aggiuntive

14 Mi Piace

Non è possibile che Discourse crei dinamicamente il file llms.txt per il sito? Sembra che questa sarebbe una funzionalità molto più utile e metterebbe in linea con il plugin 🤖 Discourse llms.txt Generator Plugin - #2 by Ivan_Rapekas, con cui questa nuova funzionalità entra in conflitto, sovrascrivendo il percorso /llms.txt e restituendo un errore 404 anche se il plugin è configurato correttamente.

Questa aggiunta alla funzionalità è prevista in qualche punto della roadmap?

5 Mi Piace

La mia soluzione alternativa per questo problema è stata:

  • Creare un file llms.txt in VS Code contenente solo

    Vai a [https://<YOUR-BASEURL>/llms-full.txt](https://<YOUR-BASEURL>/llms-full.txt)
    
  • Caricare questo nella sezione llms.txt del core di Discourse, accessibile tramite admin/config/security?filter=LLMs%20TXT. Salva.

  • Verificare che https://<YOUR-BASEURL>/llms.txt mostri il contenuto del file di testo sopra.

  • Ora, si spera, gli LLM che raggiungono llms.txt verranno indirizzati a navigare verso llms-full.txt, che viene generato dinamicamente da 🤖 Discourse llms.txt Generator Plugin

1 Mi Piace

Guida aggiornata per riflettere le modifiche annunciate in llms.txt generato automaticamente.

3 Mi Piace