Vage und spezifische Prompts im Vergleich
Beispiele nebeneinander zeigen, welchen großen Unterschied Spezifität macht
Vage und spezifische Prompts im Vergleich ist eine kostenlose AI Prompt Engineering-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 Prompt Engineering-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Prompt Engineering-Kurs umfasst insgesamt 4 Lektionen.
Methode des direkten Vergleichs
Der schnellste Weg, die Qualität von Prompts zu verinnerlichen, besteht darin, konkrete Überarbeitungen direkt nebeneinander zu untersuchen und zu analysieren, warum die jeweilige Verbesserung funktioniert.
In dieser Lektion untersuchen wir fünf vage Prompts und ihre konkreten Überarbeitungen. Für jedes Paar ermitteln wir die genau vorgenommenen Änderungen und den Mechanismus, durch den jede Verbesserung das Modell zu einer besseren Ausgabe führt.
Paar 1: Der Blogbeitrag
Vage Version: 'Verfassen Sie einen Blogbeitrag über Remote-Arbeit.'
Konkrete Version: 'Verfassen Sie einen 600 Wörter langen Blogbeitrag mit dem Titel "Die 3 Gewohnheiten bei Remote-Arbeit, die meine Produktivität ruiniert haben (und was ich jetzt tue)" für ein Publikum aus Softwareentwicklern mit mittlerem Erfahrungsniveau. Ich-Perspektive, gesprächiger Ton. Struktur: 1 einleitender Absatz, 3 Abschnitte mit H2-Überschriften, 1 abschließender CTA zum Herunterladen einer kostenlosen Vorlage.'
Warum das funktioniert: Ergänzt Wortanzahl, Titel (und damit den Blickwinkel), Zielgruppe, Erzählperspektive, Ton, Struktur und ein bestimmtes Element am Ende. Nichts bleibt dem Zufall überlassen.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=800,
messages=[{
'role': 'user',
'content': (
'Write a 600-word blog post titled '
'"The 3 Remote Work Habits That Killed My Productivity (And What I Do Now)" '
'for an audience of mid-level software developers. '
'First-person voice, conversational tone. '
'Structure: 1-paragraph intro, 3 H2 sections (one per habit), '
'1 closing paragraph with a CTA to download a free productivity template.'
)
}]
)
print(response.content[0].text[:400], '...')Paar 2: Das Code-Review
Vage Version: 'Überprüfen Sie meinen Code.'
Konkrete Version: 'Überprüfen Sie die folgende Python-Funktion. Konzentrieren Sie sich ausschließlich auf: 1) Korrektheitsfehler, 2) nicht behandelte Randfälle. Kommentieren Sie NICHT Stil, Benennung oder Formatierung. Ausgabeformat: nummerierte Liste der Probleme, jeweils mit: Problembeschreibung (1 Satz), betroffene Zeile(n), vorgeschlagene Lösung (Codeausschnitt).'
Warum das funktioniert: Definiert den Prüfungsumfang (Korrektheit und Randfälle), schließt andere Dimensionen ausdrücklich aus (Stil und Benennung) und legt eine präzise Ausgabestruktur mit drei Feldern pro Befund fest.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
code = (
'def get_user(users, user_id):\n'
' for user in users:\n'
' if user["id"] == user_id:\n'
' return user["name"]\n'
' return users[0]["name"]\n'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Review the following Python function.\n'
'Focus ONLY on: 1) correctness bugs, 2) unhandled edge cases.\n'
'Do NOT comment on style, naming conventions, or formatting.\n'
'Output format: numbered list. Each item: issue (1 sentence), '
'affected line, suggested fix as a code snippet.\n\n'
+ code
)
}]
)
print(response.choices[0].message.content)Paar 3: Die E-Mail-Betreffzeile
Vage Version: 'Verfassen Sie Betreffzeilen für meinen Newsletter.'
Konkrete Version: 'Verfassen Sie 10 Betreffzeilen für einen wöchentlichen Newsletter über Python für Data Scientists. Jede Betreffzeile muss weniger als 50 Zeichen enthalten, einen Aufhänger für eine hohe Öffnungsrate haben (Neugierlücke, nummerierte Liste oder überraschende Behauptung) und Spam-Triggerwörter wie FREE oder URGENT vermeiden. Geben Sie die Ergebnisse als nummerierte Liste aus und kennzeichnen Sie den Aufhänger-Typ in eckigen Klammern.'
Warum das funktioniert: Legt Anzahl, Längenbeschränkung, Aufhänger-Anforderung, Ausschlussliste und ein gekennzeichnetes Ausgabeformat fest – aus einer vagen kreativen Aufgabe wird eine regelbasierte Generierungsaufgabe.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=400,
messages=[{
'role': 'user',
'content': (
'Write 10 email subject lines for a weekly newsletter '
'about Python tips for data scientists. '
'Requirements:\n'
'- Each under 50 characters\n'
'- Must use one of these hooks: [CURIOSITY GAP], [NUMBER], or [SURPRISING CLAIM]\n'
'- No spam words: FREE, URGENT, ACT NOW, LIMITED TIME\n'
'- Output as numbered list with hook type in brackets at the end of each line'
)
}]
)
print(response.content[0].text)Paar 4: Die Besprechungszusammenfassung
Vage Version: 'Fassen Sie dieses Besprechungsprotokoll zusammen.'
Konkrete Version: 'Fassen Sie dieses Besprechungsprotokoll im folgenden Format zusammen: 1) Zweck der Besprechung (1 Satz), 2) Getroffene wichtige Entscheidungen (Aufzählung, höchstens 5), 3) Aufgaben (Tabelle mit den Spalten: Aufgabe, Verantwortliche Person, Frist), 4) Offene Fragen (nummerierte Liste). Wenn Informationen für ein Feld fehlen, schreiben Sie N/A. Fügen Sie keine Meinungen ein – nur Fakten und Zusagen.'
Warum das funktioniert: Liefert eine genaue Vorlage, legt Grenzen für jeden Abschnitt fest, definiert das Tabellenschema, gibt eine Ersatzangabe für fehlende Daten vor und ergänzt eine Tonvorgabe (nur Fakten).
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
transcript = (
'John: We need to decide on the launch date. '
'Sarah: I think Q3 works. We need the API done first. '
'John: Agreed. Sarah, can you own the API? '
'Sarah: Yes, I can have it by July 15th. '
'John: Great. Who handles marketing? '
'Mike: I will, but I need the feature list first. '
'John: We still need to confirm pricing — tabled for next week.'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Summarize this meeting transcript in this exact format:\n'
'1. Meeting Purpose: (1 sentence)\n'
'2. Key Decisions: (bullet list, max 5)\n'
'3. Action Items: (markdown table: Task | Owner | Deadline)\n'
'4. Open Questions: (numbered list)\n'
'Missing info: write N/A. Facts only, no opinions.\n\n'
'Transcript:\n' + transcript
)
}]
)
print(response.choices[0].message.content)Paar 5: Die Erklärung
Vage Version: 'Erklären Sie maschinelles Lernen.'
Konkrete Version: 'Erklären Sie maschinelles Lernen in 3 Absätzen für eine Produktmanagerin oder einen Produktmanager in einem Gesundheitsunternehmen, die oder der Statistik versteht, aber noch nie Code geschrieben hat. Absatz 1: was es ist und wie es sich von herkömmlicher Programmierung unterscheidet. Absatz 2: ein Beispiel aus dem Gesundheitswesen (Diagnostik oder Arzneimittelentwicklung). Absatz 3: ein verbreitetes Missverständnis, das vermieden werden sollte. Insgesamt höchstens 200 Wörter.'
Warum das funktioniert: Definiert die Struktur (3 Absätze mit festgelegten Themen), die Zielgruppe (konkrete Rolle, Domäne und Vorkenntnisse), die Inhaltsanforderungen für jeden Absatz und eine Gesamtwortgrenze.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=350,
messages=[{
'role': 'user',
'content': (
'Explain machine learning in exactly 3 paragraphs. '
'Audience: a product manager at a healthcare company who understands statistics '
'but has never written code.\n'
'Paragraph 1: what ML is and how it differs from traditional programming.\n'
'Paragraph 2: a specific real-world healthcare example (diagnosis or drug discovery).\n'
'Paragraph 3: one common misconception non-technical people have about ML.\n'
'Max 200 words total. No bullet points — flowing prose only.'
)
}]
)
print(response.content[0].text)Die Anatomie einer guten Überarbeitung
Über alle fünf Paare hinweg tut jede wirksame Überarbeitung dieselben Dinge:
- Ersetzt ein vages Verb ('verfassen', 'überprüfen', 'erklären') durch eine strukturierte Aufgabe
- Benennt das Ausgabeformat (Liste, Tabelle, Absätze mit festgelegtem Inhalt)
- Fügt messbare Vorgaben hinzu (Wortanzahl, Anzahl der Elemente, Zeichenbegrenzungen)
- Legt die Zielgruppe fest (Rolle, Vorkenntnisse und Kontext)
- Fügt mindestens eine Ausschlussregel hinzu (was weggelassen werden soll)
# Pattern extractor: identify improvements between two prompts
def analyze_improvement(vague, specific):
improvements = []
words = specific.lower()
if any(str(n) in words for n in range(10, 10000)):
improvements.append('Quantitative constraint added')
if 'do not' in words or 'exclude' in words or 'avoid' in words or 'no ' in words:
improvements.append('Negative constraint added')
if 'audience' in words or 'for a' in words or 'targeting' in words:
improvements.append('Audience specified')
if 'format:' in words or 'table' in words or 'list' in words or 'paragraph' in words:
improvements.append('Output format defined')
if 'example' in words or 'such as' in words or 'like:' in words:
improvements.append('Example provided')
print('Improvements detected:')
for i in improvements:
print(f' + {i}')
vague = 'Write a blog post about remote work.'
specific = 'Write a 600-word blog post for mid-level developers with 3 H2 sections and a closing CTA. No bullet points. Avoid generic productivity advice.'
analyze_improvement(vague, specific)Was passiert, wenn nur eine Dimension ergänzt wird
Schon eine einzige Verbesserung hilft – aber teilweise konkrete Vorgaben lassen weiterhin große Lücken. Vergleichen Sie:
- 'Verfassen Sie einen Blogbeitrag über Remote-Arbeit' – keine Vorgaben
- 'Verfassen Sie einen 600 Wörter langen Blogbeitrag über Remote-Arbeit' – nur die Länge ist festgelegt; Blickwinkel, Zielgruppe und Struktur bleiben vage
- 'Verfassen Sie einen 600 Wörter langen Blogbeitrag über Remote-Arbeit für Entwickler in gesprächigem Ton' – Länge, Zielgruppe und Ton sind festgelegt; Struktur, CTA und Stil der Überschriften bleiben vage
Jede Dimension, die Sie nicht festlegen, wird zum Glücksspiel. Ergänzen Sie so viele Dimensionen, wie Ihre Informationen zulassen.
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Progressively more specific prompts
prompts = [
'Write about Python.',
'Write a 200-word article about Python.',
'Write a 200-word article about Python for beginners who know no programming.',
(
'Write a 200-word article about Python for beginners who know no programming. '
'Start with a real-world analogy. Use 3 short paragraphs. '
'End with one actionable first step they can take today.'
)
]
for i, p in enumerate(prompts, 1):
print(f'Prompt {i} ({len(p)} chars): {p[:80]}...' if len(p) > 80 else f'Prompt {i}: {p}')
print()Die Vergleichspaar-Technik in der Praxis anwenden
Die Vergleichspaar-Technik ist ein leistungsfähiges Werkzeug zur Fehlersuche. Wenn Sie eine schlechte Ausgabe erhalten:
- Speichern Sie den vagen Prompt, der die schlechte Ausgabe erzeugt hat
- Ermitteln Sie die eine Dimension, die das Problem verursacht hat
- Schreiben Sie eine konkrete Überarbeitung, die nur auf diese Dimension abzielt
- Führen Sie beide Prompts aus und vergleichen Sie die Ausgaben
- Ermitteln Sie, was noch verbessert werden muss – und fügen Sie dann die nächste Vorgabe hinzu
Dieser wissenschaftliche Ansatz zeigt Ihnen schnell, welche Vorgaben für Ihren Anwendungsfall am wichtigsten sind.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
def compare_prompts(prompt_a, prompt_b, label_a='A', label_b='B'):
client_ref = anthropic.Anthropic(api_key='sk-ant-your-key-here')
for label, prompt in [(label_a, prompt_a), (label_b, prompt_b)]:
response = client_ref.messages.create(
model='claude-opus-4-5',
max_tokens=150,
messages=[{'role': 'user', 'content': prompt}]
)
print(f'=== {label} ===')
print(prompt)
print('--- OUTPUT ---')
print(response.content[0].text)
print()
compare_prompts(
prompt_a='Explain APIs.',
prompt_b='Explain APIs in 3 sentences for a non-technical startup founder. Analogy required.',
label_a='VAGUE',
label_b='SPECIFIC'
)Die Zwei-Minuten-Prüfung des Prompts
Führen Sie vor dem Absenden eines wichtigen Prompts diese zweiminütige Prüfung durch. Wenn Sie eine Frage mit 'Nein' beantworten, ergänzen Sie das fehlende Detail:
- Ist das Format angegeben? (Liste / Tabelle / Absatz / JSON)
- Ist die Länge festgelegt? (Wortanzahl / Anzahl der Elemente)
- Ist die Zielgruppe beschrieben? (Rolle und Vorkenntnisse)
- Ist das Ziel klar? (Wofür die Ausgabe bestimmt ist)
- Gibt es mindestens einen Ausschluss? (Was weggelassen werden soll)
- Gibt es ein Beispiel oder eine Vorlage? (Wenn der Stil eine Rolle spielt)
def two_minute_audit(prompt):
score = 0
checks = {
'Format specified': any(w in prompt.lower() for w in
['list', 'table', 'paragraph', 'json', 'bullet', 'sentence', 'word']),
'Length given': any(c.isdigit() for c in prompt),
'Audience named': any(w in prompt.lower() for w in
['for a', 'audience', 'targeting', 'developer', 'manager', 'beginner']),
'Exclusion added': any(w in prompt.lower() for w in
['do not', 'avoid', 'exclude', 'no ', 'without', 'never']),
'Goal stated': any(w in prompt.lower() for w in
['goal', 'purpose', 'so that', 'in order to', 'will be used']),
}
print('Prompt Audit:')
for check, passed in checks.items():
icon = 'PASS' if passed else 'FAIL'
print(f' [{icon}] {check}')
if passed: score += 1
print(f'Score: {score}/{len(checks)}')
two_minute_audit(
'Write 5 bullet-point suggestions for improving user onboarding '
'for a B2B SaaS app targeting first-time non-technical users. '
'Avoid suggestions that require engineering work. Each bullet: max 25 words.'
)Ihre Prompt-Bibliothek aufbauen
Speichern Sie jedes Mal den Prompt, der eine hervorragende Ausgabe erzeugt. Bauen Sie eine persönliche Prompt-Bibliothek auf, die nach Aufgabentyp organisiert ist.
Ein guter Eintrag in einer Prompt-Bibliothek enthält:
- Die Prompt-Vorlage mit Platzhaltern wie
[AUDIENCE],[WORD_COUNT] - Den Anwendungsfall, für den sie entwickelt wurde
- Das verwendete Modell und die verwendeten Einstellungen
- Eine Notiz dazu, was sie wirksam macht
Mit der Zeit wird Ihre Bibliothek zu Ihrer wertvollsten Ressource für KI-gestützte Produktivität.
# Example prompt library entry
prompt_library = {
'meeting_summary': {
'template': (
'Summarize the following meeting transcript in this format:\n'
'1. Purpose: (1 sentence)\n'
'2. Decisions: (bullet list, max 5)\n'
'3. Action Items: (table: Task | Owner | Deadline)\n'
'4. Open Questions: (numbered list)\n'
'Missing info: N/A. Facts only.\n\nTranscript:\n[TRANSCRIPT]'
),
'use_case': 'Post-meeting automation for Slack or Notion',
'model': 'claude-opus-4-5',
'temperature': 0,
'notes': 'Works best with verbatim transcripts, not paraphrased notes'
}
}
# Use the template
def run_meeting_summary(transcript):
template = prompt_library['meeting_summary']['template']
return template.replace('[TRANSCRIPT]', transcript)
print(run_meeting_summary('Alice: We decided to ship v2 next Friday...')[:200])Wissensüberprüfung
Welche einzelne Änderung hat die Prompt-Qualität in allen fünf Vergleichspaaren dieser Lektion am beständigsten verbessert?
Vage Version vs. konkrete Version – Zusammenfassung
Die fünf Vergleichspaare zeigen ein einheitliches Muster bei den Merkmalen, die Überarbeitungen von Prompts wirksam machen:
- Ausgabestruktur ist die Verbesserung mit dem höchsten Nutzen – legen Sie sie immer fest
- Wort- oder Elementanzahl macht jede Diskussion über die Länge überflüssig
- Beschreibung der Zielgruppe stimmt Wortwahl und Detailtiefe automatisch ab
- Ausschlussregeln verhindern vorhersehbare allgemeine Inhalte
- Teilweise konkrete Vorgaben lassen weiterhin Lücken – jede nicht festgelegte Dimension bleibt eine Vermutung
- Prompt-Bibliotheken speichern erfolgreiche Vorlagen zur wiederholten Verwendung
Häufig gestellte Fragen
Ist die Lektion „Vage und spezifische Prompts im Vergleich“ kostenlos?
Ja — der vollständige Text von „Vage und spezifische Prompts im Vergleich“ 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 „Vage und spezifische Prompts im Vergleich“?
Beispiele nebeneinander zeigen, welchen großen Unterschied Spezifität macht 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 4 von 4.
Wie lange dauert die Lektion „Vage und spezifische Prompts im Vergleich“?
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
- Warum Spezifität wichtig ist
- Mehrdeutigkeiten aus Prompts entfernen
- Konkrete Details hinzufügen
- Vage und spezifische Prompts im Vergleich