Design wechseln

Prompt Engineering – Fortgeschrittene Praxis: Von Tricks zur Methodik

Easton editorial illustration: agent framework comparison toolbox

Die 17. Testergebnisse liegen vor.

Dieselbe Aufforderung: „Bitte helfen Sie mir, den Leistungsengpass dieses Codes zu analysieren und Optimierungsvorschläge zu machen.“ Am Montagmorgen gab Claude eine ausführliche und professionelle Antwort, aber am Freitagnachmittag gab er eine Menge leeren Unsinn von sich. Ich habe versucht, das Modell zu ändern. ChatGPT hat den Code direkt geändert, ohne zu fragen, ob er geändert werden muss oder zu erklären, warum er geändert werden muss.

Die Wirkung von Prompt schwankt immer zwischen „ok“ und „überhaupt nicht“. Bei der KI-gestützten Programmierung und der Erstellung von Agent-Anwendungen bereitet diese Instabilität Kopfschmerzen. Später erkannte ich ein Problem: Ich hatte Prompt mit verstreuten Techniken zusammengestellt und dachte nie daran, eine echte Methodik zu etablieren.

Dieser Artikel soll diesen Sachverhalt verdeutlichen. Lassen Sie uns vom „Kenntnis einiger Routinen“ zum „Beherrschen der Systemmethodik“ über das dreischichtige Prompt-Technologie-Framework, die Denkkette und die Prinzipien von ReAct, dem automatisierten Optimierungstool DSPy und darüber sprechen, wie Claude und ChatGPT unterschiedliche Eingabeaufforderungen schreiben. Abschließend möchte ich eine Reihe praktischer Bewertungsmethoden vorstellen. Ich weiß nicht, ob Prompt effektiv ist oder nicht. Daher ist es nur ein Scherz, über Optimierung zu sprechen.

Warum wir von „Routine“ zu „Methodik“ übergehen müssen

Vielleicht haben Sie diese „Routinen“ schon einmal gehört: Bitten Sie die KI, „bitte Schritt für Schritt zu denken“, fügen Sie ein paar Beispiele hinzu, die sie nachahmen soll, legen Sie eine Rolle dafür fest und sagen Sie „Sie sind ein Experte“ … Diese Techniken sind in der Tat nützlich, aber das Problem ist, dass der Effekt zu instabil ist.

Erfahrungsbedingte Einschränkungen

Im Zeitraum 2023–2024 werden die meisten Prompt-Technologien erlebnisorientiert sein. Was ist erlebnisorientiert? Um es ganz klar auszudrücken bedeutet es „Probieren Sie es aus“ – ändern Sie ein paar Wörter, führen Sie es aus, verwenden Sie es, wenn der Effekt gut ist, und ändern Sie es, wenn es nicht funktioniert. Dieser Ansatz weist mehrere offensichtliche Schwachstellen auf:

Auswirkungen sind unvorhersehbar. Die gleiche Eingabeaufforderung kann ungültig werden, wenn Sie das Modell ändern. Selbst wenn dasselbe Modell in unterschiedlichen Zeiträumen aufgerufen wird, kann die Ausgabequalität sehr unterschiedlich sein. Ich habe viele Leute (einschließlich mir) gesehen, die Stunden damit verbracht haben, Prompt anzupassen, nur um dann am nächsten Tag festzustellen, dass die gute Version von gestern nicht mehr funktioniert.

Schwer zu reproduzieren und weiterzugeben. Sie rufen eine gute Eingabeaufforderung auf, aber die Wirkung ist anders, wenn Ihre Kollegen sie verwenden. Warum? Weil Ihre Eingabeaufforderung möglicherweise einen Kontext enthält, der Ihnen nicht bewusst ist – beispielsweise darüber, worüber Sie zuvor mit diesem Modell gesprochen haben, Ihre Schreibgewohnheiten usw. Diese Dinge können nicht in das Dokument geschrieben werden und andere können sie nicht reproduzieren.

Fehlende Bewertungskriterien. Ist eine Eingabeaufforderung sinnvoll? Meistens kann man sich nur auf das Gefühl verlassen. „Die Ausgabe sieht diesmal okay aus“ – dieses Urteil ist zu subjektiv. Ohne quantitative Indikatoren ist eine systematische Optimierung nicht möglich.

89%
Korrektheit beim ersten Verständnis
Source: Testdaten, nachdem ein Finanztechnologieunternehmen die 3C-Formel übernommen hat

Es gibt recht interessante Daten: Bevor ein Finanztechnologieunternehmen die systematische Prompt-Methode einsetzte (sie nennen sie die „3C-Formel“ – Kontext, Einschränkung, Inhalt), betrug die Genauigkeitsrate des ersten Verständnisses nur 61 %. Nach Einführung eines systematischen Rahmens stieg diese Zahl auf 89 %. Das ist keine kleine Verbesserung, sondern ein qualitativer Sprung.

Transformation 2025-2026

Ab 2025 durchläuft Prompt Engineering einen Wandel – von der „manuellen Parameteranpassung“ zum „systematischen Engineering“. Bei dieser Transformation gibt es drei entscheidende Durchbrüche:

Modularer Aufbau. Teilen Sie Prompt in wiederverwendbare Komponenten auf und setzen Sie sie wie beim Schreiben von Code zusammen. Anstatt jedes Mal eine lange Eingabeaufforderung von Grund auf neu zu schreiben, können Sie mehrere Standardmodule kombinieren. Der Vorteil dieses Ansatzes besteht darin, dass Komponenten einzeln getestet und optimiert werden können und die Gesamtstabilität erheblich verbessert wird.

Automatisierte Optimierung. Das Framework beginnt damit, Eingabeaufforderungen für Sie zu optimieren, anstatt sie manuell anzupassen. DSPy ist in dieser Hinsicht das repräsentativste Framework – Sie definieren Aufgaben und Bewertungskriterien und es kann automatisch und iterativ die optimale Prompt-Konfiguration finden. Der Kern dieses Konzepts lautet: „Programmieren, nicht auffordern“.

Standardisierte Bewertung. Mit quantitativen Indikatoren und Testrahmen kann die Wirksamkeit von Prompt objektiv gemessen werden. Tools wie DeepEval und Promptfoo bieten Bewertungsdimensionen: Genauigkeit, Konsistenz, Sicherheit und Kosteneffizienz. Die Bewertung basiert nicht mehr auf Gefühlen, sondern auf Daten.

Ehrlich gesagt haben diese drei Dinge meine Arbeitsweise völlig verändert. Früher habe ich Prompt angepasst, um „mein Glück zu versuchen“, aber jetzt ähnelt es eher der Technik – mit Design, Tests, Iteration und Datenunterstützung. Dies ist der Kernwechsel von „Routine“ zu „Methodik“.

Dreischichtiges Prompt-Technologie-Framework

Es wird viel klarer, wenn wir die Prompt-Technologie in drei Schichten verstehen. Die Basisschicht, die Argumentationsschicht und die Systemschicht lösen jeweils unterschiedliche Arten von Problemen.

Grundebene: Lassen Sie das Model Ihre Worte verstehen

Diese Technologieebene löst das grundlegendste Problem: Wie lässt sich das Modell so ausgeben, wie Sie es möchten?

Zero-Shot, Null-Beispiel-Eingabeaufforderung, gibt keine Beispiele an und lässt das Modell die Aufgabe direkt abschließen. Zum Beispiel:

Bitte erläutern Sie, was eine Microservices-Architektur ist.

Diese Methode ist einfach und direkt und eignet sich für einfache Aufgaben oder Fragen zum gesunden Menschenverstand. Bei komplexen Aufgaben oder Ausgaben, die ein bestimmtes Format erfordern, ist der Effekt von Zero-Shot jedoch häufig instabil.

Wenige Aufnahmen, wenige Beispielaufforderungen, geben Sie dem Modell 2-5 Beispiele, damit es lernen kann. Wenn Sie beispielsweise möchten, dass das Modell Ihnen beim Verfassen von Produktbeschreibungen hilft, sollte der Stil lebendiger sein:

Bitte verfassen Sie eine Beschreibung für Ihr neues Produkt gemäß dem folgenden Beispielstil:

Beispiel 1:
Produkt: Kabelloses Bluetooth-Headset
Beschreibung: Ein kleines Universum, das Sie auf Ihren Ohren tragen, die Klangqualität ist so klar wie bei einem Live-Konzert und die Akkulaufzeit ist lang genug, um Sie auf einem Überlandflug zu begleiten.

Beispiel 2:
Produkt: Tragbare Kaffeemaschine
Beschreibung: Packen Sie das Café in Ihren Rucksack und genießen Sie jederzeit und überall ein handgebrühtes Produkt mit präziser Kontrolle des Kaffeesatzes.

Verfassen Sie nun bitte eine Produktbeschreibung für „Smart Thermos Cup“.

Das Modell wird im Stil des Beispiels geschrieben. Der Schlüssel zu Few-Shot ist: Die Beispiele sollten mit dem erwarteten Ausgabestil übereinstimmen. Die Anzahl muss nicht zu groß sein (2-5 reichen aus), aber die Qualität sollte hoch sein.

Rollenaufforderung, Rollenaufforderung, legt eine Identität für das Modell fest. Dieser Ansatz kann den Stil und die Professionalität der Ausgabe einschränken:

Sie sind ein Back-End-Architekt mit 10 Jahren Erfahrung, spezialisiert auf Leistungsoptimierung und Systemdesign.
Bitte analysieren Sie die Leistungsprobleme des folgenden Codes, weisen Sie auf spezifische Engpässe hin und geben Sie Optimierungsvorschläge.
Code: [Code einfügen]

Nach dem Festlegen der Rolle wird das Modell eher dazu neigen, aus einer professionellen Perspektive zu denken, und die Ausgabe wird strukturierter sein. Aber die Rolleneinstellung sollte konkret sein – „Sie sind ein Experte“ ist zu allgemein. Machen Sie besser deutlich, auf welchem ​​Gebiet Sie Experte sind und über welche Erfahrungen Sie verfügen.

Strukturierte Ausgabe erfordert, dass das Modell ein bestimmtes Format ausgibt (JSON, Markdown, Tabelle usw.). Diese Technik ist besonders nützlich, wenn Sie Daten extrahieren oder eine Verbindung zu nachgelagerten Systemen herstellen:

Bitte extrahieren Sie Produktinformationen aus dem folgenden Text und geben Sie diese im JSON-Format aus:
{
„product_name“: „Produktname“,
„Preis“: „Preis“,
„features“: [„feature list“]
}

Text: [Text einfügen]

Strukturelle Einschränkungen können die Nutzbarkeit der Ausgabe erheblich verbessern und Ihren nachfolgenden Verarbeitungsaufwand verringern.

Inferenzschicht: Lassen Sie das Modell „denken“

Diese Technologieebene ermöglicht es dem Modell, nicht nur Ihre Worte zu verstehen, sondern auch komplexe Überlegungen anzustellen.

Chain-of-Thought (CoT), Chain of Thought, ermöglicht dem Modell die Darstellung des Argumentationsprozesses. Der Kern dieser Technologie besteht darin: Lassen Sie nicht zu, dass das Modell die Antwort direkt gibt, sondern lassen Sie es zuerst klar erklären, was es denkt.

Das von Wei et al. im Jahr 2022 bewiesen, dass CoT die Genauigkeit komplexer Argumentationsaufgaben erheblich verbessern kann. Das Prinzip ist recht einfach: Komplexe Probleme erfordern eine mehrstufige Argumentation. Wenn Sie das Modell diese Schritte ausschreiben lassen, bedeutet dies, dass Sie ihm einen „Denkpuffer“ geben, der weniger fehleranfällig ist.

Die einfachste CoT-Verwendung besteht darin, am Ende von Prompt einen Satz hinzuzufügen:

Bitte denken Sie Schritt für Schritt über diese Frage nach und geben Sie Ihre Antwort.

Oder verwenden Sie Few-shot CoT, um dem Modell ein Beispiel für den Inferenzprozess zu zeigen:

Frage: Xiao Ming hatte 5 Äpfel, gab Xiao Hong 2 Äpfel und pflückte 3 Äpfel vom Baum. Wie viele Äpfel hat Xiao Ming jetzt?
Argumentationsprozess: Xiao Ming begann mit 5 Äpfeln. Nachdem man Xiaohong 2 gegeben hat, bleiben 5-2=3 übrig. Nachdem man 3 vom Baum ausgewählt hat, sind es 3+3=6.
Antwort: 6 Äpfel.

Nun lösen Sie es bitte auf die gleiche Weise: In einem Korb sind 12 Erdbeeren, Xiao Ming isst 4 und Xiao Hong legt 6 weitere Erdbeeren in den Korb. Wie viele Erdbeeren sind jetzt im Korb?

ReAct, eine Argumentations- und Aktionsschleife, ermöglicht es dem Modell, gleichzeitig zu denken und Operationen auszuführen. Der Prozess dieses Frameworks ist: Denken (über den nächsten Schritt nachdenken) → Aktion (Aktion ausführen) → Beobachtung (Beobachtungsergebnisse) → über die nächste Runde nachdenken. Besonders geeignet für Szenarien, in denen externe Tools aufgerufen oder Informationen abgerufen werden müssen.

Sie sind ein Assistent, der nach Informationen suchen kann. Bitte beantworten Sie die Frage im folgenden Format:

Gedanke: [Was jetzt getan werden muss]
Aktion: search("[Inhalt durchsuchen]")
Beobachtung: [Suchergebnisse]
... (Schleife bis die Antwort gefunden ist)
Endgültige Antwort: [endgültige Antwort]

Frage: Welcher Film wird 2024 den Oscar für den besten Film gewinnen?

ReAct ist besonders wichtig bei der Agentenentwicklung – der Kern von Agent ist die „Think-Action-Feedback“-Schleife, und ReAct stellt eine Standardvorlage bereit.

Selbstkonsistenz, Selbstkonsistenz, ermöglicht es dem Modell, mehrmals über dieselbe Frage nachzudenken und dann für die glaubwürdigste Antwort zu stimmen. Diese Methode ist in Szenarien nützlich, die eine hohe Genauigkeit erfordern, die Kosten sind jedoch relativ hoch (das Modell muss mehrmals aufgerufen werden).

Tree of Thoughts (ToT), ein Denkbaum, ermöglicht es dem Modell, mehrere Denkpfade zu erkunden und den optimalen auszuwählen. Geeignet für komplexe Entscheidungsprobleme, wie kreative Lösungsgenerierung und strategische Planung.

Systemebene: Engineering-Prompt-Management

Diese Schicht ist keine einzelne Technologie, sondern macht das Prompt-Management zu einem Engineering-System.

Modulare Eingabeaufforderung. Teilen Sie eine komplexe Eingabeaufforderung in mehrere wiederverwendbare Module auf. Beispielsweise kann die Eingabeaufforderung eines Agenten unterteilt werden in: Rolleneinstellungsmodul, Aufgabendefinitionsmodul, Ausgabebeschränkungsmodul und Werkzeugaufrufmodul. Jedes Modul wird unabhängig verwaltet und kann in Kombination flexibel konfiguriert werden.

Automatisierte Optimierung. Mit einem Framework wie DSPy müssen Sie die Prompt-Parameter nicht manuell anpassen. Sie definieren Aufgabensignaturen und Bewertungsmetriken und das Framework iteriert und optimiert automatisch. Dies wird später im Detail besprochen.

Standardisierte Bewertung. Richten Sie ein Bewertungssystem ein: Bereiten Sie Testsätze vor, definieren Sie Bewertungsindikatoren, führen Sie Batch-Tests durch und zeichnen Sie Ergebnisänderungen für jede Iteration auf. Auf diese Weise basiert die Prompt-Optimierung auf Daten und nicht auf Gefühlen.

Der Zweck des dreischichtigen Frameworks besteht darin, Ihnen dabei zu helfen, festzustellen, zu welcher Ebene das aktuelle Problem gehört und welche Technologie zu seiner Lösung eingesetzt werden sollte. Verwenden Sie die Basisebene für einfache Aufgaben, die Argumentationsebene für komplexe Überlegungen und die Systemebene für den Aufbau von Systemen.

Chain-of-Thought Eingehende Analyse der Chain-of-Thought

Die Technologie der Gedankenkette verdient eine gesonderte Diskussion. Es handelt sich derzeit um die ausgereifteste Technologie zur Argumentationsverbesserung, und der Schwellenwert für die Verwendung ist nicht hoch – Sie müssen keinen komplexen Framework-Code schreiben, sondern müssen der Eingabeaufforderung nur ein paar Sätze hinzufügen.

Null-Schuss-CoT vs. Wenig-Schuss-CoT

Zwei Verwendungen mit jeweils anwendbaren Szenarien.

Zero-Shot CoT, keine Beispiele, nur eine Anleitung. Das klassischste ist dieses:

Let's think step by step.

Oder chinesische Version:

Bitte denken Sie Schritt für Schritt darüber nach.

Diese Methode ist einfach, kostengünstig und für die meisten Szenarien geeignet. Studien haben ergeben, dass das Hinzufügen selbst dieses Satzes die Genauigkeit komplexer Denkaufgaben um 20–40 % steigern kann.

Few-shot CoT, plus ein Beispiel für den Argumentationsprozess. Das Beispiel sollte das Format „Frage → Argumentationsprozess → Antwort“ vollständig anzeigen:

Frage: Ein Geschäft kauft 100 Artikel zum Preis von 20 Yuan pro Artikel. Am ersten Tag wurden 30 Stück zum Preis von 35 Yuan verkauft. Am nächsten Tag wurden 50 Stück zum Preis von 30 Yuan verkauft. Am dritten Tag wurden die restlichen Waren zu einem reduzierten Preis verkauft und zu einem Preis von 15 Yuan verkauft. Wie hoch ist der Gesamtgewinn?

Begründungsprozess:
1. Berechnen Sie die Gesamtkosten: 100 Stück × 20 Yuan = 2.000 Yuan
2. Einkommen am ersten Tag: 30 Stück × 35 Yuan = 1.050 Yuan
3. Einkommen am nächsten Tag: 50 Stück × 30 Yuan = 1.500 Yuan
4. Restbetrag am dritten Tag: 100-30-50=20 Stück, Einkommen: 20 Stück × 15 Yuan = 300 Yuan
5. Gesamteinkommen: 1050+1500+300 = 2850 Yuan
6. Gesamtgewinn: 2850-2000 = 850 Yuan

Antwort: 850 Yuan

Nun lösen Sie es bitte auf die gleiche Weise:
Frage: Ein Unternehmen hat 200 Mitarbeiter mit einem durchschnittlichen Monatsgehalt von 8.000 Yuan. Zu Beginn des Jahres wurden 30 Mitarbeiter entlassen und jeder Mitarbeiter wurde mit 2 Monatsgehältern abgefunden. Nach den Entlassungen wurden 50 neue Mitarbeiter mit einem Monatsgehalt von 6.000 Yuan und einer Probezeit von drei Monaten eingestellt. Wie groß ist die Veränderung der Gehaltsausgaben des Unternehmens in diesem Jahr?

Der Vorteil von Few-shot CoT besteht darin, dass es das Modell anleiten kann, ein bestimmtes Argumentationsformat und eine bestimmte Denkweise zu verwenden. Sie müssen sich jedoch die Zeit nehmen, qualitativ hochwertige Beispiele zu schreiben – schlecht geschriebene Beispiele können das Modell irreführen.

Wann was verwenden?

  • Einfache Aufgabe, klarer Denkweg: Verwenden Sie Zero-Shot CoT, es reicht aus, nur einen Leitsatz hinzuzufügen
  • Die Aufgabe ist komplex und erfordert ein bestimmtes Argumentationsformat: Verwenden Sie Few-shot CoT und geben Sie ein paar gute Beispiele
  • Modelle mit starken Fähigkeiten (z. B. Claude 4): Zero-Shot-CoT reicht oft aus
  • Mittelmäßige Modellfähigkeiten und hohe Anforderungen an die Aufgabengenauigkeit: CoT mit wenigen Schüssen ist stabiler

CoT anwendbare Szenarien

Nicht alle Missionen erfordern ein CoT. Es funktioniert am besten für diese Szenarien:

Mathematisches Denken und logische Analyse. Diese Art von Aufgabe erfordert mehrstufige Berechnungen oder logische Ableitungen, und CoT ermöglicht es dem Modell, das Überspringen von Schritten oder fehlende Aufgaben zu vermeiden.

# Ohne CoT mögliche Ausgabe:
„Die Antwort ist 850 Yuan.“ (Direktsprung zum Ergebnis, Rechenfehler möglich)

# Mit CoT:
„Lass es mich Schritt für Schritt berechnen…“
Zeigen Sie dann jeden Schritt im Detail.

Mehrstufige Missionsplanung. Lassen Sie sich beispielsweise vom Modell beim Schreiben eines Projektplans oder beim Entwerfen einer Systemarchitektur helfen. CoT ermöglicht es dem Modell, die Aufgabe zunächst zu zerlegen und dann schrittweise zu erweitern.

Problemanalyse bei der Codegenerierung. Lassen Sie das Modell zunächst die Anforderungen analysieren, dann die Lösung entwerfen und dann den Code schreiben, anstatt den Code direkt auszuspucken.

Bitte befolgen Sie die folgenden Schritte, um mir bei der Implementierung eines Benutzerauthentifizierungssystems zu helfen:

Schritt 1: Anforderungen analysieren und Kernfunktionspunkte auflisten
Schritt 2: Datenmodell und Schnittstelle entwerfen
Schritt 3: Geben Sie einen spezifischen Implementierungscode an
Schritt 4: Beschreiben Sie den Testplan

Anforderungen: [Beschreibung Ihrer Bedürfnisse]

Mehrere Variationen von CoT

Auto-CoT, generiert automatisch Argumentationsketten. Das Prinzip besteht darin, das Modell den Inferenzprozess von Beispielen selbst generieren zu lassen und sie dann als Few-Shot-Beispiele zu verwenden. Dadurch ersparen Sie sich den Aufwand, Beispiele per Hand zu schreiben. Die Qualität von Auto-CoT hängt jedoch von der Qualität des Inferenzprozesses der ersten Generation des Modells ab – wenn die erste Generation falsch ist, sind auch nachfolgende Inferenzen falsch.

CoD (Chain of Debate), Debattenkette. Lassen Sie zwei Modellfiguren über dieselbe Frage diskutieren, die Argumentation des anderen hinterfragen und schließlich die Antwort zusammenfassen. Diese Methode eignet sich gut für komplexe und offene Probleme, ist jedoch kostspielig und zeitaufwändig.

Hinweise zur Verwendung von CoT

Lassen Sie mich über einige Fallstricke sprechen, auf die ich getreten bin:

Übertreiben Sie Ihre Argumentation nicht. Für einige einfache Fragen ist kein CoT erforderlich. Wenn Sie beispielsweise fragen: „Wie viele Einwohner hat Peking?“ Durch das Hinzufügen von CoT wird die Ausgabe ausführlicher und führt sogar zu Fehlern in der Argumentation. Beurteilungskriterien: Erfordert die Aufgabe eine mehrstufige Argumentation?

Beispiele müssen zur Aufgabe passen. Wenn das von Ihnen angegebene Beispiel mit wenigen Schüssen ein mathematisches Problem ist, die Aufgabe jedoch tatsächlich logisches Denken ist, verwendet das Modell möglicherweise mathematisches Denken, um das logische Problem zu lösen – der Effekt ist nicht gut. Die Art des Beispiels sollte mit der Aufgabenstellung übereinstimmen.

Machen Sie die Argumentationsschritte nicht zu lang. CoT kann die Genauigkeit verbessern, aber wenn der Argumentationsprozess zu lang ist (z. B. mehr als zehn Schritte), können in der Mitte Fehler auftreten. Wenn Sie auf ein besonders komplexes Problem stoßen, können Sie eine schrittweise Lösung in Betracht ziehen: Lassen Sie das Modell das Problem zunächst aufschlüsseln und behandeln Sie dann jedes Unterproblem separat.

Insgesamt ist CoT die praktischste Technik zur Inferenzverbesserung. Beherrschen Sie die beiden Verwendungszwecke (Zero-Shot und Few-Shot) und beurteilen Sie klar, wann es benötigt wird und wann nicht, und Ihr sofortiger Effekt wird erheblich verbessert.

ReAct Framework: Argumentation und Aktion kombinieren

Der Name ReAct ist eine Abkürzung für Reasoning + Acting. Es kombiniert Denken und Handeln und ermöglicht es Modellen, Werkzeuge dynamisch aufzurufen, Informationen zu erhalten und Entscheidungen zu treffen. Wenn CoT das Modell „klar denken“ lassen soll, dann soll ReAct das Modell „denken und handeln“ lassen.

Gedanke → Aktion → Beobachtungsschleife

Der Kern von ReAct ist eine Schleifenstruktur:

Gedanke → Aktion → Beobachtung → Gedanke → ...

Jeder Zyklus treibt die Lösung des Problems voran. Ein Beispiel für durch die Suche erweiterte Fragen und Antworten:

Aufgabe: Fragen Sie die Forschungsfelder der Physik-Nobelpreisträger 2024 ab.

Modellausführungsprozess:

Gedanke: Ich muss zuerst prüfen, wer 2024 den Nobelpreis für Physik erhält.
Action: search("2024 Nobel Prize in Physics winners")
Beobachtung: [Suchergebnisse] Der Nobelpreis für Physik 2024 wird an John Hopfield und Geoffrey Hinton für ihre Beiträge auf dem Gebiet der künstlichen neuronalen Netze verliehen.

Gedanke: Jetzt, da ich weiß, wer die Gewinner sind, muss ich ihre Forschungsgebiete weiter untersuchen.
Action: search("John Hopfield research field")
Beobachtung: [Suchergebnisse] John Hopfield ist ein Physiker, der das Hopfield-Netzwerkmodell vorgeschlagen hat ...

Gedanke: Ich habe genug Informationen, um die Frage zu beantworten.
Abschließende Antwort: Das Forschungsgebiet der Nobelpreisträger für Physik 2024 John Hopfield und Geoffrey Hinton sind künstliche neuronale Netze ...

Dieser Schleifenmechanismus ermöglicht es dem Modell, während des Argumentationsprozesses „Informationen zu ergänzen“ – wenn es auf etwas stößt, das es nicht kennt, errät es nicht nur, sondern ergreift die Initiative, es zu überprüfen. Der Unterschied zu CoT ist offensichtlich: CoT nutzt nur das interne Wissen des Modells, während ReAct externe Tools aufrufen kann, um neue Informationen zu erhalten.

ReAct vs. CoT: Hauptunterschiede

AbmessungenKinderbettReAct
InformationsquellenInternes Wissen modellierenInternes Wissen + externe Tools
ArgumentationsstilReines DenkenDenken + Handeln im Wechsel
Anwendbare SzenarienHabe bereits genügend InformationenWerkzeuge müssen abgerufen und aufgerufen werden
Komplexität der ImplementierungEinfach (Eingabeaufforderung ändern)Komplex (erfordert Tool-Integration)
KostenEinzelanrufMögliche Mehrfachaufrufe

CoT eignet sich besser für Szenarien, in denen das Modell bereits über ausreichende Kenntnisse verfügt – etwa mathematisches Denken und logische Analyse. ReAct eignet sich besser für Szenarien, die Echtzeitinformationen erfordern – etwa die Beantwortung aktueller Ereignisse, die Abfrage von Datenbanken und den Aufruf von APIs.

Prompt-Struktur von ReAct

Eine Standard-ReAct-Eingabeaufforderung enthält folgende Teile:

Sie sind ein intelligenter Assistent, der mit Werkzeugen umgehen kann. Bitte füllen Sie die Aufgabe im folgenden Format aus:

Verfügbare Werkzeuge:
- Suche (Abfrage): Durchsuchen Sie das Internet nach Informationen
- Datenbank_Abfrage(SQL): Datenbank abfragen
- Berechnen (Ausdruck): Führen Sie mathematische Berechnungen durch

Format:
Gedanke: [Ihr Denkprozess, analysieren Sie, was derzeit getan werden muss]
Aktion: [Toolname und Parameter, z. B. Suche („Inhalt abfragen“)]
Beobachtung: [Ergebnisse der Werkzeugausführung werden automatisch ausgefüllt]
... (kann mehrere Runden Gedanken-Aktion-Beobachtung haben)
Endgültige Antwort: [endgültige Antwort]

Start!

Aufgabe: [Ihre spezifische Aufgabe]

Kernpunkte:

Verfügbare Tools definieren. Teilen Sie dem Modell mit, welche Tools es verwenden kann und wie es diese aufrufen kann. Die Werkzeugdefinition sollte spezifisch sein, einschließlich Name, Parameterformat und Rückgabetyp.

Gibt das Ausgabeformat an. Das Format von Denken, Handeln und Beobachten sollte klar sein, damit Ihr System die Modellausgabe analysieren, Toolaufrufe durchführen und die Ergebnisse an das Modell zurückgeben kann.

Kündigungsbedingung. Lassen Sie das Modell die endgültige Antwort ausgeben, nachdem es genügend Informationen erhalten hat, anstatt eine Endlosschleife zu durchlaufen.

Anwendung von ReAct in der Agentenentwicklung

ReAct ist eines der grundlegenden Muster der modernen Agentenarchitektur. Wenn Sie einen KI-Agenten bauen – sei es ein Kundendienstroboter, ein Datenanalyseassistent oder ein automatisiertes Betriebs- und Wartungssystem – werden Sie höchstwahrscheinlich ReAct-Ideen verwenden.

In tatsächlichen Projekten ist die Implementierung von ReAct komplizierter als die einfache Eingabeaufforderung oben. Sie benötigen:

  1. Tool-Registrierungssystem: Definieren Sie die Tool-Schnittstelle, die Parameterüberprüfung und die Berechtigungskontrolle
  2. Ausführungs-Engine: Analysiert die Aktionsausgabe des Modells, ruft das entsprechende Tool auf, formatiert die Ergebnisse und gibt sie zurück
  3. Schleifensteuerung: Legen Sie die maximale Anzahl von Schleifen und den Timeout-Mechanismus fest, um Endlosschleifen zu verhindern
  4. Fehlerbehandlung: Wenn der Tool-Aufruf fehlschlägt, teilen Sie dem Modell mit, was passiert ist, und lassen Sie es die Strategie anpassen

Hinweise zur Verwendung von ReAct

Das Modell muss stark genug sein. ReAct erfordert, dass das Modell den Kontext über mehrere Dialogrunden hinweg aufrechterhält und vernünftige Handlungsentscheidungen trifft. Ein zu schwaches Modell kann leicht wahllos Werkzeuge aufrufen und vom Aufgabenziel abweichen. Modelle der Serien Claude und GPT-4 schneiden in ReAct besser ab.

Werkzeugdefinitionen sollten klar sein. Wenn das Modell nicht weiß, was ein Tool tut, ruft es es möglicherweise nicht oder auf die falsche Weise auf. Die Beschreibung jedes Tools sollte so detailliert sein wie das Schreiben einer API-Dokumentation.

Vermeiden Sie eine übermäßige Abhängigkeit von Werkzeugen. Einige Informationsmodelle sind integriert, sodass das Tool nicht jedes Mal angepasst werden muss. Sie können der Eingabeaufforderung eine Beurteilungslogik hinzufügen: „Wenn das interne Wissen ausreicht, um die Frage zu beantworten, geben Sie die endgültige Antwort direkt ein, ohne das Tool aufzurufen.“

Kostenkontrolle. ReAct kann mehrere Toolaufrufe auslösen und die API-Gebühr ist relativ hoch. Verwenden Sie ReAct für komplexe Aufgaben. Für einfache Aufgaben ist es kostengünstiger, gewöhnliches Prompt zu verwenden.

ReAct verwandelt Prompt von einem „statischen Skript“ in ein „dynamisches Programm“, sodass KI Probleme wirklich lösen kann. Dies ist ein wichtiger Schritt von der „Conversational AI“ zur „Action AI“.

DSPy: Lassen Sie Prompt automatisch optimieren

Für das zuvor erwähnte CoT und ReAct müssen Sie Prompt manuell schreiben. Aber es gibt ein Framework, das anders ist – DSPy. Sein Kerngedanke lautet: „Programmieren, nicht auffordern“. Bedeutung: Definieren Sie Aufgaben programmgesteuert und lassen Sie das Framework Eingabeaufforderungen automatisch für Sie generieren und optimieren.

Was ist DSPy?

DSPy ist ein Framework, das von der Stanford NLP-Gruppe entwickelt wurde. Dadurch wird Prompt Engineering zu einem Programmierparadigma: Sie definieren die Eingabe- und Ausgabestruktur (Signatur) der Aufgabe, wählen das entsprechende Modul (Module) aus, konfigurieren den Optimierer (Optimizer) und das Framework iteriert automatisch, um die optimale Prompt-Konfiguration zu finden.

Die Vorteile dieser Idee:

Zuverlässiger. Manuell geschriebene Eingabeaufforderungen sind anfällig für Auslassungen, falsche Formate und unklare Einschränkungen. Die deklarative Definition von DSPy ist strenger.

Wartbarer. Prompt wird zu Code, der versioniert, Unit-getestet und kontinuierlich iteriert werden kann.

Portabler. Bei einem Modellwechsel ist keine Neuanpassung von Prompt erforderlich – das Framework passt sich automatisch an die Eigenschaften des neuen Modells an.

Kernkomponenten von DSPy

Signatur (Aufgabensignatur): Definieren Sie die Eingabe- und Ausgabestruktur der Aufgabe.

import dspy

class QuestionAnswer(dspy.Signature):
Beantworten Sie die Fragen und geben Sie ausführliche Erklärungen.
Frage = dspy.InputField(desc="Benutzerfrage")
Antwort = dspy.OutputField(desc="Detaillierte Antwort, einschließlich Argumentationsprozess")

Eine Signatur ist wie die Schnittstellendefinition einer Funktion – sie beschreibt, was die Eingabe ist, was die Ausgabe ist und welche Anforderungen für jedes Feld gelten. Sie müssen keinen spezifischen Eingabeaufforderungstext schreiben, sondern nur die Struktur definieren.

Modul: Eine wiederverwendbare Komponente, die eine bestimmte Prompt-Technologie kapselt.

# Basis-Modul: direkte Vorhersage
qa_basic = dspy.Predict(QuestionAnswer)

# Modul mit Chain-of-Thought
qa_cot = dspy.ChainOfThought(QuestionAnswer)

# ReAct-Modul (Tools konfigurieren)
qa_react = dspy.ReAct(QuestionAnswer, tools=[search_tool, calculator_tool])

Das Modul kapselt die Prompt-Technologie. Wenn Sie CoT nutzen möchten, wählen Sie einfach das ChainOfThought-Modul. Sie müssen die Anleitung „Bitte denken Sie Schritt für Schritt“ nicht selbst schreiben. Das Framework generiert automatisch die entsprechende Eingabeaufforderung basierend auf dem Modultyp.

Optimierer: Prompt-Konfiguration automatisch optimieren.

from dspy.teleprompt import BootstrapFewShot

# Trainingsdaten vorbereiten
trainset = [
dspy.Example(question="Was ist Rekursion?", answer="Rekursion ist eine Funktion, die sich selbst aufruft ..."),
dspy.Example(question="Erklärung der Blasensortierung", answer="Die Blasensortierung vergleicht benachbarte Elemente ..."),
]

# Optimizer konfigurieren
optimizer = BootstrapFewShot(max_bootstrapped_demos=3)

# Modul optimieren
qa_optimized = optimizer.compile(qa_cot, trainset=trainset)

Der Optimierer generiert automatisch Few-Shot-Beispiele, passt die Prompt-Struktur an und findet iterativ die optimale Konfiguration. Sie geben ihm Trainingsdaten und Bewertungskriterien und es passt die Parameter für Sie an – ein bisschen wie der Trainingsprozess beim maschinellen Lernen, nur dass es Eingabeaufforderungen anstelle von Modellgewichten anpasst.

Ein vollständiges DSPy-Beispiel

Schreiben wir ein QA-System, das Programmierfragen beantworten kann:

import dspy

# 1. Signature definieren
class CodeQA(dspy.Signature):
    """Programmierfragen mit Erklärung und Codebeispielen beantworten"""
    question = dspy.InputField(desc="Programmierfrage")
    answer = dspy.OutputField(desc="Antwort mit Konzept und Codebeispielen")

# 2. Sprachmodell konfigurieren
lm = dspy.LM("claude-3-5-sonnet-20241022", api_key="your_key")
dspy.settings.configure(lm=lm)

# 3. Modul erstellen (ChainOfThought)
qa = dspy.ChainOfThought(CodeQA)

# 4. Direkt aufrufen
result = qa(question="Wie implementiert man Dekoratoren in Python?")
print(result.answer)

In diesem Beispiel haben wir keinen Aufforderungstext geschrieben. Das ChainOfThought-Modul generiert automatisch Eingabeaufforderungen mit Gedankenkettenführung. Die ausgegebene Antwort enthält den Begründungsprozess und eine detaillierte Erklärung.

Wenn Sie den Effekt optimieren möchten, können Sie Trainingsdaten und einen Optimierer hinzufügen:

# 5. Trainingsdaten
train_examples = [
    dspy.Example(
Frage="Was ist REST API?",
Antwort =REST API ist ein Designstil für Webanwendungsprogrammierschnittstellen ...
    ),
    dspy.Example(
question="Erklären Sie das Konzept der Verzweigung in Git",
answer="Mit Git-Zweigen können Sie unabhängige Arbeitszweige von der Hauptentwicklung trennen..."
    ),
]

# 6. Evaluationsfunktion
def evaluate_answer(example, pred):
    """Prüfen ob Schlüsselwörter und Länge passen"""
    keywords = example.question.lower().split()
    has_keywords = sum(1 for k in keywords if k in pred.answer.lower()) >= 2
    length_ok = len(pred.answer) > 100
    return has_keywords and length_ok

# 7. Optimieren
optimizer = BootstrapFewShot(metric=evaluate_answer, max_bootstrapped_demos=4)
qa_optimized = optimizer.compile(qa, trainset=train_examples)

# 8. Optimiertes Modul
result = qa_optimized(question="Wie implementiert man Dekoratoren in Python?")

Der Optimierer generiert automatisch Few-Shot-Beispiele und passt das Eingabeaufforderungsformat basierend auf den Trainingsdaten an, um die Ausgabequalität zu verbessern. Für den gesamten Vorgang ist keine manuelle Anpassung der Eingabeaufforderung erforderlich.

Wann sollte DSPy verwendet werden und wann sollte man Prompt manuell schreiben?

DSPy ist kein Allheilmittel. Einige Szenen eignen sich für die Verwendung von Rahmen, andere eignen sich eher für die Handschrift.

Geeignete Szenarien für DSPy:

  • Erstellen Sie ein KI-Anwendungssystem (die gleiche Art von Eingabeaufforderung muss mehrmals wiederverwendet werden)
  • Klare Aufgabenstruktur (Input und Output können standardisiert und definiert werden)
  • Es liegen Trainingsdaten vor (können zur Optimierung genutzt werden)
  • Eine modellübergreifende Migration ist erforderlich (verschiedene Modelle können sich unterschiedlich verhalten und das Framework kann sich automatisch anpassen)
  • Hohe Projektkomplexität (viele Eingabeaufforderungen, unübersichtliche manuelle Verwaltung)

Szenarien, die für die manuelle Eingabeaufforderung geeignet sind:

  • Einmaliger Gebrauch (Eingabeaufforderung einmal schreiben und einmal verwenden, keine Wiederverwendung erforderlich)
  • Fuzzy-Aufgabenstruktur (Ein- und Ausgabe schwierig zu standardisieren)
  • Keine Trainingsdaten (kann nicht optimiert werden)
  • Schnelle Prototypenüberprüfung (schnelles Ausprobieren erforderlich, Sie möchten keine Zeit mit der Konfiguration des Frameworks verbringen)
  • Einfache Aufgaben (können mit Zero-Shot erledigt werden, es ist kein Framework erforderlich)

Meine Erfahrung ist: Für Anwendungen und Systeme auf Projektebene, die eine langfristige Wartung erfordern, weist DSPy ein hohes Investitions-Output-Verhältnis auf. Die Erstkonfiguration wird einige Zeit in Anspruch nehmen, aber die Effizienz nachfolgender Iterationen wird erheblich verbessert. Für einmalige Aufgaben und einfache Abfragen ist es einfacher, die Eingabeaufforderung manuell zu schreiben.

Hinweise zur Verwendung von DSPy

Bewertungsmetriken sind wichtig. Der Optimierer verlässt sich auf Ihre Bewertungsfunktion. Wenn die Bewertungskriterien unangemessen sind, ist die Optimierungsrichtung möglicherweise falsch. Nehmen Sie sich die Zeit, gute Bewertungsmetriken zu entwerfen.

Qualität der Trainingsdaten. BootstrapFewShot generiert Beispiele basierend auf Trainingsdaten. Wenn die Datenqualität schlecht ist, sind auch die generierten Beispiele schlecht, was sich tatsächlich auf den Effekt auswirkt.

Nicht überoptimieren. Mehr Optimierungsiterationen sind nicht unbedingt besser. Manchmal „überpasst“ der Optimierer die Trainingsdaten und seine Leistung bei neuen Problemen nimmt ab. Legen Sie eine angemessene Obergrenze für die Anzahl der Iterationen fest.

DSPy stellt eine neue Richtung im Prompt Engineering dar – von der manuellen Parameteroptimierung bis hin zur automatisierten Optimierung. Für Entwickler, die systematisch KI-Anwendungen erstellen möchten, ist dies ein Werkzeug, das es wert ist, beherrscht zu werden.

Claude vs. ChatGPT: Best Practices differenzieren

Claude und ChatGPT sind derzeit die beiden Mainstream-Modelle. Viele Leute fragen: Warum unterscheiden sich die Ausgaben der beiden Modelle bei derselben Eingabeaufforderung? Wie kann man sie separat optimieren? Lassen Sie uns über ihre Unterschiede und spezifischen Best Practices sprechen.

Vergleich der Modellmerkmale

Lassen Sie uns zunächst über die wichtigsten Unterschiede sprechen:

AbmessungenClaudeChatGPT (GPT-4-Serie)
Kontextlänge200.000 Token128.000 Token
Strukturierte AusgabeHervorragende Leistung, bevorzugen Sie XML/JSONGute Leistung, erfordert klare Formatbeschränkungen
ArgumentationsstilStrengere, klarere SchritteFlexibler, manchmal springend
CodegenerierungHochwertige, ausführliche ErklärungHohe Qualität, starke Kreativität
KreativRelativ konservativKreativer und vielfältiger im Stil
Chinesischer AusdruckNatürlich und geschmeidigNatürlich und geschmeidig
Mehrere DialogrundenStarke Fähigkeit, den Kontext aufrechtzuerhaltenStarke Fähigkeit, den Kontext aufrechtzuerhalten

Diese Unterschiede sind nicht absolut und variieren je nach Version und Aufgabe. Aber im Allgemeinen bevorzugt Claude schlüssige Argumentation und strukturierte Ausgabe, während ChatGPT flexible Kreativität und schnelle Reaktion bevorzugt.

Claudes Best Practices

1. Verwenden Sie XML-Tags, um strukturelle Einschränkungen festzulegen

Claude hat ein besonders gutes Verständnis für XML-Tag-Formate. Das Einschließen von Inhalten in Tags kann die Ausgabequalität verbessern:

Bitte analysieren Sie die Leistungsprobleme des folgenden Codes:

<code>
function processData(data) {
  let result = [];
  for (let i = 0; i &lt; data.length; i++) {
    result.push(transform(data[i]));
  }
  return result;
}
</code>

Bitte geben Sie die Analyseergebnisse im folgenden Format aus:

<analysis>
[Leistungsproblemanalyse]
</analysis>

<suggestions>
[Optimierungsvorschläge]
</suggestions>

Der Vorteil von XML-Tags besteht darin, dass sie es dem Modell ermöglichen, klar zwischen Eingabeinhalt und Ausgabeformat zu unterscheiden. Claude wird sich strikt an die Etikettenstruktur der Ausgabe halten und keine Analyse mit Vorschlägen vermischen.

2. Rolle + Einschränkung + Beispielmuster

Claude ging mit großer Sorgfalt auf den Zeichensatz und die Einschränkungen ein. Eine vollständige Prompt-Struktur:

Zeicheneinstellungen:
Sie sind ein leitender Leistungsoptimierungsingenieur mit 8 Jahren Erfahrung im Java-Backend. Sie sind gut darin, Leistungsengpässe zu erkennen und umsetzbare Optimierungslösungen bereitzustellen.

Aufgabenbeschränkungen:
- Weisen Sie bei der Analyse auf spezifische Leistungsengpässe hin (sagen Sie nicht generell „optimierbar“)
- Es wird empfohlen, Code-Änderungsbeispiele beizufügen
- Wenn eine Optimierung riskant ist, sagen Sie es deutlich

Ausgabebeispiel:
<analysis>
Problem: Die häufige Erstellung von Objekten in einer Schleife kann zu Speicherdruck führen.
Speicherort: Die for-Schleife in den Zeilen 3-5.
</analysis>
<suggestions>
Vorschlag 1: Verwenden Sie vorab zugewiesene Array-Größen.
Code: let result = new Array(data.length);
Risiken: Keine wesentlichen Risiken.
</suggestions>

Analysieren Sie nun bitte den folgenden Code:
[Fügen Sie Ihren Code ein]

Durch diese Struktur weiß Claude: wer Sie sind, was Sie tun werden und wie die Ausgabe aussieht. Die Ausgabe wird eher Ihren Erwartungen entsprechen.

3. Verwenden Sie einen langen Kontext für eine detaillierte Analyse

Claudes 200K-Kontext eignet sich hervorragend für die Verarbeitung langer Dokumente und komplexem Code. Sie können die komplette Datei direkt einfügen, ohne sich Gedanken über Kürzungen machen zu müssen:

Bitte analysieren Sie die vollständige Codedatei unten, um mögliche Leistungsprobleme zu identifizieren:

Vollständiger Code:
<code>
[Fügen Sie die gesamte Datei ein, ein paar hundert Zeilen Code]
</code>

Bitte analysieren Sie jedes Modul einzeln und weisen Sie auf Leistungsprobleme und Optimierungsvorschläge für jedes Modul hin.

Die 128 KB von ChatGPT reichen für die meisten Szenarien aus, aber Claude ist bei sehr langen Dokumenten im Vorteil.

Best Practices für ChatGPT

1. Explizite Einschränkungen des Ausgabeformats

ChatGPT ist flexibler und manchmal ändert sich das Ausgabeformat. Muss explizit eingeschränkt werden:

Bitte analysieren Sie die Probleme mit der Codeleistung. Das Ausgabeformat muss wie folgt sein:

## Performance-Analyse
- Problem 1: [konkrete Beschreibung]
- Problem 2: [konkrete Beschreibung]

## Optimierungsvorschläge
| Fragen | Vorschläge | Codebeispiele |
|-----|-----|---------|
| [Frage 1] | [Vorschlag] | [Code] |

Code:
[Code einfügen]

Verwenden Sie das Markdown-Format (## Titel, | Tabelle), um die Ausgabe einzuschränken, und ChatGPT wird sich strikt daran halten.

2. Temperaturparameter anpassen

Der Temperaturparameter von ChatGPT beeinflusst die Kreativität der Ausgabe. Temperatur = 0 ist sicherer und konsistenter; Temperatur = 0,7-1 ist kreativer und vielfältiger.

# Deterministische Ausgabe (Code, Datenanalyse)
response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": prompt}],
    temperature=0
)

# Kreative Ausgabe (Copy, Design)
response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": prompt}],
    temperature=0.8
)

Die Claude-API verfügt ebenfalls über eine ähnliche Parametersteuerung, der Temperatureffekt von ChatGPT ist jedoch offensichtlicher.

3. Schritt-für-Schritt-Anleitung

ChatGPT überspringt manchmal Schritte und liefert Ergebnisse direkt. Bei komplexen Aufgaben können Sie sich Schritt für Schritt anleiten lassen:

Bitte helfen Sie mir, die folgenden Aufgaben Schritt für Schritt zu erledigen:

Schritt 1: Listen Sie zunächst die wichtigsten Funktionsmodule des Codes auf
Schritt 2: Analysieren Sie die Leistungsmerkmale jedes Moduls
Schritt 3: Identifizieren Sie Leistungsengpässe
Schritt 4: Geben Sie einen Optimierungsplan an

Bitte schließen Sie zunächst Schritt 1 ab.

Führen Sie das Modell Schritt für Schritt zur Ausgabe, um zu verhindern, dass es springt und Fehler macht.

Verschiedene Methoden zum Schreiben von Eingabeaufforderungen für dieselbe Aufgabe

Beispiel: Lassen Sie das Modell Produktinformationen aus einem Text extrahieren.

Claude-Version:

Bitte entnehmen Sie die Produktinformationen dem folgenden Text:

<text>
[Produkteinführungstext]
</text>

Ausgabeformat:
<product_info>
<name>[Produktname]</name>
<Preis>[Preis]</Preis>
<features>
<feature>[Feature 1]</feature>
<feature>[Feature 2]</feature>
</features>
</product_info>

ChatGPT-Version:

Bitte extrahieren Sie Produktinformationen aus dem Text und geben Sie diese im JSON-Format aus.

Text:
[Produkteinführungstext]

Beispiel für ein Ausgabeformat:
{
„name“: „Produktname“,
„Preis“: „Preis“,
„features“: [„feature1“, „feature2“]
}

Diese JSON-Struktur muss strikt eingehalten werden und es dürfen keine zusätzlichen Felder hinzugefügt werden.

Der Unterschied zwischen den beiden: Claude verwendet XML, um stabiler zu sein, und ChatGPT verwendet JSON + Clear-Format-Einschränkungen, um effektiver zu sein.

Vorschläge auswählen

  • Erfordert strenge Argumentation und strukturierte Ausgabe: Claude hat Vorrang
  • Kreativer Output und schnelles Prototyping erforderlich: ChatGPT hat Vorrang
  • Umgang mit langen Dokumenten und vollständigen Codedateien: Claude priorisieren (200K-Kontext)
  • Codegenerierung, technische Fragen und Antworten: Beide sind gut, mit leicht unterschiedlichen Stilen
  • Texterstellung, kreatives Design: Priorisieren Sie ChatGPT (erhöhen Sie die Temperatur)

In tatsächlichen Projekten können Sie ein Modell basierend auf der Art der Aufgabe auswählen oder zwei Modelle gleichzeitig verwenden, um die Auswirkungen zu vergleichen. Die Art und Weise, wie Prompt in den beiden Modellen geschrieben wird, bedarf einer gezielten Optimierung – wenn die Eigenschaften des falschen Modells verwendet werden, kann der Effekt noch viel schlimmer sein.

Prompt-Evaluierungs- und Iterationsmethodik

In den vorherigen Kapiteln wurde viel über die Prompt-Technologie gesprochen. Eine Frage bleibt jedoch ungelöst: Woher wissen Sie, ob Ihr Prompt wirksam ist? Ohne Bewertung ist Optimierung wie ein Blinder, der versucht, den Elefanten herauszufinden. Lassen Sie uns über das Bewertungssystem und die Iterationsmethodik von Prompt sprechen.

Bewertungsdimensionen: vier Kernindikatoren

Eine gute Eingabeaufforderung muss die Standards in vier Dimensionen erfüllen:

Genauigkeit. Ist der Ausgabeinhalt korrekt? Diese Dimension ist die wichtigste und die Bewertungsmethode die schwierigste. Bei objektiven Aufgaben (mathematische Berechnungen, Faktenermittlung) ist die Beurteilung der Genauigkeit relativ einfach: Vergleichen Sie die ausgegebene Antwort mit der richtigen Antwort. Bei subjektiven Aufgaben (kreatives Schreiben, Projektdesign) wird die Genauigkeit zum „ob sie den Erwartungen entspricht“ und die Bewertung ist komplexer.

Beispiele für Bewertungsmethoden:

  • Mathe-Fragen: Vergleichen Sie Berechnungsergebnisse und korrigieren Sie die Antworten
  • Codegenerierung: Führen Sie den Code aus und prüfen Sie, ob die Tests erfolgreich sind
  • Fragen und Antworten: Überprüfen Sie, ob die Antwort korrekte Informationspunkte enthält
  • Copywriting: Manuelle Bewertung oder Vergleich von Schlüsselindikatoren (Länge, Keyword-Abdeckung)

Konsistenz. Ist die Ausgabequalität stabil, wenn dieselbe Eingabeaufforderung mehrmals aufgerufen wird? Eingabeaufforderungen mit schlechter Konsistenz können heute nützlich sein, morgen jedoch ungültig, sodass sie für Produktionsumgebungen ungeeignet sind.

Bewertungsmethode: Führen Sie dieselbe Aufgabe zehnmal aus und berechnen Sie den Schwankungsbereich der Ausgabequalität. Es gibt zu viele Schwankungen und es gibt Probleme mit der Konsistenz.

Sicherheit. Enthält die Ausgabe schädliche Inhalte, Datenschutzverletzungen oder voreingenommene Äußerungen? Diese Dimension ist in bestimmten Szenarien wichtig (z. B. Kundendienstsysteme, Inhaltsüberprüfung).

Bewertungsmethode: Entwerfen Sie Regeln für die Erkennung vertraulicher Wörter und privater Informationen oder verwenden Sie spezielle Tools zur Sicherheitsbewertung.

Kosteneffizienz. Ist der Token-Verbrauch von Prompt angemessen? Eine zu lange Aufforderung wird kostspielig sein, und eine zu kurze Aufforderung wird wirkungslos sein. Den Gleichgewichtspunkt finden.

Bewertungsmethode: Erfassen Sie die Anzahl der Token für jeden Anruf und berechnen Sie die durchschnittlichen Kosten. Vergleichen Sie die Kostenleistung verschiedener Prompt-Versionen.

Bewertungstools

Mehrere gängige Prompt-Bewertungstools:

DeepEval. Ein Open-Source-Prompt-Bewertungsframework, das mehrere Bewertungsmetriken (Genauigkeit, Konsistenz, Relevanz usw.) bereitstellt. Geeignet für Chargentests und automatisierte Auswertung.

from deepeval import evaluate
from deepeval.metrics import AnswerRelevancyMetric, FaithfulnessMetric

metrics = [
    AnswerRelevancyMetric(threshold=0.7),
    FaithfulnessMetric(threshold=0.8)
]

evaluate(test_cases, metrics)

Promptfoo. Ein CLI-Tool, das Eingabeaufforderungen stapelweise testen, die Ausgabe verschiedener Modelle vergleichen und Bewertungsberichte erstellen kann. Geeignet zur schnellen Überprüfung von Prompt-Effekten.

promptfoo eval --prompts my_prompt.txt --providers openai:gpt-4 --tests test_cases.yaml

OpenAI-Bewertungen. Das offizielle Evaluierungsframework von OpenAI bewertet hauptsächlich die Modellfähigkeiten und kann auch für Prompt-Tests verwendet werden.

Die gemeinsamen Merkmale dieser Tools sind: Testsätze definieren → in Stapeln ausführen → automatisch bewerten → Berichte erstellen. Der Einsatz von Tools ist wesentlich effizienter als manuelles Testen.

A/B-Testprozess

A/B-Tests sind die wissenschaftliche Methode, wenn es um die Verbesserung von Eingabeaufforderungen geht. Der Prozess ist ungefähr:

Schritt 1: Testsatz vorbereiten. Sammeln Sie 20–50 typische Aufgabenbeispiele, die verschiedene Szenarien abdecken. Das Testset sollte vielfältig sein und nicht nur einfache Aufgaben umfassen.

Schritt 2: Bewertungsmetriken definieren. Wählen Sie Indikatoren basierend auf dem Aufgabentyp aus. Beispielsweise wird „Antwort-Richtigkeitsrate + Informationsabdeckung“ für Frage-Antwort-Aufgaben und „Erfolgsquote + Codequalitätsbewertung“ für die Codegenerierung verwendet.

Schritt 3: Führen Sie den Benchmark durch. Verwenden Sie die aktuelle Eingabeaufforderung, um den Testsatz auszuführen und die Ergebnisse jedes Indikators aufzuzeichnen. Dieser Score ist der Ausgangspunkt für die Optimierung.

Schritt 4: Entwerfen Sie eine verbesserte Version. Entwerfen Sie einen zeitnahen Verbesserungsplan basierend auf den Problempunkten des Benchmark-Tests. Wenn beispielsweise die Genauigkeit gering ist, fügen Sie CoT hinzu. Wenn die Konsistenz schlecht ist, fügen Sie strengere Formatbeschränkungen hinzu.

Schritt 5: Vergleichstest. Verwenden Sie die verbesserte Version, um denselben Testsatz auszuführen und die Änderungen der Indikatoren zu vergleichen. Wenn die verbesserte Version besser abschneidet, wird die neue Version übernommen.

Schritt 6: Iterieren Sie die Schleife. Wenn der Verbesserungseffekt nicht offensichtlich ist, analysieren Sie die Gründe und entwerfen Sie dann die nächste Verbesserungsrunde. Wiederholen Sie den Vorgang wiederholt, bis das Ziel erreicht ist.

Eine vereinfachte Version des Testprotokollformulars:

VersionGenauigkeitKonsistenzToken-KostenWesentliche Verbesserungen
v165 %Hohe Volatilität (±20 %)850Basisversion
v278 %Schwankend (±10 %)920CoT-Anleitung hinzufügen
v382 %Geringe Schwankung (±5%)1050Beispiel für wenige Aufnahmen hinzufügen
v485 %Geringe Schwankung (±3%)1050Optimierte Probenqualität

Für jede Verbesserung sollten Daten erfasst werden, damit der Optimierungsprozess nachverfolgt werden kann.

Schnelle Versionsverwaltung

Prompt ist ebenfalls Code und erfordert eine Versionsverwaltung. Vorschläge:

Versionsnummer. Nummerieren Sie jede Prompt-Version (v1, v2, v3…) und notieren Sie den Änderungszeitpunkt und die wichtigsten Änderungen.

Änderungsprotokoll. Jede Änderung muss aufgezeichnet werden: Was wurde geändert, warum und wie lauteten die Testergebnisse.

## Prompt-Versionsprotokoll

### v3 (2026-04-15)
Änderungen: 3 Beispiele für wenige Aufnahmen hinzugefügt, Einschränkungen beim Ausgabeformat optimiert
Grund: Der V2-Konsistenztest schwankt stark und das Ausgabeformat ist instabil
Test: Die Genauigkeit stieg von 78 % auf 82 % und die Konsistenzschwankung sank von ±10 % auf ±5 %

### v2 (2026-04-10)
Änderung: CoT-Richtlinie „Bitte denken Sie Schritt für Schritt“ hinzugefügt
Grund: Die Genauigkeit von v1 ist gering und es gibt viele Fehler bei komplexen Argumentationsaufgaben.
Test: Genauigkeit von 65 % auf 78 % erhöht

### v1 (2026-04-05)
Originalversion, keine besondere Optimierung
Test: Genauigkeit 65 %, Konsistenzschwankung ±20 %

Speichermethode. Zur einfachen Nachverfolgung werden Eingabeaufforderungsdateien und Testdaten zusammengelegt. Sie können es mit Git verwalten oder das spezielle Prompt-Verwaltungstool verwenden.

Kernpunkte der iterativen Optimierung

Ändern Sie nicht zu viele Dinge gleichzeitig. Passen Sie für jede Verbesserung nur eine Variable an, damit Sie erkennen können, welche Änderungen wirksam sind. Fügen Sie beispielsweise CoT und Few-Shot nicht gleichzeitig hinzu – fügen Sie zuerst den CoT-Test und dann den Few-Shot-Test hinzu.

Kostenänderungen beobachten. Manchmal verbessert sich die Genauigkeit, aber die Token-Kosten verdoppeln sich. Um die Kosteneffizienz abzuwägen, gilt: Je höher die Genauigkeit, desto besser.

Fehlversuche protokollieren. Nicht alle Änderungen verbessern die Leistung. Auch Fehlversuche sollten protokolliert werden, um eine Wiederholung derselben Fehler in Zukunft zu vermeiden.

Optimierungsziele festlegen. Optimieren Sie nicht endlos. Legen Sie ein Ziel fest (z. B. 80 % Genauigkeit) und unterbrechen Sie die Iterationen, sobald das Ziel erreicht ist. Überoptimierung verschwendet Zeit und verringert den Grenznutzen.

Das Bewerten und Iterieren ist der „abschließende“ Teil von Prompt Engineering. Ohne Bewertung wissen Sie nicht, ob Prompt gut ist oder nicht. Ohne Iteration können Sie sich nicht weiter verbessern. Durch die Hinzufügung dieser beiden Verknüpfungen wird Prompt Engineering tatsächlich zu einem vollständigen Engineering-Prozess.

Fazit

Abgesehen davon ist der Kern eigentlich eines: Prompt Engineering wandelt sich von „Metaphysik“ zu „Ingenieurwesen“.

Das dreischichtige Technologie-Framework hilft Ihnen bei der Entscheidung, welche Technologie Sie verwenden möchten – die Basisschicht löst das Problem, „das Modell verständlich zu machen“, die Argumentationsschicht löst das Problem, „das Modell zum Nachdenken zu bringen“ und die Systemschicht löst das Problem, „Prompt beherrschbar zu machen“. CoT und ReAct sind derzeit die praktischsten Technologien zur Inferenzverbesserung, und DSPy stellt eine neue Richtung in der automatisierten Optimierung dar. Die Schreibmethoden von Claude und ChatGPT müssen entsprechend angepasst werden – verwenden Sie XML-Tags, um Claude einzuschränken, und verwenden Sie klare Format- und Temperaturparameter, um ChatGPT zu steuern. Das Bewertungssystem ist das letzte Puzzleteil der gesamten Methodik. Ohne Evaluation gäbe es keine wissenschaftliche Optimierung.

Als Nächstes können Sie einige Dinge tun:

Sehen Sie sich Ihre vorhandenen Eingabeaufforderungen an. Vergleichen Sie das dreischichtige Framework, um zu sehen, auf welcher Ebene sich Ihr Prompt befindet? Gibt es offensichtliche Probleme (instabiler Effekt, zu hohe Kosten, unordentliches Ausgabeformat)?

Probieren Sie DSPy einmal aus. Wenn Ihr Projekt für die Framework-Verwaltung geeignet ist, konfigurieren Sie ein einfaches DSPy-Modul, um den Effekt der automatisierten Optimierung zu spüren.

Legen Sie Ihre Bewertungskriterien fest. Bereiten Sie einen Testsatz vor, definieren Sie mehrere Schlüsselindikatoren und führen Sie einen Benchmark-Test für Ihre Eingabeaufforderung durch. Mithilfe von Daten erhält die Optimierung eine Richtung.

Prompt Engineering erfordert wiederholtes Üben. Aber mit der Methodik ist es zumindest nicht mehr eine „blinde Anpassung nach Gefühl“. Ich hoffe, dieser Artikel kann Ihnen dabei helfen, einen systematischen Denkrahmen zu etablieren. Wenn Sie Fragen haben, können Sie uns gerne kontaktieren.


Referenzen

FAQ

Was ist der Unterschied zwischen Zero-shot CoT und Few-shot CoT – wann welches?
Zero-shot CoT nutzt nur einen Leitsatz (z. B. „Denken Sie Schritt für Schritt“) – geeignet für einfache Aufgaben oder starke Modelle. Few-shot CoT braucht Beispiele mit Reasoning – für komplexe Aufgaben oder festes Reasoning-Format. Entscheidung: Braucht die Aufgabe mehrstufiges Reasoning? Reicht die Modellleistung? Haben Sie Zeit für hochwertige Beispiele?
Welche Vorteile hat DSPy gegenüber manuell geschriebenen Prompts?
Drei Kernvorteile:

• Zuverlässiger: deklarative Definition statt fehleranfälliger Hand-Prompts
• Wartbarer: Prompts als Code – Versionierung, Unit-Tests, kontinuierliche Iteration
• Portabel: beim Modellwechsel passt das Framework an – kein Neutuning der Prompts

Geeignet für: Anwendungen auf Projektebene, klare Task-Struktur, Trainingsdaten, langfristig gepflegte Systeme.
Worin unterscheiden sich Prompt-Stile für Claude und ChatGPT?
Claude bevorzugt XML-Tags für Struktur, reagiert streng auf Rollen und Constraints, eignet sich für lange Dokumente (200K Kontext). ChatGPT braucht explizite Ausgabeformate (Markdown/JSON), Temperatur steuert Kreativität, eher flexibel und schnell. Praxis: Claude mit XML, ChatGPT mit JSON + Formatvorgaben.
Wie bewertet man, ob ein Prompt gut funktioniert?
Vier Dimensionen:

• Genauigkeit: Ist der Inhalt korrekt?
• Konsistenz: Stabil bei wiederholten Aufrufen?
• Sicherheit: Schädliche Inhalte oder Datenlecks?
• Kosteneffizienz: Angemessener Token-Verbrauch?

Tools: DeepEval (Batch), Promptfoo (schnelle Validierung), OpenAI Evals. Metriken statt Bauchgefühl.
ReAct vs. CoT – Unterschied und Einsatz?
CoT nutzt nur internes Wissen – gut für Mathematik und Logik mit ausreichend Kontext. ReAct verbindet Denken und Handeln, ruft externe Tools auf – für Echtzeitinfos, Datenbanken, APIs. Komplexität: CoT per Prompt; ReAct braucht Tool-Integration.
Wie führt man A/B-Tests bei Prompt-Optimierung durch?
Standardablauf:

• Schritt 1: 20–50 typische Testfälle
• Schritt 2: Metriken definieren (Korrektheit, Abdeckung …)
• Schritt 3: Baseline messen
• Schritt 4: Verbesserte Variante entwerfen
• Schritt 5: Vergleich der Metriken
• Schritt 6: Iterieren bis Ziel erreicht

Prinzip: pro Runde nur eine Variable ändern, Fehlversuche dokumentieren, Obergrenze für Optimierung setzen.

33 Min. Lesezeit · Veröffentlicht am: 17. Apr. 2026 · Aktualisiert am: 14. Juli 2026

Ähnliche Beiträge

Kommentare

Melde dich mit GitHub an, um einen Kommentar zu hinterlassen

Easton BlogEaston Blog