Prompt-Engineering
Die Qualität der Antwort eines Sprachmodells hängt davon ab, wie die Eingabe formuliert ist. Die systematische Gestaltung dieser Eingaben heißt Prompt-Engineering.
Warum die Formulierung entscheidet
Ein Sprachmodell generiert seine Antwort ausschließlich auf Basis der Eingabe. Es hat keinen Zugriff auf den Kontext im Kopf des Fragenden. Was nicht in der Eingabe steht, existiert für das Modell nicht. Deshalb produzieren vage Eingaben vage Ergebnisse, während präzise Eingaben präzise Ergebnisse ermöglichen.
Beispiel: Die Eingabe "Schreibe über Marketing" liefert einen generischen Text ohne Zielgruppe, Fokus oder Längenvorgabe. Die Eingabe "Schreibe für mittelständische Unternehmer drei häufige Marketing-Fehler beim Produktlaunch, maximal 800 Wörter" definiert Zielgruppe, Thema, Struktur und Umfang. Das Ergebnis ist entsprechend konkreter.
Beispiel: Die Eingabe "Erkläre Datenbanken" produziert eine allgemeine Übersicht. Die Eingabe "Erkläre den Unterschied zwischen SQL-Joins und Subqueries anhand eines konkreten Beispiels mit einer Kunden- und einer Bestelltabelle" erzwingt ein präzises, nachvollziehbares Ergebnis.
Diesen Zusammenhang zwischen Eingabequalität und Ausgabequalität bewusst zu nutzen, ist der Kern dessen, was als Prompt-Engineering bezeichnet wird. Die Eingabe selbst heißt Prompt.
Woraus ein Prompt besteht
Ein wirkungsvoller Prompt enthält typischerweise mehrere Bestandteile. Nicht jeder Prompt braucht alle, aber je klarer die Bestandteile definiert sind, desto vorhersagbarer wird das Ergebnis.
- Rolle: Eine Perspektive, aus der das Modell antworten soll. "Du bist ein erfahrener Datenbankadministrator."
- Kontext: Hintergrundinformationen, die das Modell für die Antwort braucht. "Unsere Anwendung nutzt PostgreSQL 16 mit 50 Millionen Datensätzen."
- Aufgabe: Die konkrete Anweisung. "Optimiere diese SQL-Abfrage für kürzere Antwortzeiten."
- Format: Die gewünschte Struktur der Ausgabe. "Antworte als nummerierte Liste mit jeweils einer kurzen Begründung."
- Einschränkungen: Regeln, die das Modell einhalten soll. "Verwende keine proprietären Funktionen. Maximal 200 Wörter."
Beispiel: "Du bist ein erfahrener Python-Entwickler. Ich habe eine Liste von 10.000 Dictionaries mit jeweils 20 Schlüsseln. Schreibe eine Funktion, die diese Liste nach einem beliebigen Schlüssel sortiert. Antworte nur mit dem Code, ohne Erklärung. Verwende keine externen Bibliotheken." Dieser Prompt enthält alle fünf Bestandteile.
Techniken der Promptgestaltung
Es gibt erprobte Techniken, die das Modellverhalten gezielt beeinflussen.
Beispiele mitliefern
Statt dem Modell nur zu sagen, was es tun soll, zeigt man ihm anhand von Beispielen, wie das Ergebnis aussehen soll. Das Modell erkennt das Muster und wendet es auf neue Eingaben an.
Beispiel: "Klassifiziere E-Mails als ‘dringend’ oder ‘normal’. Hier drei Beispiele: ‘Server ist ausgefallen’ → dringend. ‘Einladung zum Teamessen’ → normal. ‘Sicherheitslücke in Produktion entdeckt’ → dringend. Jetzt klassifiziere: ‘Passwort eines Kunden wurde kompromittiert’."
Schrittweises Denken anfordern
Bei komplexen Aufgaben verbessert sich die Qualität der Antwort, wenn das Modell seinen Lösungsweg explizit darlegen muss, statt direkt ein Endergebnis zu liefern.
Beispiel: "Ein Onlineshop hat im Januar 1.200 Bestellungen, im Februar 15 % mehr. Wie viele Bestellungen sind es im Februar? Erkläre deinen Rechenweg Schritt für Schritt." Das Modell rechnet sichtbar: 1.200 × 0,15 = 180, also 1.200 + 180 = 1.380. Ohne die Aufforderung zum schrittweisen Denken springt es häufiger zu falschen Ergebnissen.
Iteratives Verfeinern
In der Praxis liefert der erste Prompt selten das optimale Ergebnis. Effektiver ist ein iterativer Prozess: Prompt formulieren, Ergebnis bewerten, Prompt anpassen.
Beispiel: Erster Versuch: "Fasse diesen Artikel zusammen." Ergebnis: zu lang und zu allgemein. Zweiter Versuch: "Fasse diesen Artikel in drei Aufzählungspunkten zusammen, jeweils maximal ein Satz." Ergebnis: präziser, aber technisch ungenau. Dritter Versuch: "Fasse diesen Artikel in drei Aufzählungspunkten zusammen, jeweils maximal ein Satz. Verwende die exakten Fachbegriffe aus dem Originaltext."
Wo Prompt-Engineering eingesetzt wird
Die Technik ist überall relevant, wo ein Sprachmodell eine Eingabe verarbeitet.
Texterstellung: Blogartikel, E-Mails, Produktbeschreibungen, technische Dokumentation. Der Prompt definiert Ton, Zielgruppe und Struktur.
Code-Generierung: Funktionen, Tests, Refactoring, Code-Reviews. Hier bestimmt der Prompt Programmiersprache, Stil und Randbedingungen.
Datenanalyse: Zusammenfassungen von Berichten, Klassifikation von Texten, Extraktion strukturierter Daten aus Freitext.
RAG-Systeme: In einer RAG-Pipeline bestimmt der Prompt, wie das Sprachmodell die abgerufenen Dokumente verarbeitet: ob es zitiert, zusammenfasst, vergleicht oder Fragen dazu beantwortet.
Beispiel: Ein RAG-System für internen Kundensupport. Der System-Prompt lautet: "Beantworte die Frage des Kunden ausschließlich auf Basis der folgenden Dokumente. Wenn die Dokumente keine Antwort enthalten, sage das explizit." Diese Anweisung verhindert, dass das Modell Antworten erfindet.
System-Prompt und Benutzer-Prompt
Bei vielen Sprachmodellen gibt es zwei Ebenen der Eingabe. Die erste Ebene enthält Anweisungen, die für alle Anfragen gelten: Rolle, Regeln, Ausgabeformat. Diese Ebene heißt System-Prompt. Die zweite Ebene enthält die konkrete Anfrage des Nutzers: Benutzer-Prompt (oder User-Prompt).
Beispiel: System-Prompt: "Du bist ein technischer Dokumentationsassistent. Antworte immer auf Deutsch. Verwende Markdown-Formatierung. Wenn du unsicher bist, sage es." Benutzer-Prompt: "Erkläre den Unterschied zwischen synchronen und asynchronen HTTP-Anfragen."
Beispiel: System-Prompt: "Du bist ein SQL-Experte. Antworte nur mit SQL-Code und einem einzeiligen Kommentar. Keine Erklärungen." Benutzer-Prompt: "Finde alle Kunden, die in den letzten 30 Tagen mehr als drei Bestellungen aufgegeben haben."
Fachliche Einordnung: Die Trennung zwischen System- und Benutzer-Prompt ist eine Konvention der API-Schnittstelle, keine harte Sicherheitsgrenze. Ein Sprachmodell verarbeitet beide Eingaben als zusammenhängenden Text. System-Prompts können durch gezielte Eingaben im Benutzer-Prompt umgangen werden (Prompt Injection). Deshalb darf die Sicherheit eines Systems nicht allein auf dem System-Prompt basieren.
Grenzen von Prompt-Engineering
Prompt-Engineering verbessert die Nutzung eines Modells, ändert aber nicht das Modell selbst. Es gibt klare Grenzen.
- Wissen: Ein Modell kann nur auf Wissen zugreifen, das in seinen Trainingsdaten enthalten ist oder über den Kontext (etwa per RAG) bereitgestellt wird. Kein Prompt erzeugt Fachwissen, das nicht vorhanden ist.
- Konsistenz: Sprachmodelle sind nicht deterministisch. Derselbe Prompt kann bei wiederholter Ausführung leicht unterschiedliche Ergebnisse liefern.
- Kontextlänge: Jedes Modell hat ein begrenztes Eingabefenster. Sehr lange Prompts oder sehr viele Few-Shot-Beispiele können dieses Fenster überschreiten.
- Halluzinationen: Auch ein perfekt formulierter Prompt verhindert nicht, dass das Modell plausibel klingende, aber falsche Aussagen generiert. Prompt-Engineering kann das Risiko reduzieren, nicht eliminieren.
Beispiel: Du bittest das Modell um eine Zusammenfassung eines 200-seitigen Berichts. Der Bericht passt nicht in das Kontextfenster. Prompt-Engineering kann hier die Aufgabe in Teilschritte zerlegen (kapitelweise Zusammenfassung), aber die grundlegende Einschränkung der Kontextlänge bleibt bestehen.
Fachliche Einordnung: Wenn Prompt-Engineering an seine Grenzen stößt, kommen andere Methoden zum Einsatz: Fine-Tuning trainiert das Modell auf spezifische Aufgaben nach, RAG erweitert das verfügbare Wissen über externen Kontext, und Tool-Use ermöglicht dem Modell den Zugriff auf externe Systeme (Datenbanken, APIs, Rechner). Diese Methoden ergänzen Prompt-Engineering, ersetzen es aber nicht.