Im Modul zu generativer KI haben Sie gelernt, dass der Eingabebereich von generativen KI-Modellen praktisch unbegrenzt ist. Um Ausgaben zu generieren, die den Erwartungen Ihrer Nutzer entsprechen, müssen Sie Prompts erstellen. Ein Prompt ist ein strukturierter Vertrag zwischen Ihrer Anwendung und dem Modell.
Ein gut formulierter Prompt:
- Gibt an, wie das LLM seine Antwort formulieren soll.
- Besteht aus mehreren Komponenten, die im Laufe der Zeit versioniert, getestet und verbessert werden können.
- Kann als gemeinsames Artefakt für die teamübergreifende Zusammenarbeit dienen.
In diesem Modul erfahren Sie, wie Sie effektive Prompts schreiben. Wir erklären, wie ein Prompt aufgebaut ist und wie seine Komponenten zwischen dem System und dem Endnutzer verteilt sind. Außerdem lernen Sie grundlegende Prompting-Techniken und die Szenarien kennen, in denen Sie die einzelnen Techniken anwenden können.
In diesem Modul verwenden wir ein gemeinsames Beispiel: BlogBuddy, ein KI-basierter Schreibassistent, der von der Verwendung der Prompt API durch CyberAgent inspiriert wurde.
Kehren Sie zum Modul für generative KI für den System-Blueprint für BlogBuddy zurück.
Prompt-Komponenten
Jede Prompt-Komponente spielt eine bestimmte Rolle bei der Steuerung des Modellverhaltens.
- Kontext: Legt die Rolle und Domäne des Modells fest, damit es weiß, wie es sich verhalten soll.
- Anweisung: Weist dem Modell eine bestimmte Aufgabe zu.
- Eingabevariablen: Situationsspezifischer Kontext, der von Ihrer Anwendung in Echtzeit bereitgestellt wird.
- Ausgabeformat: Definiert die erwartete Ausgabestruktur. Sie möchten beispielsweise JSON-Ausgaben.
- Beispiele: Zeigen Sie, wie die Aufgabe für eine oder mehrere andere Eingaben ausgeführt werden sollte.
- Einschränkungen: Legen Sie klare Grenzen fest, damit die Ausgabe konsistent, sicher und markenkonform ist.
Ihr Prompt kann einige oder alle dieser Komponenten enthalten. Das folgende Beispiel veranschaulicht diese Komponenten für die Funktion „Schreibassistent“ von BlogBuddy.
### Context
You are a writing assistant for blog authors.
Your job is to generate helpful, concise, and engaging content.
### Instruction
Generate 3 alternative titles for the user's blog post with a given style.
### Input variables
Here is the content of the blog post:
${blogPostContent}
Here is the desired style:
${titleStyle}
### Output format
Return valid JSON ONLY, in the following exact structure:
{
"titles": ["Title option 1", "Title option 2", "Title option 3"]
}
### Examples
Example input:
{
"blogPostContent": "I finally visited the small neighborhood café I've been eyeing for months...",
"titleStyle": "friendly"
}
Example output:
{
"titles": [
"A First Visit to the Neighborhood Café",
"Trying the Café I've Wanted to Visit for Months",
"My Experience at a Long-Awaited Local Spot"
]
}
### Constraints
- Each title must be under 128 characters.
- Titles must be original, not copied verbatim from the draft.
- Keep the tone natural and human. Avoid emojis unless explicitly requested.
- Avoid sensationalism or clickbait.
- If the draft includes multiple topics, choose the most prominent topic.
Beginnen Sie bei Ihren ersten Prompts mit den Grundlagen: der Anweisung und dem Ausgabeformat. Fügen Sie dann iterativ weitere Komponenten hinzu, während Sie die Ergebnisse analysieren und feststellen, welche genaueren Kontrollen für den Erfolg erforderlich sind.
System- und Nutzer-Prompts
Einige der Prompt-Komponenten sind fest codiert, während andere vom Endnutzer angegeben werden können:
Der System-Prompt wird von den Anwendungsentwicklern bereitgestellt und definiert das allgemeine Verhalten des Modells. Damit können die Rolle des Modells, der erwartete Ton, das Ausgabeformat (z. B. ein striktes JSON-Schema) und alle globalen Einschränkungen festgelegt werden. Im Systemprompt werden auch Anforderungen an Sicherheit und Verantwortung codiert. Sie bleibt über Anfragen hinweg konsistent und bietet eine stabile Grundlage für das Verhalten des Modells.
Der Nutzer-Prompt enthält die unmittelbare Anfrage, die zu einer Ausgabe führt. Der Nutzer fordert eine bestimmte Aufgabe an, die bestimmte Variablen enthalten kann. Beispiele: „Schlage drei Titel für diesen Beitrag vor“, „Führe diesen Absatz fort“ oder „Formuliere diesen Text formeller“.
Bei den meisten generativen KI-APIs können Sie einen Prompt als Array von Nachrichten strukturieren, die jeweils eine Rolle (System oder Nutzer) und Inhalte haben. Dadurch ist es einfacher, stabile, globale Anweisungen von dynamischen, anfragebezogenen Eingaben zu trennen.
Wie entscheiden Sie, welche Komponenten in den Systemprompt gehören und was der Nutzer angeben soll? Die Antwort hängt davon ab, wie flexibel die Nutzererfahrung ist und wie leistungsfähig Ihr Modell ist.
Eingeschränkte Anwendungsfälle
Bei sehr spezifischen Anwendungsfällen kann der Großteil des Prompts im Systemprompt vordefiniert werden. In BlogBuddy können Nutzer beispielsweise auf Show Titles (Titel anzeigen) klicken, um generierte Titelvorschläge für ihren Entwurf aufzulisten.

Die Aufgabe ist festgelegt, das Ausgabeformat ist bekannt und der Nutzer muss keinen zusätzlichen Kontext angeben, um das erwartete Ergebnis zu erhalten. In diesem Fall platzieren Sie alle stabilen Regeln, Stilrichtlinien, Ausgabeschemas und Beispiele im Systemprompt.
Wenn wir das mit der Prompt API erstellen möchten, verwenden wir initialPrompts, um das Verhalten auf Systemebene für die gesamte Sitzung zu definieren:
// Defines stable behavior for the entire session
const session = await LanguageModel.create({
initialPrompts: [
{
role: "system",
content: `You are a blog-writing assistant.
Your task is to generate high-quality titles for blog posts.
Always respond in concise, friendly language.
Return exactly 3 alternative titles.
Produce valid JSON with a "titles" array of strings.`
}
]
});
Wenn der Nutzer auf Show Titles (Titel anzeigen) klickt, wird der Prompt für die aktuellen Inhalte aufgerufen:
// The only variable input is the blog content
const result = await session.prompt(blogContent);
Im Laufe der Zeit wünschen sich Nutzer möglicherweise mehr Flexibilität und Kontrolle. In diesem Fall können Sie bestimmte Komponenten mit Schnittstellensteuerelementen in den Nutzer-Prompt verschieben. Zum Beispiel ein Drop-down-Menü mit Stil- oder Tonvorgaben.
Zu viele strukturierte Aktionen können jedoch die Nutzerfreundlichkeit beeinträchtigen. In diesem Fall sollten Sie vielleicht zu einem offeneren Design wechseln, bei dem Nutzer die meisten Prompts selbst angeben können. Weitere Informationen zur Optimierung dieses Designs finden Sie im Modul zu UX-Mustern.
Für flexible Aufgaben sind detaillierte Nutzer-Prompts erforderlich
Eine offene, interaktive Erfahrung, die Nutzern hilft, Blogbeiträge von Grund auf zu schreiben, bietet ihnen mehr Flexibilität. Sie können nach Ideen, Gliederungen, Überarbeitungen, Änderungen des Tons oder Brainstormings fragen oder angeben, wie genau eine Aufgabe ausgeführt werden soll. Für diese Art von Anwendung benötigen Sie wahrscheinlich ein leistungsstärkeres, serverseitiges Modell.

Bei flexiblen Aufgaben muss der Nutzer mehr Informationen angeben, da die möglichen Optionen viel breiter gefasst sind. Der Systemprompt bestimmt weiterhin das Gesamtverhalten.
Die Best Practices sind:
- Geben Sie im System-Prompt stabile Regeln, eine Struktur und Beispiele an. Fügen Sie dynamische Inhalte und aufgabenspezifische Anfragen in den Nutzer-Prompt ein.
- Je offener die UX ist, desto flexibler muss der Nutzer-Prompt sein, um unvorhersehbare Eingaben zu berücksichtigen.
- Je mehr der Nutzer-Prompt leisten muss, desto leistungsfähiger muss das Modell sein, da es mit weniger integrierter Struktur eine größere Vielfalt bewältigen muss.
Mit diesen Regeln können Sie das Verhältnis zwischen Kontrolle und Nutzerflexibilität in Ihrem Produktkontext schrittweise optimieren. Beobachten Sie die Einstellungen und das Verhalten der Nutzer genau. Mehr Flexibilität führt nicht immer zu einem tatsächlichen Mehrwert. Außerdem müssen Ihre Nutzer die Zeit, die Fähigkeiten und die kognitive Bandbreite haben, um umfangreichere Prompts zu erstellen.
Häufig verwendete Prompt-Techniken
Entwickler probieren in der Regel mehrere Prompt-Techniken aus, um herauszufinden, was für ihren Anwendungsfall und ihr Modell am besten funktioniert.
Zero-Shot-Prompts
Sie beschreiben die Aufgabe für das Modell und hoffen auf das Beste. Beispiel:
"What is the capital of France?"
Zero-Shot-Prompting ist eine effiziente Baseline für viele KI-Aufgaben. Bei nicht komplexen Anfragen, z. B. zum Abrufen von enzyklopädischem Wissen, ist diese Technik wahrscheinlich am besten geeignet. In den meisten realen Anwendungen müssen Sie Ihren Prompt jedoch mit zusätzlichen Bedingungen und Logik erweitern.
Few-Shot-Prompting
Beim Few-Shot-Prompting geben Sie Beispiele an, um das richtige Verhalten, den richtigen Stil, die richtige Struktur und andere wichtige Variablen zu demonstrieren. Hier ist ein Beispiel für einen Prompt für die Sentimentanalyse:
You classify user messages into one of the following categories:
- "positive"
- "negative"
- "neutral"
Here are examples to guide your classifications:
Input: "I love this product! It works perfectly."
Output: { "label": "positive" }
Input: "This is terrible. I want a refund."
Output: { "label": "negative" }
Few-Shot-Prompting ist für diese Art von pseudoprädiktiver Aufgabe nützlich. Es kann auch auf Aufgaben angewendet werden, die einer erkennbaren Struktur folgen, wie die Titelerstellung in Abbildung 1.
Wenn der Ausgabebereich sehr breit ist, z. B. bei offenen oder langen Inhalten, ist Few-Shot-Prompting wahrscheinlich nicht die beste Methode. Es ist schwierig oder sogar unmöglich, Beispiele zu liefern, die den Raum sinnvoll abdecken.
Chain-of-Thought Prompting
Sie fordern das Modell auf, Schritt für Schritt zu argumentieren, bevor es eine Antwort generiert. Die Schritte können explizit beschrieben oder vom Modell definiert werden. Beispiel:
"Think step-by-step to identify the main idea of this paragraph. Then produce a
short heading under 60 characters."
Chain-of-Thought eignet sich hervorragend für Aufgaben, die mehrstufige Überlegungen und Ausführungen erfordern, z. B. das Erstellen eines Blogbeitrags oder das Treffen komplexer Entscheidungen. Sie ist die Haupttechnik hinter sogenannten Reasoning-Modellen.
Das kann teuer werden. Das Generieren von Schritt-für-Schritt-Begründungsspuren erhöht den Rechenaufwand, die Kosten und die Latenz. Verwenden Sie sie nur, wenn Ihr Anwendungsfall komplexes Reasoning und Planung erfordert.
Prompts zur Selbstreflexion
Nach der ersten Generierung fordern Sie das Modell auf, seine eigene Ausgabe zu kritisieren und zu überarbeiten. Beispiel:
"Review your previous output.
Identify unclear phrasing and rewrite it more concisely."
Die Selbstreflexion ist besonders nützlich für Aufgaben, die von iterativer Optimierung profitieren, z. B. Tools zum Bearbeiten oder Umschreiben von Text. Die Implementierung ist schnell und kann zu erheblichen Qualitätssteigerungen führen. Ein Selbstreflexionszyklus ist sinnvoll, wenn Ihr Prompt gut funktioniert. Zuerst können Sie die Ausgabe optimieren, um sie klarer zu gestalten oder die Nutzerfreundlichkeit zu erhöhen.
Wichtige Erkenntnisse
In diesem Modul haben Sie gelernt, wie Prompts aus strukturierten Komponenten erstellt werden. In der Praxis ist Prompt Engineering sehr experimentell. Klarheit und Zuverlässigkeit ergeben sich erst nach mehreren Überarbeitungsrunden.
Im nächsten Modul geht es um die bewertungsbasierte Prompt-Entwicklung. So können Sie Prompts systematisch verbessern und herausfinden, was für Ihr Produkt und Ihre Nutzer am besten funktioniert.
Ressourcen
Für jede dieser Techniken gibt es eigene Varianten und Best Practices. Es gibt eine Vielzahl detaillierter externer Ressourcen, z. B.:
- Leitfaden für Prompt-Engineering von Google Cloud
- Prompt Engineering Guide von DAIR
- Prompting made simple von Janna Lipenkova
- Lesen Sie Kapitel 6 in The Art of AI Product Development.
Sehen Sie in der Dokumentation des ausgewählten Modells nach, ob es spezifische Empfehlungen gibt, mit denen Sie die bestmöglichen Ergebnisse erzielen können.
Wissen testen
Welche Arten von Regeln können Sie in einem Systemprompt angeben?
Welche Technik sollten Sie verwenden, wenn das Modell Schritt für Schritt vorgehen soll, bevor es die Antwort generiert?
Wann ist Few-Shot-Prompting am nützlichsten?
Was ist die Prompting-Technik zur Selbstreflexion?