Würden Sie mit jemandem sprechen, der nach jedem einzelnen Satz alles vergisst. Jede Antwort, die Sie erhalten, basiert dann ausschließlich auf dem, was Sie in diesem Moment sagen – plus dem, was diese Person grundsätzlich weiß. Aber an Ihre letzte Frage? Keine Erinnerung. An den Kontext Ihres Gesprächs? Ausgelöscht.
Willkommen in der Welt der Large Language Models.
Denn genau so funktionieren sie. Ein LLM hat kein Gedächtnis. Es gibt keine Konversationshistorie, die irgendwo gespeichert wird. Es gibt kein „Du hast mir doch gerade eben gesagt…” aus Sicht des Modells. Jeder Aufruf ist ein isoliertes Ereignis. Ein einmaliger Durchlauf durch die Gewichtungsmatrizen. Danach ist alles vergessen.
Was Sie als Konversation erleben – diese scheinbar kohärente Unterhaltung mit ChatGPT, Claude oder einem anderen System – ist eine Illusion. Eine gut konstruierte, aber dennoch: eine Illusion. Und der Mechanismus dahinter heißt: Prompt.
Ein Prompt ist die vollständige Eingabe, die Sie einem LLM übergeben. Alles, was das Modell sieht. Alles, worauf es reagieren kann. Es ist nicht nur Ihre aktuelle Frage. Es ist die gesamte Informationsgrundlage für diesen einen Aufruf.
Wenn Sie in einem Chatfenster tippen: „Wie ist das Wetter heute?“, dann ist das für Sie die Frage. Für das Modell ist der Prompt aber vermutlich erheblich länger. Er könnte so aussehen:
Du bist ein hilfreicher Assistent. Antworte präzise und freundlich.
Benutzer: Hallo, ich brauche Hilfe bei Python.
Assistent: Natürlich, gerne! Was kann ich für dich tun?
Benutzer: Wie sortiere ich eine Liste?
Assistent: Du kannst die sorted()-Funktion verwenden...
Benutzer: Wie ist das Wetter heute?
Sehen Sie den Unterschied? Ihre Eingabe sind fünf Wörter. Der Prompt ist die gesamte bisherige Konversation, eingeleitet durch eine Systemanweisung. Das Modell sieht nicht nur Ihre aktuelle Frage – es sieht den vollständigen Kontext, weil dieser bei jedem Aufruf neu mitgeschickt wird.
Das ist der Trick. Das ist, wie Konversation simuliert wird. Nicht durch Erinnerung, sondern durch ständiges Wiederholen dessen, was vorher war.
Ein Prompt ist keine freie Texteingabe. Zumindest nicht, wenn Sie professionell damit arbeiten wollen. Ein Prompt ist eine strukturierte Anweisung an ein statistisches System. Eine Programmieroberfläche. Ein Steuerelement.
Denken Sie an einen HTTP-Request. Der enthält auch nicht nur die URL, sondern Headers, Authentifizierung, Parameter, Body. Ähnlich verhält es sich mit einem Prompt. Er kann aus mehreren Ebenen bestehen, die unterschiedliche Funktionen erfüllen:
Die Systemebene definiert die grundlegende Rolle und das Verhalten des Modells. Hier steht, was das Modell sein soll. Ein Übersetzer? Ein Code-Reviewer? Ein sachlicher Erklärer? Diese Anweisungen haben oft mehr Gewicht als spätere Benutzereingaben, weil sie den Kontext für alles Folgende setzen.
Die Kontextebene liefert Informationen, die das Modell für die Beantwortung braucht. Das können frühere Nachrichten sein, hochgeladene Dokumente, Datenbankeinträge, API-Responses. Alles, was nicht im Trainingswissen des Modells enthalten ist, muss hier rein. Das Modell kann nicht „nachschlagen”. Es kann nur mit dem arbeiten, was im Prompt steht.
Die Instruktionsebene gibt konkrete Anweisungen für die aktuelle Aufgabe. „Fasse den folgenden Text zusammen”, „Extrahiere alle Datumsangaben”, „Schreibe einen Unittest für diese Funktion”. Hier wird definiert, was das Modell mit dem Kontext tun soll.
Die Beispielebene zeigt dem Modell, wie die Ausgabe aussehen soll. Few-Shot-Learning nennt sich das – Sie geben zwei, drei Beispiele, und das Modell generalisiert daraus ein Muster. Das funktioniert erstaunlich gut, weil das Modell trainiert wurde, Muster zu erkennen und fortzuführen.
Und dann, am Ende, steht oft noch die eigentliche Benutzereingabe. Die Frage, die beantwortet werden soll. Das Problem, das gelöst werden soll. Der Text, der verarbeitet werden soll.
All das zusammen ist der Prompt.
Hier wird es praktisch. Denn minimale Änderungen im Prompt können zu drastisch unterschiedlichen Ergebnissen führen. Nicht weil das Modell launisch wäre, sondern weil es statistisch auf Muster reagiert.
Betrachten Sie diese beiden Prompts:
Prompt A:
Erkläre mir Rekursion.
Prompt B:
Du bist ein erfahrener Informatikdozent. Erkläre einem Studenten im
zweiten Semester das Konzept der Rekursion. Verwende ein konkretes
Code-Beispiel in Python und erkläre Schritt für Schritt, was passiert.
Beide Prompts fragen nach demselben Konzept. Aber die Antworten werden völlig unterschiedlich ausfallen. Warum? Weil Prompt B viel mehr Kontext liefert. Er aktiviert andere Token-Muster. „Informatikdozent” triggert formale, didaktische Sprache. „Zweites Semester” signalisiert ein bestimmtes Niveau. „Schritt für Schritt” fordert Struktur. „Python” schränkt die Sprachauswahl ein.
Das Modell hat all diese Muster in seinen Gewichtungen kodiert. Es hat gesehen, wie Dozenten erklären. Es hat Code-Tutorials gelesen. Es hat didaktische Texte verarbeitet. Und wenn Sie diese Muster im Prompt aktivieren, werden sie in der Ausgabe reproduziert.
Das ist keine Magie. Das ist Mustererkennung.
Nehmen wir an, Sie chatten mit einem LLM. Sie schreiben:
Benutzer: Hallo!
Assistent: Hallo! Wie kann ich dir helfen?
Benutzer: Wie geht's?
Was sieht das Modell beim zweiten Aufruf? Es sieht:
[Systemprompt: Du bist ein hilfreicher Assistent]
Benutzer: Hallo!
Assistent: Hallo! Wie kann ich dir helfen?
Benutzer: Wie geht's?
Die vorherige Antwort – „Hallo! Wie kann ich dir helfen?” – war nicht vom Modell gespeichert. Sie wurde vom System, das den Chat verwaltet, gespeichert und beim nächsten Aufruf wieder in den Prompt eingefügt. Das Modell selbst hat zwischen den Aufrufen nichts behalten. Es gibt kein persistentes Gedächtnis. Keine Session. Keinen State.
Jeder Aufruf ist eine fresh slate.
Das hat fundamentale Konsequenzen. Wenn Ihre Konversation lang wird, wird auch der Prompt lang. Irgendwann erreichen Sie das Kontextlimit des Modells. Dann müssen Sie alte Nachrichten abschneiden oder zusammenfassen. Das Modell „vergisst” dann nicht nur – es sieht buchstäblich nicht mehr, was am Anfang war, weil es nicht mehr im Prompt steht.
Systeme wie ChatGPT arbeiten mit ausgeklügelten Mechanismen, um lange Konversationen zu managen. Sie fassen frühere Teile zusammen. Sie extrahieren wichtige Informationen. Sie priorisieren, was in den Prompt kommt. Aber am Ende bleibt die Wahrheit: Was nicht im Prompt steht, existiert nicht für das Modell.
Erinnern Sie sich an das vorherige Kapitel über Tokens? Hier kommt es zusammen.
Wenn Sie einen Prompt absenden, passiert folgendes: Der gesamte Text wird tokenisiert. Jedes Token wird in einen hochdimensionalen Vektor umgewandelt. Diese Vektoren werden durch die Gewichtungsmatrizen des Modells geschickt. Layer für Layer werden sie transformiert, bis am Ende eine Wahrscheinlichkeitsverteilung über mögliche nächste Tokens steht.
Dann wird ein Token ausgewählt. Dieses Token wird an die Eingabe angehängt. Der gesamte Prozess wiederholt sich. Wieder Tokenisierung. Wieder Vektorisierung. Wieder Matrizenmultiplikationen. Wieder ein neues Token.
Das ist alles. Das ist die gesamte Magie.
Der Prompt ist also letztlich nichts anderes als ein Zahlenpaket, das einmalig durch ein mathematisches System läuft. Es gibt keinen Rückkanal. Keine Iteration. Keine Selbstkorrektur während der Generierung. Das Modell berechnet Token für Token, was wahrscheinlich ist – basierend auf dem, was es im Prompt gesehen hat.
Und sobald die Antwort fertig ist? Vergessen. Gelöscht. Weg.
Bis Sie den nächsten Prompt schicken – und die alte Antwort wieder mitschicken, damit das Modell so tut, als hätte es sich erinnert.
Es gibt einen gewaltigen Unterschied zwischen „Was ist die Hauptstadt von Frankreich?” und einem Prompt, der mehrere Seiten lang ist und Systemrollen, Beispiele, Regeln und Kontext kombiniert.
Ein einfacher Prompt ist oft ausreichend für faktische Fragen, bei denen das Trainingswissen des Modells genügt. Sie brauchen keine komplexe Struktur, um herauszufinden, dass Paris die Hauptstadt Frankreichs ist. Das Muster „Was ist die Hauptstadt von [Land]?” kommt millionenfach in den Trainingsdaten vor. Das Modell hat gelernt, wie solche Fragen beantwortet werden.
Aber sobald Sie produktionsnahe Anwendungen bauen, reichen einfache Prompts nicht mehr. Sie wollen nicht nur eine Antwort – Sie wollen eine kontrollierte, reproduzierbare, validierbare Antwort. Sie wollen ein bestimmtes Format. Eine bestimmte Tonalität. Eine Struktur, die Sie weiterverarbeiten können.
Dann bauen Sie komplexe Prompts. Solche, die aussehen wie kleine Programme. Mit klaren Abschnitten. Mit expliziten Regeln. Mit Beispielen, die dem Modell zeigen, was Sie erwarten. Mit Kontextinformationen, die aus Ihrer Datenbank kommen. Mit Formatvorgaben, die sicherstellen, dass die Ausgabe als JSON parsebar ist.
Solche Prompts können mehrere Tausend Tokens lang sein. Sie werden mit Templates generiert. Sie werden getestet. Sie werden versioniert. Sie sind Code – auch wenn sie wie Text aussehen.
Hier ist eine fundamentale Erkenntnis: Ein gut gebauter Prompt ist deterministisch steuerbar. Nicht im absoluten Sinne – es gibt immer Temperaturparameter, die Zufall einbringen können. Aber im praktischen Sinne.
Wenn Sie präzise formulieren, was Sie wollen, bekommen Sie reproduzierbare Ergebnisse. Wenn Sie dem Modell klare Regeln geben, hält es sich daran – in den meisten Fällen. Wenn Sie Beispiele liefern, folgt es dem Muster.
Das ist der Grund, warum Prompt Engineering funktioniert. Es ist keine Esoterik. Es ist keine Kunst, bei der man „ein Gefühl” für die richtige Formulierung entwickeln muss. Es ist ein technischer Prozess. Sie testen. Sie iterieren. Sie messen, welche Formulierungen besser funktionieren. Sie bauen ein Verständnis dafür auf, welche Muster das Modell aktivieren und welche nicht.
Betrachten Sie diese beiden Varianten:
Variante 1:
Gib mir die Daten als JSON zurück.
Variante 2:
Antworte ausschließlich mit validem JSON. Verwende folgendes Schema:
{
"result": string,
"confidence": number,
"metadata": object
}
Füge keinen zusätzlichen Text vor oder nach dem JSON hinzu.
Welche Variante wird zuverlässiger funktionieren? Die zweite. Nicht weil das Modell die erste nicht „verstehen” würde. Sondern weil die zweite präziser ist. Sie aktiviert spezifischere Muster. Sie lässt weniger Interpretationsspielraum. Sie reduziert die Wahrscheinlichkeit, dass das Modell zusätzlichen Text generiert, der Ihr JSON-Parsing kaputt macht.
Das ist Prompt Engineering. Präzision. Kontrolle. Reproduzierbarkeit.
Wenn Sie das nächste Mal einen Prompt schreiben, denken Sie nicht an ein Chatfenster. Denken Sie an eine API. An einen Funktionsaufruf. An eine Schnittstelle zu einem komplexen System.
Ihr Prompt ist der einzige Weg, wie Sie mit dem Modell kommunizieren können. Alles, was Sie erreichen wollen, muss dort formuliert sein. Jede Nuance. Jede Regel. Jeder Kontext. Denn das Modell kann nicht nachfragen. Es kann nicht raten, was Sie eigentlich meinten. Es kann nur mit dem arbeiten, was im Prompt steht – und dann Token für Token generieren, was statistisch passt.
Das klingt nach einer Einschränkung. Und das ist es auch. Aber es ist eine Einschränkung, mit der Sie arbeiten können. Weil sie klar ist. Weil sie vorhersagbar ist. Weil Sie sie kontrollieren können.
Ein LLM ist kein autonomes System, das eigene Entscheidungen trifft. Es ist ein hochkomplexes, aber deterministisches Werkzeug, das Sie über Prompts steuern. Je besser Sie diese Prompts gestalten, desto bessere Ergebnisse bekommen Sie. Je präziser Sie formulieren, desto zuverlässiger wird die Ausgabe.
Das ist keine Magie. Das ist Engineering.
Und es beginnt mit dem Verständnis, dass der Prompt nicht einfach „das, was Sie tippen” ist. Sondern die vollständige, strukturierte, vektorisierbare Steueranweisung für ein statistisches System, das keine zweite Chance bekommt, Sie zu verstehen.