Leitfaden

Wie man eine Website agenten-bereit macht

„Agenten-bereit" bedeutet für drei verschiedene Arten von KI-Agenten drei verschiedene Dinge — und sie bauen aufeinander auf. Hier ist genau beschrieben, wie wir diesen Validator agenten-bereit gemacht haben, mit dem Code, den wir ausgeliefert haben, damit Sie das Muster übernehmen können.

Es gibt drei unabhängige Schichten. Jede kann für sich allein eingesetzt werden; zusammen decken sie einen Crawler ab, der Ihre Website liest, einen Agenten, der Ihre UI im Browser steuert, und einen weiteren Agenten, der Sie über das Netzwerk aufruft.

Schicht 1 — llms.txt: Kontext für Crawler

Die Grundlage. Eine einfache Textdatei llms.txt im Stammverzeichnis teilt einem KI-Crawler mit, worum es auf Ihrer Website geht und welche Seiten in welcher Priorität relevant sind. Sie wird zur Abrufzeit gelesen — kein JavaScript, kein Protokoll. Beginnen Sie hier: So erstellen Sie eine solche Datei.

Schicht 2 — WebMCP: Tools für browserinterne Agenten

WebMCP ermöglicht es einer Seite, aufrufbare Tools für einen KI-Agenten bereitzustellen, der im Browser läuft, sodass der Agent eine typisierte Aktion aufruft, anstatt Ihr Formular zu erraten. Es gibt zwei Möglichkeiten, und wir verwenden beide.

Deklarativ — annotieren Sie ein echtes Formular, und der Browser synthetisiert daraus ein Tool:

<form toolname="open_llms_txt_report"
      tooldescription="Validate a site's llms.txt and open its report.">
  <input name="url" toolparamdescription="Domain or URL to validate">
</form>

Imperativ — registrieren Sie ein Tool in JavaScript, das direkt strukturierte Daten zurückgibt:

navigator.modelContext?.registerTool({
  name: "validate_llms_txt",
  description: "Validate a website's llms.txt; returns a 0-100 score and findings.",
  inputSchema: { type: "object", properties: { url: { type: "string" } }, required: ["url"] },
  execute: (input) => fetch("/api/validate?url=" + encodeURIComponent(input.url))
    .then(r => r.json())
    .then(data => ({ content: [{ type: "text", text: JSON.stringify(data) }] }))
});

Schützen Sie den imperativen Aufruf mit if (navigator.modelContext), damit er dort nichts tut, wo WebMCP nicht vorhanden ist. Es handelt sich heute um ein Chrome-Origin-Trial, die tatsächliche Reichweite ist also gering — betrachten Sie es als Zukunftssignal, nicht als Traffic-Quelle.

Schicht 3 — A2A: ein aufrufbarer Agent für andere Agenten

Das Agent2Agent (A2A)-Protokoll ermöglicht es anderen Agenten, Ihren Dienst zu entdecken und aufzurufen. Sie veröffentlichen eine Agent-Karte und stellen ihr einen JSON-RPC-Endpunkt zur Verfügung:

// GET /.well-known/agent-card.json
{
  "name": "llms.txt Validator",
  "url": "https://llms-txt-validator.dev/a2a",
  "skills": [{ "id": "validate_llms_txt", "name": "Validate llms.txt" }]
}

Die url muss auf einen funktionierenden Endpunkt zeigen, der A2A spricht — wir implementieren die synchrone Methode message/send und kapseln dabei dieselbe Validierungslogik als Skill. Die Karte ist ein Vertrag, kein Meta-Tag.

Die eine Regel: Veröffentlichen Sie kein Signal, das Sie nicht einlösen können

Es ist verlockend, eine leere Agent-Karte einzufügen oder falsche Formular-Annotationen hinzuzufügen, um ein Audit grün erscheinen zu lassen. Tun Sie das nicht. Ein Agent, der Ihre Karte abruft und einen toten Endpunkt aufruft — oder ein Tool aufruft, das nichts tut — vertraut Ihnen danach weniger. Jedes Signal hier sollte zu etwas Realem führen. Deshalb meldet dieser Validator ein WebMCP- oder A2A-Signal nur dann als „vorhanden", wenn eine funktionierende Implementierung dahintersteht.

So überprüfen Sie jede Schicht

Weiterlesen

Validiere deine llms.txt →