Prompt-Iteration und Debugging
Sie entwickeln einen systematischen Workflow zum Testen und Verfeinern von Prompts, identifizieren Fehlermuster und verwenden das OpenAI Playground, um schnell zu iterieren, bevor Sie Produktionscode schreiben.
Prompt-Iteration und Debugging ist eine kostenlose AI Engineering Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Engineering Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Engineering Academy-Kurs umfasst insgesamt 4 Lektionen.
Prompting ist eine empirische Disziplin
Effektives Prompt Engineering besteht nicht darin, eine magische Formel zu finden – es ist ein empirischer, iterativer Prozess, der eher dem Debugging als dem Schreiben ähnelt. Sie schreiben einen Prompt, führen ihn mit Testeingaben aus, beobachten, wo er fehlschlägt, stellen eine Hypothese über die Ursache auf und ändern den Prompt, um das Problem zu beheben. Intuition allein ist unzuverlässig; Sie benötigen Daten.
Viele Entwickler machen den Fehler, ihren Prompt anhand von ein oder zwei eigens erstellten Beispielen zu testen, gute Ergebnisse zu sehen und ihn in die Produktion zu übernehmen – nur um festzustellen, dass der Prompt bei 30 % der tatsächlichen Eingaben fehlschlägt. Ein systematischer Evaluations-Workflow verhindert dies, indem er Ihren Prompt mit vielfältigen, repräsentativen Beispielen testet, bevor er produktiv eingesetzt wird.
Zuerst einen Testsatz erstellen
Erstellen Sie vor dem Schreiben Ihres Prompts einen Golden-Testdatensatz: eine Sammlung von 20–100 repräsentativen Eingabebeispielen mit der erwarteten Ausgabe oder den Kriterien für eine erfolgreiche Antwort. Dieser Testsatz dient als Referenz für die Bewertung jeder Prompt-Änderung.
Gute Testsätze enthalten typische Eingaben, Grenzfälle (leere Strings, sehr lange Eingaben, mehrdeutige Fälle), speziell entwickelte Eingaben, die den Prompt zum Scheitern bringen sollen, sowie Eingaben aus verschiedenen Segmenten Ihrer Benutzergruppe. Je vielfältiger Ihr Testsatz ist, desto sicherer können Sie sein, dass eine Prompt-Änderung tatsächlich eine Verbesserung darstellt und nicht nur eine Überanpassung an die wenigen Beispiele, die Sie im Kopf hatten.
Ein einfacher Evaluations-Harness
Das Schreiben eines einfachen Evaluationsskripts dauert eine Stunde und erspart Ihnen tagelanges Debugging von Problemen in der Produktion. Das Skript führt Ihren Prompt mit jedem Testfall aus, vergleicht die Ausgabe mit dem erwarteten Ergebnis und meldet eine Erfolgsquote. Anschließend können Sie den Prompt iterativ verbessern und sofort sehen, ob Ihre Änderungen die Gesamtbewertung verbessert haben.
import openai
client = openai.OpenAI()
# Golden test set: (input, expected_output)
test_cases = [
('The product is excellent and very fast.', 'Positive'),
('Arrived damaged and customer service ignored me.', 'Negative'),
('Delivery was on time.', 'Neutral'),
('Worst purchase of my life. Never again!', 'Negative'),
('Good value for the price.', 'Positive'),
]
def evaluate_prompt(system_prompt):
correct = 0
for text, expected in test_cases:
resp = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': text}
],
max_tokens=10
)
prediction = resp.choices[0].message.content.strip()
if expected.lower() in prediction.lower():
correct += 1
else:
print(f'FAIL: "{text}" -> got "{prediction}", expected "{expected}"')
return correct / len(test_cases)
score = evaluate_prompt('Classify sentiment as Positive, Negative, or Neutral. Reply with one word only.')
print(f'Score: {score:.0%}')Fehlermodi kategorisieren
Wenn Ihr Prompt bei Testfällen fehlschlägt, gruppieren Sie die Fehler nach Typ, um Muster zu erkennen. Häufige Fehlermodi sind:
- Formatfehler: Das Modell erzeugt die richtige Antwort, aber im falschen Format
- Mehrdeutigkeitsfehler: Das Modell interpretiert die Aufgabe anders als beabsichtigt
- Fehler bei Grenzfällen: Das Modell funktioniert bei typischen Eingaben, scheitert aber bei ungewöhnlichen
- Halluzinationsfehler: Das Modell erzeugt selbstsicher falsche Fakten
- Ignorieren von Anweisungen: Das Modell befolgt Anweisungen teilweise, übersieht aber bestimmte Einschränkungen
Jeder Fehlertyp erfordert eine andere Lösung. Formatfehler verlangen nach expliziteren Anweisungen zur Ausgabe; Mehrdeutigkeitsfehler nach einer klareren Aufgabendefinition oder Beispielen.
Der OpenAI Playground für schnelle Iterationen
Das OpenAI Playground (platform.openai.com/playground) ist das schnellste Tool, um Prompts iterativ zu verbessern, ohne Code zu schreiben. Sie können zwischen Modellen wechseln, Parameter mithilfe von Schiebereglern anpassen, Prompt-Versionen speichern und Ausgaben nebeneinander vergleichen.
Verwenden Sie den Playground für die Explorationsphase der Prompt-Entwicklung: Probieren Sie verschiedene Formulierungen aus, testen Sie interaktiv Grenzfälle und entwickeln Sie ein Gefühl dafür, was funktioniert. Sobald Sie einen vielversprechenden Prompt gefunden haben, wechseln Sie zu Code und verwenden Sie einen Evaluierungs-Harness, um ihn vor der Veröffentlichung systematisch über Ihren vollständigen Testsatz hinweg zu validieren.
Prompt-Versionierung
Prompts sind Code. Sie sollten versioniert, überprüft und mit derselben Sorgfalt wie Anwendungscode bereitgestellt werden. Der einfachste Ansatz besteht darin, Ihre Prompt-Templates als Zeichenketten in einer Konstantendatei in Ihrem Repository zu speichern, sodass Änderungen in git erfasst werden und eine Codeüberprüfung erfordern.
Zu den anspruchsvolleren Ansätzen gehören das Speichern von Prompts in einer dedizierten Prompt-Management-Datenbank (LangSmith, PromptLayer oder einer einfachen Supabase-Tabelle), das Kennzeichnen von Versionen und das Durchführen von A/B-Tests zwischen Prompt-Versionen in der Produktion. Das ist besonders wichtig, wenn mehrere Teammitglieder an denselben Prompts arbeiten oder wenn Sie eine Prompt-Änderung zurücknehmen müssen, durch die sich die Qualität in der Produktion verschlechtert hat.
# prompts/sentiment.py
# Version 2.1 - Added explicit tie-breaking rule for mixed reviews
SENTIMENT_V2_1 = '''You are a sentiment classification assistant.
Classify the customer review sentiment as exactly one of: Positive, Negative, or Neutral.
Rules:
- Positive: overall satisfaction, praise, or recommendation
- Negative: disappointment, complaint, or warning to others
- Neutral: factual statements without strong sentiment, or equal positive and negative content
- If the review contains both positive and negative elements, choose based on the DOMINANT tone
Respond with ONLY the single word classification. No explanation.'''
# Usage:
# from prompts.sentiment import SENTIMENT_V2_1Prompt-Varianten systematisch vergleichen
Wenn Sie zwei konkurrierende Prompt-Versionen haben, führen Sie beide mit Ihrem vollständigen Testsatz aus und vergleichen Sie die Bewertungen. Selbst eine Genauigkeitssteigerung von 5 % bei einem Produktionssystem, das täglich Tausende von Anfragen verarbeitet, ist den Evaluierungsaufwand wert. Wählen Sie niemals einen Prompt anhand von ein oder zwei manuell getesteten Beispielen aus – vergleichen Sie immer den vollständigen Testsatz.
Für subjektive Qualitätskriterien, bei denen es keine eindeutig richtige Antwort gibt (etwa Tonalität, Hilfsbereitschaft oder Kreativität), können Sie LLM-as-judge verwenden: Fordern Sie ein leistungsstarkes Modell wie GPT-4o auf zu bewerten, welche von zwei Antworten Ihre Qualitätskriterien besser erfüllt. Dadurch lässt sich die Evaluierung über das hinaus skalieren, was eine menschliche Überprüfung leisten kann.
Inkonsistente Ausgaben debuggen
LLM-Ausgaben sind standardmäßig nicht deterministisch. Wenn Sie temperature=0 setzen, werden die Ausgaben nahezu deterministisch (bei jedem Schritt wird das wahrscheinlichste Token ausgewählt). Das ist für das Debugging unerlässlich, da Sie denselben Prompt zweimal ausführen und dieselbe Ausgabe erhalten können. Setzen Sie beim Debugging immer die Temperatur auf 0, damit Sie feststellen können, ob eine Änderung am Prompt die Ausgabe verursacht hat oder ob es sich lediglich um zufällige Abweichungen handelte.
Sobald Sie den Prompt korrigiert haben, aktivieren Sie für die Produktion wieder eine gewisse Temperatur, wenn Ihr Anwendungsfall von Vielfalt profitiert (kreatives Schreiben, Brainstorming). Bei strukturierten Extraktions- und Klassifizierungsaufgaben, für die Sie konsistente und wiederholbare Ausgaben benötigen, sollten Sie die Temperatur jedoch auf 0 belassen.
import openai
client = openai.OpenAI()
# Deterministic mode for debugging
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'Classify sentiment: Positive, Negative, or Neutral.'},
{'role': 'user', 'content': 'The product looks nice but broke after two days.'}
],
temperature=0, # deterministic
seed=42 # optional reproducibility seed
)
print(response.choices[0].message.content)Halluzinationen debuggen
Wenn Ihr Prompt halluzinierte Fakten erzeugt, fügen Sie Einschränkungen hinzu, die Halluzinationen erschweren. Zu den wirksamen Techniken gegen Halluzinationen gehören:
- Quellen zitieren: „Antworten Sie nur auf Grundlage des bereitgestellten Kontexts. Wenn die Antwort nicht im Kontext enthalten ist, sagen Sie: Ich weiß es nicht.“
- Konfidenz quantifizieren: „Bewerten Sie Ihre Zuversicht auf einer Skala von 1 bis 5. Wenn sie unter 3 liegt, antworten Sie nicht.“
- Verifizierungsschritt: „Überprüfen Sie vor der Antwort, ob jeder von Ihnen verwendete Fakt im bereitgestellten Dokument enthalten ist.“
Keine Technik beseitigt Halluzinationen vollständig, aber die Kombination aus Retrieval (RAG) und starken Prompt-Einschränkungen reduziert sie bei wissensintensiven Anwendungen erheblich.
Prompt-Länge und Platzierung von Anweisungen
Untersuchungen haben gezeigt, dass LLMs Anweisungen am Anfang und Ende eines Prompts stärker beachten als in der Mitte. Dieses Phänomen wird als lost in the middle-Problem bezeichnet. Wenn Sie einen langen Prompt haben, in dem wichtige Anweisungen in der Mitte von Kontext umgeben sind, befolgt das Modell sie möglicherweise nicht zuverlässig.
Best Practice: Platzieren Sie Ihre wichtigsten Anweisungen (die Aufgabendefinition und kritische Einschränkungen) ganz am Anfang des System-Prompts und wiederholen Sie zentrale Einschränkungen am Ende. Bei langen Dokumenten, die als Kontext eingefügt werden, platzieren Sie die Benutzerfrage nach dem Dokument und nicht davor, da das Modell den zuletzt eingegangenen Inhalten mehr Gewicht gibt.
Von der Exploration zur Produktion
Der Lebenszyklus der Prompt-Entwicklung umfasst drei Phasen:
- Exploration: Verwenden Sie den Playground für freie Experimente. Konzentrieren Sie sich darauf, konzeptionell zu verstehen, was funktioniert, und nicht auf eine perfekte Ausgabe.
- Evaluierung: Erstellen Sie einen Testsatz und einen Evaluierungs-Harness. Führen Sie Kandidaten-Prompts mit dem vollständigen Testsatz aus und messen Sie die Erfolgsquoten. Iterieren Sie, bis Sie Ihren Qualitätsschwellenwert erreichen.
- Produktion: Versionieren Sie den finalen Prompt, fügen Sie Monitoring zur Erfassung von Qualitätsmetriken in der Produktion hinzu und richten Sie Warnmeldungen bei Qualitätsverlusten ein. Planen Sie zukünftige Iterationen ein, wenn sich Modellversionen ändern.
Das Überspringen der Evaluierungsphase ist die häufigste Ursache für Qualitätsverluste von Prompts in der Produktion. Die Zeit, die Sie in einen geeigneten Testsatz investieren, zahlt sich vielfach aus.
Schnelltest
Testen Sie Ihr Verständnis der Konzepte des AI Engineering aus dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie gelernt: Prompt Engineering erfordert einen Golden Test Set und einen Evaluierungs-Harness, um Verbesserungen zuverlässig zu messen, Fehlermodi sollten kategorisiert werden, um für jeden Typ die richtige Lösung zu finden, und Temperatur 0 ist für das Debugging unerlässlich, während Prompt-Versionierung und Monitoring in der Produktion den Qualitätskreislauf schließen. Als Nächstes untersuchen wir, wie LLMs Text mithilfe von Tokens verarbeiten und warum die Anzahl der Tokens für Kosten und Kontext wichtig ist.
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Prompt-Iteration und Debugging“ kostenlos?
Ja — der vollständige Text von „Prompt-Iteration und Debugging“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Engineering Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Engineering Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Prompt-Iteration und Debugging“?
Sie entwickeln einen systematischen Workflow zum Testen und Verfeinern von Prompts, identifizieren Fehlermuster und verwenden das OpenAI Playground, um schnell zu iterieren, bevor Sie Produktionscode… Du übst AI Engineering Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Engineering Academy zu starten?
Keine Vorkenntnisse erforderlich. AI Engineering Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Prompt-Iteration und Debugging“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Engineering Academy-Lektion Code schreiben und ausführen?
Ja. Jede AI Engineering Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Zero-Shot- und Few-Shot-Prompting
- Chain-of-Thought und schrittweises Schlussfolgern
- System-Prompts und Persona-Definition
- Prompt-Iteration und Debugging