Natives LLMs.txt-Support in Discourse aktivieren

:bookmark: Dieser Leitfaden erklärt, wie du deine Community für KI-Agenten und LLM-Crawler erkennbar und nutzbar machst, indem du den llms.txt-Standard nutzt. Er behandelt sowohl das automatisch generierte Standarddokument als auch hochgeladene benutzerdefinierte Dateien.

:person_raising_hand: Erforderliche Benutzerrolle: Administrator

Zusammenfassung

Discourse bietet native Unterstützung für den llms.txt-Standard, eine vorgeschlagene Konvention zur Bereitstellung einer für LLMs (Large Language Models) geeigneten Übersicht einer Website. Stelle dir das wie „robots.txt für KI“ vor: eine kleine Markdown-Datei unter /llms.txt, die großen Sprachmodellen (LLMs) und KI-Agenten hilft zu verstehen, worum es auf deiner Website geht und wie sie darauf verantwortungsvoll zugreifen können.

Du kannst zwischen zwei Ansätzen wählen oder sie kombinieren:

  1. Lass Discourse ein Standarddokument automatisch aus deinen Website-Einstellungen generieren
  2. Lade eine eigene benutzerdefinierte llms.txt-Datei hoch, um die volle Kontrolle über den Inhalt zu haben

Ein benutzerdefinierter Upload hat immer Vorrang vor dem generierten Dokument.

Was ist llms.txt?

llms.txt ist ein vorgeschlagener Standard, der eine kuratierte, agentenfreundliche Landkarte einer Website bereitstellt. Sie wird unter der Website-Root (/llms.txt) ausgeliefert und folgt einem präzisen Markdown-Format:

  • Eine H1-Überschrift mit dem Namen der Website (der einzige obligatorische Abschnitt)
  • Ein Zitatblock (blockquote) mit einer kurzen Zusammenfassung
  • Optionale Markdown-Abschnitte mit weiteren Details
  • Durch H2 abgegrenzte Abschnitte, die Listen nützlicher Links enthalten

Im Gegensatz zu sitemap.xml, das Seiten für Suchmaschinen auflistet, ist llms.txt eine knappe Übersicht, die in den Kontextfenster eines LLMs passen soll. Die Details befinden sich hinter den Links, die nur abgerufen werden, wenn sie benötigt werden.

Ab Discourse v2026.1.0 kann Discourse llms.txt von der Website-Root ausliefern.

Wie Discourse /llms.txt ausliefert

Discourse verarbeitet Anfragen an /llms.txt in dieser Reihenfolge:

  1. Wenn du eine benutzerdefinierte Datei hochgeladen hast, liefert Discourse sie unverändert als text/plain aus
  2. Wenn keine benutzerdefinierte Datei hochgeladen wurde und das generierte Standarddokument aktiviert ist, generiert und liefert Discourse das Dokument aus
  3. Andernfalls gibt Discourse einen 404-Fehler zurück

Das generierte Dokument ist für anonyme Besucher und angemeldete Benutzer identisch und wird nicht von login required-Umleitungen beeinflusst.

Das generierte Standarddokument

Wenn keine benutzerdefinierte Datei hochgeladen wurde und die Funktion aktiviert ist, erstellt Discourse ein knappes Dokument, das die bestehenden Einstellungen deiner Website und die Standard-Sprache der Website verwendet. Es enthält:

  • Den Seitentitel (aus der title-Einstellung), wobei der Hostname als Fallback dient
  • Einen Zusammenfassungs-Zitatblock, der deine site_description verwendet, oder short_site_description als Fallback
  • Eine Menschen-Community-Richtlinie, die festlegt, dass die Website für menschliche Diskussionen bestimmt ist und Agenten nur schreiben dürfen, wenn ein Mensch sie ausdrücklich dazu auffordert
  • Eine Agenten-Zugriffsrichtlinie, die Agenten auffordert, nur das abzurufen, was sie benötigen, robots.txt und Crawler-Steuerungen zu respektieren und HTTP 429 mit dem Retry-After-Intervall zu beachten
  • Einen Discourse-MCP-Verweis, der Agenten auf den Discourse MCP Server als bevorzugte, berechtigungsbewusste Schnittstelle verweist
  • Einen Abschnitt Bevorzugte Agentenschnittstelle mit dem Discourse-MCP-Setup-Link
  • Einen Abschnitt Öffentlicher Webzugriff mit Links zu /search, /filter, /latest und /categories sowie zu /sitemap.xml, wenn die enable_sitemap-Einstellung aktiviert ist
  • Einen Optionale Abschnitt mit Links zu /about, /guidelines, /tos und /privacy

Wenn auf deiner Website login_required aktiviert ist, fügt das Dokument einen Hinweis hinzu, dass Inhalte nur für authentizierte Mitglieder verfügbar sind, und lässt die oben beschriebenen öffentlichen Entdeckungslinks aus. Die Links sind basispfad-bewusst, funktionieren also auch korrekt bei Installationen in Unterordnern.

Die Ankündigung und die Diskussion des generierten Templates findest du unter Automatisch generiertes llms.txt. Meta selbst liefert derzeit eine benutzerdefinierte, website-spezifische Datei aus.

Das generierte Standarddokument aktivieren

Das generierte Standarddokument wird über das Upcoming Changes-System als Beta-Änderung ausgeliefert, die Administratoren aktivieren oder deaktivieren können.

  1. Gehe zu Admin → Konfigurieren → Upcoming Changes oder besuche /admin/config/upcoming-changes
  2. Finde die Änderung, die ein Standard-/llms.txt generiert, wenn keine benutzerdefinierte Datei hochgeladen wurde
  3. Wähle im Dropdown Aktiviert für die Option Alle, um es für alle Besucher zu aktivieren
  4. Um es zu deaktivieren, wähle Niemanden aus

Förderungen (Promoted changes) erscheinen hier automatisch, wenn sie bereit sind, und Administratoren werden im Dashboard benachrichtigt. Wenn du bevorzugst, dass überhaupt keine llms.txt-Datei ausgeliefert wird, setze diese Änderung auf Niemanden oder lade eine minimale benutzerdefinierte Datei hoch.

Benutzerdefinierte llms.txt hochladen

Wenn du den Inhalt genau steuern möchtest, kannst du eine eigene Datei hochladen.

  1. Erstelle eine llms.txt-Datei im .txt- oder .md-Format (maximale Dateigröße ist 512 KB)
  2. Gehe zu Admin → Einstellungen → Sicherheit oder besuche /admin/config/security und suche nach LLMs TXT
  3. Lade deine Datei hoch und speichere die Konfiguration

Sobald konfiguriert, liefert Discourse deine Datei unverändert unter folgender Adresse aus:

https://yourforum.com/llms.txt

Für Hinweise zur Syntax und zum Format siehe llmstxt.org. Ein benutzerdefinierter Überschreibt immer das generierte Dokument. Als Referenz kannst du Meta’s Datei ansehen.

Einrichtung überprüfen

Du kannst prüfen, was Agenten sehen werden, indem du die Datei im Browser oder mit curl anforderst:

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

Best Practices

  • Halte die Datei knapp. llms.txt ist eine Landkarte, kein Manifest; jedes Token kostet Kontext, und eine riesige Datei führt zu verwirrten Agenten und schlechteren Ergebnissen
  • Liefere das generierte Standarddokument nur aus, wenn dessen Inhalt deinen Richtlinien entspricht. Wenn du andere Formulierungen brauchst, kopiere den generierten Text, passe ihn an deine Community an und lade ihn als benutzerdefinierte Datei hoch
  • Strukturieren benutzerdefinierte Dateien gemäß der Spezifikation: H1-Titel, Zitatblock-Zusammenfassung, dann H2-Abschnitte mit Linklisten, wobei ein Optional-Abschnitt für sekundäre Links verwendet wird
  • Kombiniere llms.txt mit Crawler-Steuerungen. Um den automatisierten Zugriff anzupassen, konfiguriere die Einstellungen slow_down_crawler_user_agents und slow_down_crawler_rate (Admin → Einstellungen → Sicherheit)
  • Denke daran, dass llms.txt deine Website beschreibt, während robots.txt den Zugriff steuert. Sie erfüllen verschiedene Zwecke und ergänzen sich gegenseitig

Häufige Probleme und Lösungen

Ich erhalte einen 404 unter /llms.txt

Das passiert, wenn keine benutzerdefinierte Datei hochgeladen wurde und das generierte Standarddokument nicht aktiviert ist. Lade eine benutzerdefinierte Datei hoch, aktiviere das generierte Standarddokument unter Admin → Upcoming Changes oder beides.

Ich verwende ein llms.txt-Generator-Plugin und die Hauptdatei funktioniert nicht mehr

Discourse Core liefert den Pfad /llms.txt aus, daher hat er Vorrang vor Plugins, die ihn generieren. Wenn du dich auf die dynamisch generierten Dateien des Plugins verlässt (wie einen vollständigen Themenindex), ist ein praktischer Workaround, eine minimale benutzerdefinierte llms.txt hochzuladen, die Agenten auf den vom Plugin generierten Inhalt verweist, zum Beispiel:

# [Dein Seitentitel]

Gehe zu https://yourforum.com/llms-full.txt

Das Plugin generiert auch Dateien pro Kategorie, pro Thema und pro Tag, die nicht betroffen sind.

Ich habe eine Datei hochgeladen, aber /llms.txt gibt 404 zurück

Wenn die hochgeladene Datei nicht aus dem Speicher gelesen werden kann (z. B. weil sie in einem externen Objektspeicher fehlt), gibt Discourse 404 zurück und fällt nicht auf das generierte Dokument zurück. Lade die Datei erneut hoch, um dies zu beheben.

Meine Website erfordert eine Anmeldung, wie verhält sich das?

Das generierte Dokument funktioniert weiterhin: Es enthält den Hinweis zur erforderlichen Kontos und lässt öffentliche Entdeckungslinks aus. Ein benutzerdefinierter Upload wird immer unverändert ausgeliefert. Wenn du möchtest, dass Agenten auf Inhalte zugreifen, überlege, wie deine Anmeldeeinstellungen die Crawlfähigkeit beeinflussen.

FAQs

Listet Discourse automatisch alle meine Themen in llms.txt auf?

Das generierte Standarddokument listet absichtlich keine einzelnen Themen auf. Es ist eine minimale Landkarte, die deine Website beschreibt, Zugriffsrichtlinien angibt und Agenten auf die Discourse-MCP-Schnittstelle und einige Entdeckungswege verweist.

In welcher Sprache ist das generierte Dokument?

Es wird in der Standardsprache deiner Website (die default_locale-Einstellung) generiert, unabhängig von der Sprache der Anfrage.

Kann ich mich ausschließen?

Ja. Setze die Änderung unter Admin → Upcoming Changes auf Niemanden. Alternativ lade eine benutzerdefinierte Datei mit deinem eigenen Inhalt hoch.

Warum verweist das generierte Dokument auf Discourse MCP?

Der Discourse-MCP-Server bietet berechtigungsbewusste Tools für Themen, Beiträge, Suche, Benutzer, Kategorien und unterstützte Community-Aktionen. Er ist der bevorzugte Weg für Agenten, mit deiner Community zu arbeiten, daher wird bei Verfügbarkeit ein Link zu einem lokalen MCP-Setup im Abschnitt „Bevorzugte Agentenschnittstelle“ angezeigt.

Zusätzliche Ressourcen

14 „Gefällt mir“

Ist es für Discourse nicht möglich, die llms.txt-Datei dynamisch für die Seite zu erstellen? Das wäre ein weitaus nützlicheres Feature und würde es mit dem 🤖 Discourse llms.txt Generator Plugin - #2 by Ivan_Rapekas in Einklang bringen, mit dem dieses neue Feature kollidiert, indem es den Pfad /llms.txt überschreibt und eine 404 zurückgibt, selbst wenn das Plugin korrekt konfiguriert ist.

Ist diese Erweiterung des Features irgendwo auf der Roadmap geplant?

5 „Gefällt mir“

Mein Workaround für dieses Problem war:

  • Erstellen Sie eine llms.txt-Datei in VS Code, die nur Folgendes enthält:

    Gehen Sie zu [https://<YOUR-BASEURL>/llms-full.txt](https://<YOUR-BASEURL>/llms-full.txt)
    
  • Laden Sie dies im Abschnitt llms.txt des Discourse-Kerns unter admin/config/security?filter=LLMs%20TXT hoch. Speichern.

  • Testen Sie, ob https://<YOUR-BASEURL>/llms.txt den Inhalt der obigen Textdatei anzeigt.

  • Hoffentlich werden LLMs, die bei llms.txt eintreffen, dazu geleitet, zur llms-full.txt zu navigieren, die dynamisch von 🤖 Discourse llms.txt Generator Plugin generiert wird.

1 „Gefällt mir“

Anleitung aktualisiert, um die in Automatisch generierte llms.txt angekündigten Änderungen widerzuspiegeln.

3 „Gefällt mir“