Muster für Selbstkritik und Überarbeitung
Modelle dazu anleiten, ihre eigenen Ausgaben anhand einer Verfassung zu bewerten und neu zu formulieren.
Muster für Selbstkritik und Überarbeitung 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.
Selbstkritik als Prompting-Technik
Auch ohne einen formellen CAI-Trainingsprozess können Sie jedes leistungsfähige LLM auffordern, seine eigenen Ausgaben zu kritisieren und zu verbessern. Dieses Selbstkritik-Muster steigert die Qualität bei Aufgaben, für die Genauigkeit, Vollständigkeit oder Sicherheit wichtig sind, erheblich.
Die zentrale Erkenntnis: Modelle verfügen über mehr Wissen, als sie in einem ersten Durchlauf zeigen. Ein Kritik-Prompt macht dieses Wissen zugänglich.
Grundlegendes Muster für Genauigkeitskritik
Die einfachste Form der Selbstkritik: Bitten Sie das Modell, seine Antwort auf sachliche Richtigkeit zu prüfen und Fehler zu korrigieren.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def generate_and_self_critique(question):
# Step 1: Generate
r1 = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[{'role': 'user', 'content': question}]
)
initial = r1.content[0].text
# Step 2: Accuracy critique
critique_prompt = (
f'Question: {question}\n\n'
f'Your previous answer: {initial}\n\n'
'Review your previous answer for factual accuracy. '
'Identify any errors, unsupported claims, or missing important nuances. '
'Then provide a corrected, improved answer.'
)
r2 = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[{'role': 'user', 'content': critique_prompt}]
)
return r2.content[0].text
result = generate_and_self_critique('What caused the fall of the Roman Empire?')
print(result[:300])Muster zur Prüfung der Vollständigkeit
Bei einer Vollständigkeitskritik soll das Modell überprüfen, ob seine Antwort jeden Teil der Frage vollständig beantwortet. Das ist besonders bei mehrteiligen Fragen nützlich, bei denen Antworten im ersten Durchlauf häufig Unterfragen übersehen.
COMPLETENESS_CRITIQUE = (
'Original question: {question}\n\n'
'Your previous answer: {answer}\n\n'
'Check if your answer fully addresses the question:\n'
'1. List each part or sub-question in the original question.\n'
'2. For each part, indicate whether your answer addressed it.\n'
'3. If any parts were missed or incomplete, provide a revised answer '
'that covers everything.'
)
def check_completeness(question, initial_answer, client):
prompt = COMPLETENESS_CRITIQUE.format(
question=question,
answer=initial_answer
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=600,
messages=[{'role': 'user', 'content': prompt}]
)
return response.content[0].textMuster für Schadens- und Sicherheitskritik
Bei einer Schadenskritik soll das Modell seine Antwort vor der Anzeige für Benutzer auf mögliche negative Folgen prüfen. Das ist der Kern der Anwendung von CAI-Prinzipien in der Produktion.
HARM_CRITIQUE_PROMPT = (
'Review the following assistant response for potential harms:\n\n'
'User message: {user_message}\n'
'Assistant response: {response}\n\n'
'Consider:\n'
'- Could this response enable harmful actions?\n'
'- Could it be misused by someone with bad intentions?\n'
'- Does it respect the privacy and dignity of individuals?\n'
'- Could it cause psychological harm to vulnerable users?\n\n'
'If the response has issues, explain them and provide a revised '
'version that addresses the concerns while still being helpful. '
'If the response is fine, say "Response is appropriate" and quote it back.'
)
def safety_check(user_message, response, client):
prompt = HARM_CRITIQUE_PROMPT.format(
user_message=user_message,
response=response
)
result = client.messages.create(
model='claude-opus-4-5',
max_tokens=600,
messages=[{'role': 'user', 'content': prompt}]
)
return result.content[0].textKritik anhand mehrerer Kriterien
Bei Ausgaben mit hohem Risiko können Sie sie in einem einzigen Durchlauf anhand mehrerer Kriterien kritisieren, indem Sie diese ausdrücklich auflisten. Das ist effizienter als separate Kritikaufrufe für jedes einzelne Kriterium.
MULTI_CRITERIA_CRITIQUE = (
'Evaluate this response on three criteria:\n\n'
'Question: {question}\n'
'Response: {response}\n\n'
'Criteria:\n'
'1. ACCURACY: Are all facts correct and claims well-supported?\n'
'2. COMPLETENESS: Does it fully address the question?\n'
'3. CLARITY: Is it easy to understand for the target audience?\n\n'
'For each criterion, rate it Good/Fair/Poor and explain why.\n'
'Then provide an improved response that scores Good on all three.'
)
def multi_criteria_check(question, response, client):
prompt = MULTI_CRITERIA_CRITIQUE.format(
question=question,
response=response
)
result = client.messages.create(
model='claude-opus-4-5',
max_tokens=800,
messages=[{'role': 'user', 'content': prompt}]
)
return result.content[0].textDer Überarbeitungsschritt: Bewährte Verfahren
Der Überarbeitungs-Prompt sollte drei Dinge tun:
- das Modell an die ursprüngliche Anfrage erinnern (Kontext)
- die Ergebnisse der Kritik präsentieren
- um eine überarbeitete Antwort bitten, die die Probleme behebt
Bitten Sie das Modell bei der Überarbeitung nicht darum, die Kritik erneut zu erklären — es soll die Probleme einfach beheben. Ein handlungsorientierter Überarbeitungs-Prompt liefert bessere Ergebnisse.
# Good revision prompt: action-oriented
GOOD_REVISION = (
'Given this critique of your response, please write an improved version.\n\n'
'Original question: {question}\n'
'Critique: {critique}\n\n'
'Write only the improved response — no preamble, no meta-commentary:'
)
# Bad revision prompt: too passive
BAD_REVISION = (
'Here is a critique of your response. Can you maybe consider '
'revising it somewhat based on the feedback below?\n'
'Critique: {critique}'
# Missing original question context!
# Wishy-washy language reduces revision quality
)Mehrere Überarbeitungsrunden verketten
Bei sehr komplexen Qualitätsanforderungen reicht eine Kritik-Überarbeitungs-Runde oft nicht aus. Sie können mehrere Runden verketten, in denen jeweils ein anderes Prinzip angewendet oder nach verbleibenden Problemen gesucht wird.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def multi_round_revision(question, n_rounds=2):
# Round 0: Initial generation
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[{'role': 'user', 'content': question}]
).content[0].text
principles = [
'factual accuracy and avoiding unsupported claims',
'completeness — ensuring all parts of the question are answered',
]
for i, principle in enumerate(principles[:n_rounds]):
critique_prompt = (
f'Question: {question}\n'
f'Current response: {response}\n\n'
f'Critique for {principle} and provide an improved version:'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=512,
messages=[{'role': 'user', 'content': critique_prompt}]
).content[0].text
print(f'Round {i+1} complete')
return responseSelbstkritik bei der Codegenerierung
Selbstkritik ist besonders bei der Codegenerierung effektiv. Das Modell schreibt zunächst Code und überprüft ihn anschließend auf Bugs, Edge Cases und Sicherheitsprobleme — dabei entdeckt es häufig Fehler, die ihm im ersten Durchlauf entgangen sind.
CODE_CRITIQUE_PROMPT = (
'Review this Python code for correctness and security issues:\n\n'
'Task: {task}\n\n'
'Code:\n'
''''python\n'
'{code}\n'
''''\n\n'
'Check for:\n'
'1. Logic errors or off-by-one mistakes\n'
'2. Unhandled edge cases (empty input, None, division by zero)\n'
'3. Security issues (SQL injection, path traversal, etc.)\n\n'
'If issues exist, list them and provide a corrected version. '
'If the code is correct, say so and explain why it handles edge cases properly.'
)
def critique_code(task, code, client):
prompt = CODE_CRITIQUE_PROMPT.format(task=task, code=code)
result = client.messages.create(
model='claude-opus-4-5',
max_tokens=800,
messages=[{'role': 'user', 'content': prompt}]
)
return result.content[0].textSelf-Consistency als Alternative
Self-Consistency ist ein anderer Ansatz: Generieren Sie dieselbe Antwort N-mal und führen Sie anschließend eine Mehrheitsabstimmung durch oder bitten Sie das Modell, aus mehreren Entwürfen die beste Antwort zu erstellen.
Verwenden Sie Self-Consistency für Fragen mit eindeutig richtigen Antworten. Verwenden Sie Kritik und Überarbeitung, wenn Qualität mehrere Dimensionen umfasst (Genauigkeit + Tonalität + Sicherheit).
import anthropic
from collections import Counter
client = anthropic.Anthropic(api_key='sk-ant-...')
def self_consistency(question, n=5):
"""Generate N responses and pick the most common answer."""
responses = []
for _ in range(n):
r = client.messages.create(
model='claude-haiku-4-5',
max_tokens=100,
temperature=0.7,
messages=[{'role': 'user', 'content': question}]
)
responses.append(r.content[0].text.strip())
# Pick most common answer
vote = Counter(responses)
winner, count = vote.most_common(1)[0]
print(f'Consensus ({count}/{n}): {winner}')
return winner
result = self_consistency('What is the sum of angles in a triangle?')Wenn Kritik schadet: Das Risiko übermäßiger Kritik
Selbstkritik ist nicht immer hilfreich. Achten Sie auf folgende Fehlermuster:
- Schmeichlerische Kritik: Das Modell erklärt seine Antwort für großartig, obwohl sie falsch ist
- Übermäßige Vorsicht: Das Modell entfernt bei der Überarbeitung hilfreiche Informationen, weil sie riskant erscheinen
- Halluzinierte Korrekturen: Die Überarbeitung führt neue Fehler ein, die in der ursprünglichen Antwort nicht vorhanden waren
Mindern Sie diese Risiken, indem Sie ein anderes Modell für die Kritik verwenden, Kritiken auf konkrete Fakten stützen und überarbeitete Ausgaben anhand bekanntermaßen korrekter Antworten validieren.
Die Wirksamkeit von Kritik messen
Verfolgen Sie, ob Kritik die Ausgaben tatsächlich verbessert, indem Sie ursprüngliche und überarbeitete Antworten mit einem Referenzstandard vergleichen. So erkennen Sie, ob die zusätzlichen LLM-Aufrufe ihre Kosten rechtfertigen.
def measure_critique_lift(examples, generate_fn, critique_fn, metric_fn):
"""
Measure how much critique improves accuracy over initial generation.
"""
initial_scores = []
revised_scores = []
for ex in examples:
initial = generate_fn(ex.question)
revised = critique_fn(ex.question, initial)
initial_scores.append(metric_fn(ex.answer, initial))
revised_scores.append(metric_fn(ex.answer, revised))
avg_initial = sum(initial_scores) / len(initial_scores)
avg_revised = sum(revised_scores) / len(revised_scores)
print(f'Initial: {avg_initial:.1%}')
print(f'Revised: {avg_revised:.1%}')
print(f'Lift: +{avg_revised - avg_initial:.1%}')
return avg_revised - avg_initialWissenscheck: Zeitpunkt der Selbstkritik
Welches Muster eignet sich am besten, um sachliche Fehler in einer Antwort zu erkennen, bevor sie den Nutzern angezeigt wird?
Rückblick: Muster für Selbstkritik und Überarbeitung
Selbstkritik-Prompts fordern das Modell auf, seine eigene Ausgabe anhand bestimmter Kriterien — Genauigkeit, Vollständigkeit, Sicherheit oder Klarheit — zu überprüfen und anschließend eine verbesserte Überarbeitung zu erstellen. Effektive Muster: Genauigkeitsprüfung (auf sachliche Fehler prüfen), Vollständigkeitsprüfung (wurden alle Teile berücksichtigt?), Schadensprüfung (könnte dies schädliche Handlungen ermöglichen?) und Code-Review (auf Fehler und Randfälle prüfen). Verketten Sie bei Ausgaben mit hohen Risiken mehrere Durchläufe. Messen Sie die tatsächliche Verbesserung, um zu bestätigen, dass die zusätzlichen Kosten gerechtfertigt sind.
Lerne AI Prompt Engineering 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
- 53
- Lektionen
- 199
Häufig gestellte Fragen
Ist die Lektion „Muster für Selbstkritik und Überarbeitung“ kostenlos?
Ja — der vollständige Text von „Muster für Selbstkritik und Überarbeitung“ 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 „Muster für Selbstkritik und Überarbeitung“?
Modelle dazu anleiten, ihre eigenen Ausgaben anhand einer Verfassung zu bewerten und neu zu formulieren. 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 „Muster für Selbstkritik und Überarbeitung“?
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
- CAI-Prinzipien und Kritik-Prompts
- Muster für Selbstkritik und Überarbeitung
- Spannungsfeld zwischen Harmlosigkeit und Hilfsbereitschaft
- CAI in Anwendungen implementieren