> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Prompt Engineering

> Best Practices für die Formulierung effektiver Prompts, um hochwertigen Code mit Windsurf zu generieren – einschließlich klarer Ziele, Kontext und Randbedingungen.

Wenn Sie dies lesen, kennen Sie vermutlich bereits einige Anwendungsfälle und Einschränkungen von LLMs. Je besser der Prompt und der Kontext sind, den Sie dem AI-Modell liefern, desto besser fällt das Ergebnis aus.

Auch in Windsurf gibt es Best Practices, um wirkungsvollere Prompts zu formulieren, damit Sie das Beste aus dem Tool herausholen und die bestmögliche Codequalität erhalten, um Ihre Workflows zu beschleunigen.

<Tip>Für komplexere Aufgaben, bei denen Sie möglicherweise bestimmte Codeblöcke [@-Mention](/de/chat/overview/#mentions) müssen, verwenden Sie [Chat](/de/chat/overview) statt [Command](/de/command/plugins-overview).</Tip>

<div id="components-of-a-high-quality-prompt">
  ## Komponenten eines hochwertigen Prompts
</div>

* ***Klares Ziel bzw. Ergebnis***
  * Was soll das AI-Modell erzeugen?
  * Bitten Sie das AI-Modell um einen Plan? Um neuen Code? Geht es um ein Refactoring?
* ***Alle relevanten Kontexte zur Ausführung der Aufgabe(n)***
  * Haben Sie @-Mentions korrekt verwendet, damit der richtige Kontext einbezogen wird?
  * Gibt es kundenspezifischen Kontext, der für Windsurf unklar sein könnte?
* ***Erforderliche Vorgaben***
  * Gibt es bestimmte Frameworks, Bibliotheken oder Sprachen, die verwendet werden müssen?
  * Gibt es Anforderungen an Speicher- oder Zeitkomplexität?
  * Gibt es Sicherheitsaspekte, die zu berücksichtigen sind?

<div id="examples">
  ## Beispiele
</div>

***Beispiel #1:***

* **Schlecht**: Schreibe Unit-Tests für alle Testfälle für ein Order-Book-Objekt.

* **Gut**: Schreibe mit `@class:unit-testing-module` Unit-Tests für `@func:src-order-book-add`, die überprüfen, welche Ausnahmen ausgelöst werden, wenn der Wert über oder unter dem Stop-Loss liegt.

***Beispiel #2***:

* **Schlecht**: Refaktoriere rawDataTransform.

* **Gut**: Refaktoriere `@func:rawDataTransform`, indem du die while-Schleife in eine for-Schleife umwandelst und dieselbe Datenstruktur ausgibst wie `@func:otherDataTransformer`.

***Beispiel #3***:

* **Schlecht**: Erstelle einen neuen Button für das Kontaktformular.

* **Gut**: Erstelle eine neue Button-Komponente für `@class:ContactForm` mithilfe des Styleguides in `@repo:frontend-components`, mit dem Text „Weiter“.
