AgentGrade
EnglishEspañolDeutsch日本語中文
← Wissensdatenbank

llms.txt — LLM-Kontextdatei

Was ist llms.txt?

llms.txt ist eine Klartext-Markdown-Datei im Root deiner Domain (/llms.txt), die deinen Service großen Sprachmodellen in menschenlesbarer Prosa beschreibt. Wo OpenAPI Maschinen eine strukturierte Spezifikation gibt und robots.txt Crawlern sagt, was sie abrufen dürfen, liefert llms.txt einem LLM den narrativen Kontext, den es braucht, um zu verstehen, was dein Service tut, wann ein Agent ihn nutzen sollte und welche Endpunkte zählen — in dem Format, das LLMs ohnehin am besten verarbeiten.

Die Spezifikation wurde im September 2024 von Jeremy Howard (fast.ai, Answer.AI) vorgeschlagen. Sie ist bewusst leichtgewichtig: keine Schema-Validierung, kein JSON-Parsing, keine Versionierung. Eine Markdown-Datei mit einer H1-Überschrift und einer einzeiligen Zusammenfassung. Die Einfachheit ist das Feature — jeder kann in fünf Minuten eine schreiben, und jedes LLM kann sie ohne spezielles Tooling lesen.

Warum llms.txt wichtig ist

LLMs, die das Web durchsuchen, haben ein Triage-Problem. Eine einzelne Seite auf einer modernen Website kann 200 KB HTML umfassen, wobei der Großteil des relevanten Texts hinter JavaScript steckt, das der Fetcher des Agenten nicht rendern kann. Selbst wenn der Agent JS rendern kann, ist das Signal-Rausch-Verhältnis schlecht — Navigation, Werbung, Cookie-Banner und Tracking-Skripte dominieren die Bytes.

llms.txt ist das Gegenteil: ein einzelnes Dokument, Klartext, passt in wenige KB, beginnt mit dem Wesentlichen. Ein Agent, der https://example.com/llms.txt abruft, bekommt:

Das ist der Unterschied zwischen „der Agent muss sich deine Website erst erschließen“ und „der Agent kann mit einem einzigen Abruf entscheiden, ob deine Website relevant ist“. Für Websites, die von ChatGPT, Claude, Perplexity oder anderen Retrieval-Systemen zitiert werden wollen, ist llms.txt die günstigste denkbare Maßnahme.

So funktioniert es

Es gibt keine Protokollverhandlung. Agenten fordern /llms.txt genauso an wie /robots.txt, erwarten text/markdown oder text/plain zurück und parsen das Markdown. Die Datei MUSS mit einer H1-Überschrift beginnen; alles Weitere ist Konvention.

Eine minimale gültige llms.txt:

# Name deines Services

> Einzeiler: Was der Service tut.

## Overview

Wofür dein Service da ist, in 2-3 Sätzen. Beginne mit dem Use Case,
der einen Agenten interessiert, nicht mit deiner Firmengeschichte.

## Endpoints

- `GET /api/search?q=` — Katalog durchsuchen (kostenlos)
- `POST /api/order` — Bestellung aufgeben (kostenpflichtig: x402)
- `GET /api/status` — Health-Check (kostenlos)

## Authentication

Kostenlose Endpunkte brauchen keine Auth. Kostenpflichtige Endpunkte
liefern HTTP 402 mit einer x402-Payment-Challenge. Abwicklung in USDC
auf Base.

## Examples

Nach Schuhen suchen:
  GET /api/search?q=shoes

Bestellung aufgeben:
  POST /api/order {"sku": "ABC123", "qty": 1}

Das ist die gesamte Spezifikation. Überschriften jenseits der H1 sind optional. Aufzählungen, Fenced Code Blocks und Links funktionieren, weil sie Markdown sind — Agenten parsen sie mit der Markdown-Bibliothek, die sie ohnehin verwenden.

llms.txt im Vergleich zu anderen agentenlesbaren Dateien

DateiZweckFormatWer liest sie
/llms.txtNarrativer Kontext für LLMsMarkdownLLMs, browsende Agenten
/llms-full.txtKompletter Textkorpus, eine DateiMarkdown / KlartextRAG-Pipelines, eingebettete Agenten
/robots.txtCrawl-BerechtigungenKlartext-DirektivenCrawler, Bots
/sitemap.xmlURL-Index für CrawlerXMLSuchmaschinen
/openapi.jsonProgrammatische API-SpezifikationJSON/YAMLCodegeneratoren, API-Clients
/.well-known/mcpTool-Server-ProtokollJSON-RPCMCP-fähige Agenten

llms.txt ersetzt keine dieser Dateien — es füllt die Lücke zwischen robots.txt (Maschinen-Direktiven) und OpenAPI (Maschinen-Spezifikationen) mit einer Ebene, die für die Sprachmodelle optimiert ist, die verstehen müssen, wofür deine Website da ist.

Der Begleiter: llms-full.txt

Die llmstxt.org-Spezifikation definiert eine optionale Schwesterdatei: llms-full.txt. Die Konvention ist dieselbe — Markdown, im Root ausgeliefert — aber der Inhalt unterscheidet sich. llms.txt ist das Verzeichnis (ein kurzer Überblick mit Verweisen). llms-full.txt ist der Korpus (der komplette konkatenierte Textinhalt deiner Website in einer einzigen Datei).

Warum beide? Zwei verschiedene Konsumenten:

Liefere beide aus, wenn du kannst. llms.txt ist das Schaufenster; llms-full.txt ist die Wissensbasis.

Wer llms.txt veröffentlicht

Die Verbreitung ist breit — quer durch AI-Infrastruktur, Developer-Tools und Content-Plattformen:

Das Muster, das sich herausgebildet hat: Doku-Plattformen veröffentlichen llms.txt für ihre Dokumentation, Produkt-Websites für ihre API-Oberfläche. Beides ist nützlich — Agenten, die ein Produkt zum ersten Mal entdecken, lesen die Marketing-llms.txt und tauchen dann in die Doku-llms.txt ein, wenn sie Integrationsdetails brauchen.

So fügst du llms.txt zu deinem Service hinzu

1. Entscheide, was ein Agent wissen muss

Lass alles weg, was ein Agent nicht braucht: Firmengeschichte, Designphilosophie, Marketingtexte. Beginne damit, was der Service tut und welche Endpunkte existieren. Wenn du die Zusammenfassung nicht in einem Satz schreiben kannst, ist dein Service zu breit — teile ihn auf.

2. Schreibe die Datei

Lege /llms.txt als reines Markdown an. Pflicht: eine H1-Überschrift in der ersten Zeile und eine Blockquote-Zusammenfassung. Empfohlen: ein „Endpoints“-Abschnitt, ein „Authentication“-Abschnitt und 2-3 Beispiel-Requests. Halte die gesamte Datei unter 10 KB.

3. Liefere sie im Root aus

Die Datei MUSS unter /llms.txt liegen — nicht /.well-known/llms.txt, nicht /docs/llms.txt. Agenten fragen direkt den Root ab. Bei den meisten Static-Site-Hosts reicht es, die Datei in public/ oder static/ abzulegen, und sie wird unverändert ausgeliefert.

Setze Content-Type: text/markdown oder text/plain. Manche Agenten lehnen application/octet-stream ab.

4. Verlinke sie von deiner Startseite

Füge einen rel="alternate"-Link in deinen HTML-Head ein, damit Agenten und Crawler sie entdecken:

<link rel="alternate" type="text/markdown" href="/llms.txt" title="LLM-freundliche Beschreibung">

5. Liefere auch llms-full.txt aus

Konkateniere deine Doku-Seiten zu einer einzigen Markdown-Datei unter /llms-full.txt. Die meisten Doku-Generatoren können das ausgeben. Wenn du es selbst baust, reicht ein Build-Schritt, der deine Markdown-Quellen durchläuft und mit H1-Trennern zusammenfügt.

Häufige Fehler und Debugging

AgentGrades Scanner ruft /llms.txt direkt ab und prüft, ob die Datei existiert, mit einer H1 beginnt und nicht-trivialen Inhalt hat.

Häufig gestellte Fragen

Ist llms.txt dasselbe wie robots.txt?

Nein. robots.txt sind Direktiven für Crawler (welche URLs sie abrufen dürfen). llms.txt ist Kontext für LLMs (was dein Service ist und wie man ihn nutzt). Eine Website kann und sollte beides veröffentlichen.

Lesen Suchmaschinen llms.txt?

Manche, informell. Google hat sich zu nichts Offiziellem verpflichtet. Die Hauptkonsumenten sind LLM-gestützte Tools — ChatGPT-Browsing, Claude mit Websuche, Perplexity, Cursors @web —, die llms.txt abrufen, wenn sie deinen Service zusammenfassen oder zitieren.

Sollte ich llms.txt von Hand schreiben oder generieren?

Schreibe die Top-Level-llms.txt von Hand — sie ist kurz (10-50 Zeilen) und das redaktionelle Urteil zählt. Generiere llms-full.txt aus deiner Doku-Build-Pipeline — sie ist lang und mechanisch.

Was, wenn mein Service kostenpflichtige Endpunkte hat?

Beschreibe die Zahlung in Prosa („Kostenpflichtige Endpunkte liefern HTTP 402 mit einer x402-Payment-Challenge“). Versuche nicht, Zahlungs-Metadaten in llms.txt zu codieren — dafür gibt es x402 und x-payment-info in OpenAPI.

Ersetzt llms.txt OpenAPI?

Nein. OpenAPI ist eine strikte Maschinen-Spezifikation — Codegeneratoren konsumieren sie direkt. llms.txt ist narrativ — LLMs lesen sie, um die Absicht zu verstehen. Liefere beides aus: OpenAPI fürs Tooling, llms.txt für den Kontext.

Wie unterscheidet sich llms.txt von einer SKILL.md?

SKILL.md ist instruktiv — ein Playbook, dem der Agent folgt, um eine Aufgabe zu erledigen. llms.txt ist deskriptiv — Kontext darüber, wofür der Service da ist. SKILLs leben in Agent-Runtimes (Claude Code, Cursor etc.) und sagen einem Agenten, wie er arbeiten soll. llms.txt liegt auf deiner Website und sagt jedem LLM, was du bist.

Muss die Datei Markdown sein?

Die Spezifikation sagt Markdown. In der Praxis funktioniert auch Klartext — die meisten LLMs ignorieren Markdown-Syntax ohnehin. Aber Markdown ist das empfohlene Format, weil die Überschriften Struktur geben, mit der Agenten direkt zum relevanten Abschnitt springen können.

Hilft eine veröffentlichte llms.txt meinem SEO?

Indirekt. Klassische Suchmaschinen ranken Seiten nicht nach llms.txt-Präsenz. Aber AI Overviews, Perplexity, die ChatGPT-Suche und Bings generative Antworten zitieren zunehmend Quellen — und eine klare, gut strukturierte llms.txt macht dich zu einer besser zitierbaren Quelle. Das ist GEO (Generative Engine Optimization), die AEO-verwandte Praxis, die sich neben der LLM-gestützten Suche etabliert hat.

Reifegrad der Spezifikation

Community-Standard. Definiert auf llmstxt.org von Jeremy Howard, September 2024. Kein formales Gremium, aber breit adoptiert von großen AI-Infrastruktur-Anbietern (Anthropic, Cloudflare, Stripe, Vercel) und Doku-Plattformen (Mintlify, Docusaurus). Die Spezifikation ist kurz und stabil — es sind keine Breaking Changes zu erwarten.

Mehr erfahren

Querverweise

Wenn deine Website auch OpenAPI, MCP, SKILL.md, x402, A2A oder WebMCP ausliefert, erwähne sie in llms.txt. Der Sinn von llms.txt ist, das eine Dokument zu sein, das ein Agent liest, um zu erfahren, was dein Service bietet — wenn die Lektüre nicht verrät, dass du eine kostenpflichtige API oder einen MCP-Endpunkt hast, muss der Agent Well-Known-Pfade auf gut Glück abklopfen. Die meisten tun das nicht.

Ein guter Querverweis ist ein einzeiliges Bullet mit der URL, die der Agent abrufen kann:

Ein eigener Abschnitt ist nicht nötig — Erwähnungen im Fließtext zählen. AgentGrades Scan erzeugt einen optionalen Unter-Check pro Ressource, die deine Website exponiert: Wenn der Scanner deinen /mcp-Endpunkt gefunden hat, aber llms.txt das Wort „mcp“ nie erwähnt, ist das ein Soft Fail, der die Lücke markiert.

Das sind optionale Checks: Sie senken deinen Gesamtscore nicht, zeigen aber, wo deine llms.txt für die Agenten, die sie lesen, weniger nützlich ist, als sie sein könnte.

Markdown-Struktur

Die llms.txt-Spezifikation verlangt nur eine H1, aber eine Datei mit bloß einem Titel bringt einem Agenten nichts bei. AgentGrades Markdown-Struktur-Check bestätigt, dass die Datei mindestens eines von drei Struktursignalen enthält, mit denen ein Agent etwas anfangen kann:

  1. Eine Liste von Markdown-Links — mindestens drei Bullets in der Form - [Title](url). Das ist die Doku-Verzeichnis-Form, die Anthropic, Stripe, Cloudflare, Vercel, Mintlify und die meisten Plattform-llms.txt-Dateien verwenden. Jeder Link zeigt dem Agenten echten Inhalt, den er abrufen und lesen kann.
  2. Ein Fenced Code Block — alles in dreifachen Backticks. Ein curl-Beispiel, eine Beispiel-JSON-Antwort, ein Snippet zur Authentifizierung. Das ist die API-Oberflächen-Form: Eine Datei beschreibt einen Service mit einem funktionierenden Beispiel.
  3. Ein benannter operativer Abschnitt — eine H2-Überschrift wie ## Endpoints, ## API, ## Routes, ## Authentication, ## Examples, ## Usage oder ## Quick Start. Diese Namen signalisieren „das ist operativer Inhalt für Agenten“ statt Marketingprosa.

Eines der drei reicht zum Bestehen. Die meisten sauberen llms.txt-Dateien erfüllen mindestens zwei — die Datei von agentgrade.com etwa hat Link-Bullets im Knowledge-Base-Abschnitt und einen ## Example-Abschnitt und einen curl-Fence.

Was durchfällt

Ein Marketing-Footer, verkleidet als llms.txt:

# Acme

> We make great products.

## Product

- Home
- About
- Pricing

## Legal

- Terms
- Privacy

Fünfzehn Zeilen, besteht den alten Zeilenzähler-Check, aber: keine Markdown-Links (die Bullets sind reine Textlabels), kein Codeblock, kein operativer Abschnitt. Ein Agent lernt daraus, dass Acme existiert und Seiten hat — aber nichts, wohin er navigieren kann. Fällt beim Markdown-Struktur-Check durch.

Warum Links zählen

llms.txt ist eine Routing-Datei, keine Content-Datei (dafür gibt es llms-full.txt). Ihr Job ist, Agenten auf die URLs zu verweisen, die sie als Nächstes abrufen sollen. Reine Text-Bullets wie - About geben dem Agenten ein Label ohne URL — er kann der Spur nicht folgen. Ein Markdown-Link wie - [About](/about) — company background liefert eine URL plus einen Einzeiler, sodass er entscheiden kann, ob sich der Abruf lohnt.

Der einfachste Fix, wenn dieser Check fehlschlägt: Mach aus deinen Text-Bullets Markdown-Links, oder ergänze ein Fenced-Beispiel, das einem Agenten zeigt, wie er deinen Service aufruft.