0Pricing
AI Prompt Engineering · Lektion

Ursachenanalyse für Prompts

Grenzen Sie ein, ob der Fehler im Kontext, in der Anweisung, im Format oder in den Modellfähigkeiten liegt

Ursachenanalyse für Prompts ist eine kostenlose AI Prompt Engineering-Lektion auf CoddyKit. Dies ist Lektion 2 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 Prompt Engineering-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Prompt Engineering-Kurs umfasst insgesamt 4 Lektionen.

Warum Ursachenanalyse wichtig ist

Wenn ein Prompt fehlschlägt, kommen mehrere Ursachen infrage. Das zufällige Anpassen von Formulierungen kostet Zeit und behebt möglicherweise nur das Symptom statt der eigentlichen Ursache — dadurch tritt derselbe Fehler bei leicht veränderten Eingaben erneut auf.

Ursachenanalyse (RCA) ist ein systematischer Prozess, mit dem der konkrete Grund für das Fehlschlagen eines Prompts isoliert wird, sodass die Korrektur das tatsächliche Problem behebt.

Die vier Kategorien von Grundursachen

Jeder Fehler eines Prompts lässt sich auf eine von vier Grundursachen zurückführen:

  1. Kontextproblem: Dem Modell fehlen Informationen, die es für eine korrekte Antwort benötigt
  2. Mehrdeutige Anweisung: Die Anweisung lässt mehrere gültige Interpretationen zu, und das Modell wählt die falsche
  3. Formatkonflikt: Zwei Teile des Prompts enthalten widersprüchliche Formatierungsvorgaben
  4. Grenze der Modellfähigkeiten: Die Aufgabe erfordert Schlussfolgerungen oder Wissen, die das Modell nicht zuverlässig leisten kann

Grundursache 1: Kontextproblem

Ein Kontextproblem tritt auf, wenn das Modell eine falsche Antwort gibt, weil der Prompt nicht die benötigten Informationen enthält. Das Modell füllt die Lücke mit Trainingsdaten, die veraltet, falsch oder halluziniert sein können.

Test: Stellen Sie die fehlenden Informationen direkt im Prompt bereit und prüfen Sie, ob sich die Antwort verbessert. Wenn dies der Fall ist, besteht die Korrektur darin, Kontext hinzuzufügen, etwa durch Retrieval mit RAG.

# Failing prompt — no context
prompt_v1 = 'What is the current price of our Pro plan?'

# Context problem test: inject the information
prompt_v2 = '''
Our pricing (as of today):
- Free: $0/month
- Pro: $19/month
- Enterprise: $99/month

Question: What is the current price of our Pro plan?
'''
# If v2 succeeds and v1 fails -> root cause is context problem

Grundursache 2: Mehrdeutige Anweisung

Eine mehrdeutige Anweisung liegt vor, wenn der Prompt vernünftigerweise auf mehrere Arten interpretiert werden kann und das Modell die falsche Interpretation auswählt.

Beispiel: „Fassen Sie kurz zusammen“ — bedeutet „kurz“ einen Satz, einen Absatz oder drei Aufzählungspunkte? Das Modell rät. Test: Ersetzen Sie die mehrdeutige Formulierung durch eine präzise Spezifikation und prüfen Sie, ob der Fehler dadurch behoben wird.

# Ambiguous
prompt_ambiguous = 'Summarize the following article briefly.'

# Precise — ambiguity removed
prompt_precise = (
    'Summarize the following article in exactly 2 sentences. '
    'Do not exceed 50 words. Output only the summary, nothing else.'
)

# Test: if precise version succeeds, root cause was ambiguity
# Fix: replace vague qualifiers with exact specifications

Grundursache 3: Formatkonflikt

Ein Formatkonflikt tritt auf, wenn zwei Teile des Prompts widersprüchliche Anweisungen enthalten. Das Modell muss eine davon auswählen und die andere ignorieren — normalerweise folgt es dabei der aktuelleren oder stärker hervorgehobenen Anweisung.

Beispiel: Der System-Prompt besagt „Antworten Sie im Klartext“, die Nutzernachricht lautet „Verwenden Sie Markdown“. Das Modell kann je nach Situation der einen oder der anderen Anweisung folgen.

# Format conflict example
system_prompt = 'You are a helpful assistant. Always respond in plain text without any formatting.'

user_message = 'List the top 5 benefits of exercise. Use markdown bullet points.'

# The model faces a conflict: plain text vs markdown.
# Detection: if output format is inconsistent across runs, look for conflicting instructions.

# Fix: ensure all format instructions agree. Move format to system prompt only.
system_prompt_fixed = (
    'You are a helpful assistant. '
    'Always respond using markdown bullet points for lists.'
)

Grundursache 4: Begrenzte Modellfähigkeiten

Ein Fehler aufgrund einer Begrenzung der Modellfähigkeiten tritt auf, wenn die Aufgabe die zuverlässigen Fähigkeiten des Modells tatsächlich übersteigt. Das unterscheidet sich von den anderen drei Ursachen – keine Änderung am Prompt kann den Fehler vollständig beheben.

Anzeichen: Die Fehlerquote ist selbst bei klaren Anweisungen und vollständig bereitgestelltem Kontext hoch. Lösungen: Verwenden Sie ein leistungsfähigeres Modell, teilen Sie die Aufgabe in einfachere Schritte auf oder fügen Sie einen Verifizierungsschritt hinzu.

# Capability limit test: try the same task on different models
models = ['gpt-4o-mini', 'gpt-4o', 'gpt-4o-2024-11-20']
results = {}

for model in models:
    resp = client.chat.completions.create(
        model=model,
        messages=[{'role': 'user', 'content': complex_reasoning_prompt}]
    )
    results[model] = evaluate(resp.choices[0].message.content)

# If accuracy improves with more capable models -> capability limit
for model, score in results.items():
    print(f'{model}: {score:.0%} accuracy')

Die Isolationsmethode

Um festzustellen, welche Grundursache vorliegt, verwenden Sie eine systematische Isolation:

  1. Führen Sie den fehlerhaften Prompt aus und klassifizieren Sie den Fehlertyp (falsche Antwort, Formatfehler usw.)
  2. Fügen Sie Informationen hinzu → wenn der Fehler behoben ist: Kontextproblem
  3. Präzisieren Sie die Anweisungen → wenn der Fehler behoben ist: Mehrdeutigkeit
  4. Prüfen Sie auf Widersprüche → wenn der Fehler behoben ist: Formatkonflikt
  5. Führen Sie ein leistungsfähigeres Modell ein → wenn der Fehler behoben ist: Begrenzung der Modellfähigkeiten

Es sollte nur eine Behebung erforderlich sein. Wenn mehrere Behebungen nötig sind, lagen mehrere Grundursachen vor.

def rca_test(base_prompt, test_input, expected_output):
    results = {}

    # Test 1: base (failing) prompt
    results['base'] = run_and_evaluate(base_prompt, test_input, expected_output)

    # Test 2: add context
    results['with_context'] = run_and_evaluate(
        base_prompt + '\nContext: ' + get_context(test_input),
        test_input, expected_output
    )

    # Test 3: clarify instructions
    results['clarified'] = run_and_evaluate(
        clarify(base_prompt), test_input, expected_output
    )

    for name, passed in results.items():
        print(f'{name}: {"PASS" if passed else "FAIL"}')

Ausschluss vs. Bestätigung

RCA umfasst zwei Vorgehensweisen:

  • Ausschluss: Schließen Sie Ursachen aus, die NICHT verantwortlich sind (testen Sie jede Hypothese und prüfen Sie, welche das Ergebnis NICHT verändert)
  • Bestätigung: Ermitteln Sie die Ursache, die den Fehler nach ihrer Behebung bei mehreren Testeingaben zuverlässig beseitigt

Für eine Bestätigung sind mindestens 3 Testeingaben erforderlich. Eine Behebung, die bei einer Eingabe funktioniert, aber bei anderen nicht, hat die Grundursache nicht gelöst – möglicherweise wurde nur ein Symptom behoben.

def confirm_root_cause(fix_fn, test_cases, threshold=0.9):
    '''fix_fn: a function that takes a prompt and returns a fixed prompt'''
    passed = 0
    for case in test_cases:
        fixed_prompt = fix_fn(case['prompt'])
        result = run_and_evaluate(fixed_prompt, case['input'], case['expected'])
        if result:
            passed += 1

    pass_rate = passed / len(test_cases)
    print(f'Fix pass rate: {pass_rate:.0%}')
    if pass_rate >= threshold:
        print('Root cause CONFIRMED — fix is reliable.')
    else:
        print('Root cause NOT confirmed — failure has multiple causes.')

Die Grundursache dokumentieren

Dokumentieren Sie die Grundursache nach ihrer Ermittlung im Änderungsprotokoll des Prompts. Nehmen Sie Folgendes auf:

  • Beobachteter Fehlertyp
  • Kategorie der Grundursache
  • Getestete Hypothese
  • Belege (welcher Test nach der Behebung erfolgreich war)
  • Die konkrete Änderung am Prompt

So verhindern Sie, dass künftige Entwickler denselben Fehler erneut untersuchen müssen, und ermöglichen die Erkennung von Mustern über mehrere Prompts hinweg.

rca_record = {
    'prompt_id': 'summarize_v3',
    'failure_type': 'wrong_format',
    'root_cause': 'format_conflict',
    'hypothesis': 'System prompt said plain text, user message asked for markdown',
    'evidence': 'Removing markdown instruction from user message resolved failure on 8/8 test cases',
    'fix_applied': 'Moved all format instructions to system prompt; removed format instructions from user template',
    'fix_date': '2024-11-15'
}

Häufiger Fehler: Die falsche Ursache beheben

Der häufigste Fehler bei der RCA besteht darin, das Symptom statt der Ursache zu beheben. Beispiel:

  • Symptom: Das Modell gibt JSON mit vorangestelltem zusätzlichem Fließtext zurück
  • Falsche Lösung: Nachbearbeitung hinzufügen, die den Fließtext aus der Ausgabe entfernt
  • Tatsächliche Grundursache: Keine Formatangabe im Prompt + das Modell verwendet standardmäßig einen dialogorientierten Stil
  • Richtige Lösung: Die ausdrückliche Anweisung „Geben Sie ausschließlich gültiges JSON zurück. Keinen anderen Text.“ hinzufügen

Nachbearbeitungs-Hacks häufen technische Schulden an. Behebungen der Grundursache sind dauerhaft.

RCA bei sporadischen Fehlern

Manche Fehler treten sporadisch auf – der Prompt funktioniert in 80 % der Fälle, schlägt aber in 20 % fehl. Diese Fehler sind schwieriger zu diagnostizieren, weil eine einmalige Ausführung des Prompts ein korrektes Ergebnis liefert.

Vorgehen: Führen Sie den Prompt bei derselben Eingabe 10–20 Mal aus. Wenn die Fehlerquote ungleich null ist, hat der Prompt eine probabilistische Grundursache – meistens eine mehrdeutige Anweisung oder eine zu hohe Temperatur. Lösung: Formulieren Sie die Anweisung präziser oder reduzieren Sie die Temperatur.

def measure_failure_rate(prompt, test_input, expected, runs=20):
    failures = 0
    for _ in range(runs):
        resp = client.chat.completions.create(
            model='gpt-4o',
            messages=[{'role': 'user', 'content': prompt + '\n' + test_input}],
            temperature=0.7
        )
        if not evaluate(resp.choices[0].message.content, expected):
            failures += 1
    print(f'Failure rate: {failures}/{runs} = {failures/runs:.0%}')

Wissensüberprüfung

Ein Prompt fordert eine JSON-Antwort an, gibt aber gelegentlich JSON mit einem vorangestellten dialogorientierten Text wie „Natürlich! Hier ist das JSON:“ zurück. Nachdem „Geben Sie ausschließlich gültiges JSON zurück. Keinen anderen Text.“ hinzugefügt wurde, tritt der Fehler nicht mehr auf. Was war die Grundursache?

Zusammenfassung: Ursachenanalyse

Die vier Kategorien von Grundursachen für Prompt-Fehler:

  • Kontextproblem: Dem Modell fehlen benötigte Informationen – Lösung: Kontext über RAG oder direkte Einbettung hinzufügen
  • Mehrdeutige Anweisung: Vage Anweisung mit mehreren möglichen Interpretationen – Lösung: für mehr Präzision sorgen
  • Formatkonflikt: Widersprüchliche Formatierungsanweisungen – Lösung: im System-Prompt zusammenführen
  • Begrenzung der Modellfähigkeiten: Die Aufgabe übersteigt die Fähigkeiten des Modells – Lösung: Modell aktualisieren oder Aufgabe zerlegen

Verwenden Sie eine systematische Isolation, um jede Hypothese zu testen. Bestätigen Sie die Behebung anhand mehrerer Testfälle. Dokumentieren Sie die Ergebnisse. Nächste Lektion: systematisches Debugging mit binärer Suche.

Häufig gestellte Fragen

Ist die Lektion „Ursachenanalyse für Prompts“ kostenlos?

Ja — der vollständige Text von „Ursachenanalyse für Prompts“ 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 Prompt Engineering-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Prompt Engineering-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ursachenanalyse für Prompts“?

Grenzen Sie ein, ob der Fehler im Kontext, in der Anweisung, im Format oder in den Modellfähigkeiten liegt Du übst AI Prompt Engineering 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 Prompt Engineering zu starten?

Keine Vorkenntnisse erforderlich. AI Prompt Engineering 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 2 von 4.

Wie lange dauert die Lektion „Ursachenanalyse für Prompts“?

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 Prompt Engineering-Lektion Code schreiben und ausführen?

Ja. Jede AI Prompt Engineering-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

  1. Unerwartete Ausgaben diagnostizieren
  2. Ursachenanalyse für Prompts
  3. Systematischer Debugging-Ansatz
  4. Strategien für Logging und Dokumentation
← Zurück zu AI Prompt Engineering