XML-Tags: Lange Prompts so strukturieren, dass das Modell nicht den Faden verliert
Wenn du einen Prompt in den Chat einfügst, geht die visuelle Formatierung verloren. XML-Tags kodieren die Struktur im Text selbst und machen lange Prompts und Beispiele klarer und konsistenter.
XML-Tags verwandeln einen flachen Block aus Anweisungen in klar abgegrenzte Abschnitte, die ein LLM präziser interpretieren kann. Am nützlichsten sind sie bei langen Prompts und Prompts mit mehreren Beispielen (Few-Shot Prompting), weil sie Mehrdeutigkeit verringern und die Ergebnisse konsistenter machen.
Das Problem: Visuelle Formatierung reicht nicht
In Google Docs oder Word machen Überschriften, Listen und Einrückungen deinen Prompt für dich leicht lesbar. Fügst du ihn aber in einen KI-Chat ein, geht der Großteil dieser Formatierung verloren: Das Modell erhält einen flachen Textblock, nicht die Hierarchie, die du gesehen hast.
Im Kurs verlor ein Few-Shot-Prompt mit Tweets mit hohem und niedrigem Engagement beim Einfügen in Claude seine Zeilenumbrüche und seine Struktur.
Was ist ein XML-Tag?
Eine Markierung, die abgrenzt, wo ein Informationsblock beginnt und endet, damit das Modell weiß, was zu was gehört. XML ist der Vorfahre von HTML, das entwickelt wurde, um Informationen im Internet zu strukturieren. Jedes Tag funktioniert wie ein Container mit einer öffnenden und einer schließenden Markierung.
Die Syntax besteht aus drei Schritten: mit < + einem beschreibenden Wort + > öffnen, den Inhalt einfügen und mit </ + demselben Wort + > schließen.
<beispiele>
...Inhalt...
</beispiele>Regeln und bewährte Praktiken
- Wähle beschreibende Namen: Das Wort im Tag wird Teil des Prompts. <tweet> ist klar; <vögelchen> kann das Modell verwirren.
- Verwende Bindestriche statt Leerzeichen in mehrteiligen Tags: <tweet-mit-hohem-engagement>.
- Öffnendes und schließendes Tag müssen identisch sein (bis auf das /).
- Verschachtelung ist erlaubt, aber schließe in der richtigen Reihenfolge: Das innerste Tag schließt zuerst.
- Schließe jedes Tag genau dort, wo der Block endet, nicht davor und nicht danach.
Was, wenn ich ein Tag nicht schließe?
Es gibt keine Fehlermeldung, denn du programmierst ja nicht. Aber das Modell kann annehmen, dass alles Folgende zu diesem Tag gehört, wodurch die Wahrscheinlichkeit steigt, dass es die Muster in deinen Beispielen übersieht oder zu halluzinieren beginnt.
XML bei Few-Shot
Strukturiere deinen Prompt mit drei Ebenen verschachtelter Tags: ein allgemeiner Container (<beispiele>), ein Kategorie-Container pro Beispiel (<tweet-mit-hohem-engagement> / <tweet-mit-niedrigem-engagement>) und darin der eigentliche Inhalt jedes Tweets.
<beispiele>
<tweet-mit-hohem-engagement>
...Tweet-Inhalt...
</tweet-mit-hohem-engagement>
<tweet-mit-niedrigem-engagement>
...Tweet-Inhalt...
</tweet-mit-niedrigem-engagement>
<tweet-mit-hohem-engagement>
...Tweet-Inhalt...
</tweet-mit-hohem-engagement>
</beispiele>Warum Beispiele mit hohem und niedrigem Engagement mischen? Wechselt man sie zufällig ab, lernt das Modell eher, was jede Kategorie tatsächlich ausmacht, statt eine Kategorie mit ihrer Position in der Liste zu verknüpfen. Da jedes Beispiel sein eigenes Label trägt, kannst du sie frei umsortieren, ohne Informationen zu verlieren.
Halte den Prompt für Menschen lesbar
Ein Prompt voller Tags kann für dich und dein Team schwer lesbar sein. Füge in deinem Arbeitsdokument visuelle Formatierung hinzu: Sie beeinflusst das Modell nicht.
- Rücke verschachtelte Container ein, um zu sehen, wo jeder Block beginnt und endet.
- Färbe jeden Tag-Typ ein, um sie schnell zu unterscheiden.
- Behalte Zeilenumbrüche innerhalb der Beispiele bei, wenn das Format des Inhalts wichtig ist (z. B. bei einem Tweet).
Ein farbig eingefärbter und eingerückter Prompt wird von Claude genauso interpretiert wie die schlichte Version: Die visuelle Formatierung ist nur für Menschen.
Wann Prompts außerhalb des KI-Chats schreiben
Für kurze Anfragen ist es in Ordnung, direkt im Chat zu tippen. Lange oder strukturierte Prompts (Beispiele, mehrere Abschnitte) schreibst du zuerst in einem Dokument. Drückst du versehentlich Enter, sendest du eine unvollständige Nachricht und verlierst deine Arbeit; mit Shift + Enter bekommst du einen Zeilenumbruch ohne Senden.
- Entwirf den Prompt in einem Dokument.
- Bitte jemanden ohne Vorwissen, ihn zu lesen und dir zu sagen, was er verstanden hat.
- Verfeinere, bis er klar ist.
- Kopiere, füge ein und führe ihn in deinem bevorzugten LLM aus.
So behältst du deinen Gedankengang, arbeitest leichter mit deinem Team zusammen und machst weniger Fehler, wenn die Prompts wachsen.
Wichtigste Erkenntnisse
- XML-Tags bewahren die Struktur, die visuelle Formatierung beim Einfügen verliert.
- Beschreibende Namen, mit Bindestrichen und beim Öffnen und Schließen identisch.
- Verschachtelung ist erlaubt; immer in umgekehrter Reihenfolge schließen.
- Ein ungeschlossenes Tag erzeugt keinen Fehler, aber das Modell kann falsch interpretieren oder halluzinieren.
- Beschrifte bei Few-Shot jedes Beispiel mit seiner Kategorie und mische dann die Reihenfolge.
- Einrückungen und Farben sind nur für dich; das Modell ignoriert sie.