Skip to main content
Skip to content

Prompt Engineering für GitHub Copilot

Folgen Sie diesen Strategien, um Ihre Copilot Ergebnisse zu verbessern.

Ein Prompt ist eine Anfrage, die Sie an GitHub Copilot stellen. Sie können z. B. eine Frage stellen, eine Aufgabe beschreiben oder einen Codeausschnitt schreiben, damit Copilot ihn vervollständigt. Zusätzlich zu Ihrer Eingabeaufforderung verwendet Copilot Kontext wie den Code in Ihrer aktuellen Datei und den Unterhaltungsverlauf, um eine Antwort zu generieren.

Sie interagieren mit Copilot auf vielen Oberflächen, einschließlich der GitHub Copilot app, GitHub Copilot CLI in Ihrer IDE (Visual Studio Code, Visual Studio, JetBrains IDEs, Eclipse und Xcode) und auf der GitHub Website.

Von der GitHub Copilot app oder der GitHub Website aus können Sie auch einen Copilot cloud agent – einen Agenten, der für Sie an einer Aufgabe arbeitet – starten, statt interaktiv mit Copilot zu arbeiten.

Die Tipps in diesem Artikel gelten auf allen Copilot Oberflächen und helfen Ihnen, Eingabeaufforderungen zu schreiben, die bessere Antworten generieren.

Allgemein beginnen, dann spezifisch werden

Wenn Sie einen Prompt für Copilot schreiben, geben Sie Copilot zunächst eine allgemeine Beschreibung des Ziels oder Szenarios. Listen Sie dann alle spezifischen Anforderungen auf. Setzen Sie Ihre wichtigsten Anforderungen an erste Stelle. Copilot gibt zusätzliche Gewichtung für Anweisungen am Anfang und Ende einer Eingabeaufforderung.

Beispiele:

Copilot prompt
Write a JavaScript function that tells me if a number is prime

The function should take an integer and return true if the integer is prime

The function should error if the input is not a positive integer

Beispiele geben

Verwenden Sie Beispiele, damit Copilot versteht, was Sie möchten. Sie können Beispieleingabedaten, Beispielausgaben und Beispielimplementierungen bereitstellen.

Beispiele:

Copilot prompt
Write a Go function that finds all dates in a string and returns them in an array. Dates can be formatted like:

* 05/02/24
* 05/02/2024
* 5/2/24
* 5/2/2024
* 05-02-24
* 05-02-2024
* 5-2-24
* 5-2-2024

Example:

findDates("I have a dentist appointment on 11/14/2023 and book club on 12-1-23")

Returns: ["11/14/2023", "12-1-23"]

Unittests können auch als Beispiele dienen. Bevor Sie Ihre Funktion schreiben, verwenden Sie Copilot, um Unit-Tests für die Funktion zu schreiben. Bitten Sie Copilot dann, eine Funktion zu schreiben, die von diesen Unit-Tests beschrieben wird.

Aufteilen komplexer Aufgaben in einfachere Aufgaben

Wenn Sie einen komplexen oder großen Vorgang ausführen möchten Copilot , unterteilen Sie den Vorgang in mehrere einfache, kleine Vorgänge.

Anstatt Copilot beispielsweise zu bitten, ein Wortsuchrätsel zu erstellen, unterteilen Sie den Prozess in kleinere Aufgaben und bitten Sie Copilot, diese nacheinander zu erledigen:

  • Schreiben Sie eine Funktion, um ein 10 x 10 Buchstabenraster zu generieren.
  • Schreiben Sie eine Funktion, um alle Wörter in einem Buchstabenraster zu finden, wenn Sie eine Liste von gültigen Wörtern haben.
  • Schreibe eine Funktion, die die vorherigen Funktionen verwendet, um ein 10-×-10-Buchstabenraster zu erzeugen, das mindestens zehn Wörter enthält.
  • Aktualisieren Sie die vorherige Funktion, um das Buchstabenraster und 10 zufällige Wörter aus dem Raster zu drucken.

Mehrdeutigkeit vermeiden

Vermeiden Sie mehrdeutige Begriffe. Fragen Sie z. B. nicht "Was tut dies", wenn "dies" die aktuelle Datei, die letzte Copilot Antwort oder ein bestimmter Codeblock sein könnte. Seien Sie stattdessen spezifisch:

  • Was bewirkt die createUser-Funktion?
  • Was bewirkt der Code in Ihrer letzten Antwort?

Mehrdeutigkeit kann auch für Bibliotheken gelten:

  • Wenn Sie eine ungewöhnliche Bibliothek verwenden, beschreiben Sie, was die Bibliothek tut.
  • Wenn Sie eine bestimmte Bibliothek verwenden möchten, setzen Sie die Importanweisungen an den Anfang der Datei oder geben Sie die zu verwendende Bibliothek an.

Formulieren Sie Regeln und Anforderungen direkt und nicht als Metaanweisungen. Schreiben Sie z. B. „Geben Sie das Ergebnis als JSON zurück“ anstelle von „Denken Sie daran, immer JSON zurückzugeben“.

Relevanten Kontext bereitstellen

Copilot verwendet den dafür verfügbaren Kontext, um Ihre Eingabeaufforderung zu verstehen. Wie Sie diesen Kontext bereitstellen, hängt von der verwendeten Oberfläche ab.

  • Codevervollständigung in Ihrer IDE: Öffnen Sie relevante Dateien, und schließen Sie irrelevante Dateien. Copilot verwendet Ihre geöffneten Dateien, um Ihre Anfrage zu verstehen.
  • Copilot in Ihrer IDE oder auf der GitHub Website: Markieren Sie den Code, auf den Copilot verweisen soll, und verwenden Sie Schlüsselwörter zum Anfügen von Kontext. Geben Sie beispielsweise @ in Ihr Prompt ein, um Elemente wie Dateien, Probleme, Pull Requests oder Repositorys anzufügen. Einige IDEs unterstützen auch Schrägstrichbefehle (z. B. /fix und /tests), Variablen und andere Optionen zur Verbesserung Ihrer Copilot Erfahrung.
  • GitHub Copilot CLI: Fügen Sie eine Repositorydatei mit @path an, oder verweisen Sie mit #number auf ein GitHub Issue oder einen Pull Request. Fügen Sie für den Repositorykontext, den Sie wiederverwenden möchten, benutzerdefinierte Anweisungen wie eine .github/copilot-instructions.md Datei, pfadspezifische Anweisungsdateien oder eine AGENTS.md Datei hinzu.
  • Copilot cloud agent: Legen Sie den Umfang der Aufgabe fest, indem Sie das Repository und den Basiszweig auswählen und dann das Ziel, die Akzeptanzkriterien und die relevanten Dateien beschreiben. Fügen Sie Screenshots oder Mockups an, wenn visueller Kontext wichtig ist. Starten Sie die Aufgabe aus einer Chatsitzung, wenn vorhandene Diskussionen in die Aufgabe einbezogen werden sollen; andernfalls fügen Sie diesen Hintergrund in den Prompt der Aufgabe ein. Bewahren Sie dauerhafte Anleitungen in Repository-, pfadspezifischen oder Agent-Anweisungsdateien auf.

Experimentieren und iterieren

Wenn Sie nicht das gewünschte Ergebnis erhalten, überarbeiten Sie Ihren Prompt und versuchen Sie es erneut.

Wenn Sie Copilot während der Eingabe von Code Vorschläge erhalten, können Sie den Vorschlag vollständig löschen und von vorn beginnen. Oder Sie können den Vorschlag beibehalten und Änderungen anfordern.

Wenn Sie dies verwenden Copilot Chat, können Sie in Ihrer nächsten Anforderung auf die vorherige Antwort verweisen. Oder Sie können die vorherige Antwort löschen und von vorn beginnen.

Verlauf relevant halten

Konversationsoberflächen (die GitHub Copilot app, GitHub Copilot CLI, Copilot in Ihrer IDE oder auf GitHub, und die Copilot cloud agent) verwenden Ihren Unterhaltungsverlauf als Kontext. Damit Copilot nur den relevanten Verlauf erhält:

  • Beginnen Sie eine neue Unterhaltung oder Sitzung, wenn Sie eine neue Aufgabe beginnen.
  • Falls die Fahrbahnoberfläche dies unterstützt, entfernen oder setzen Sie Abbiegehinweise zurück, die nicht mehr relevant sind. GitHub Copilot CLI Beispielsweise können Sie eine neue Sitzung starten, Sitzungen löschen und mit /undo oder /rewind zu einem früheren Prompt zurückspulen. Mit Copilot cloud agent können Sie eine neue Aufgabe starten und eine Sitzung beenden oder archivieren, aber Sie können keine Sitzung löschen oder einzelne Schritte zurückspulen.

Ausgabe von Copilot überprüfen

Überprüfen Sie KI-generierten Code und Antworten auf die gleiche Weise, wie Sie die Arbeit eines Kollegen prüfen würden: bewerten, testen und bestätigen Sie die Korrektheit, bevor Sie sich darauf verlassen. Dies gilt für alle Copilot Oberflächen. Weitere Informationen findest du unter Überprüfen von KI-generierten Code.

Befolgen Sie bewährte Programmiermethoden

Wenn Sie die gewünschten Antworten nicht erhalten, wenn Sie Vorschläge oder Erklärungen in Ihrer Codebasis anfordern Copilot , stellen Sie sicher, dass Ihr vorhandener Code bewährte Methoden befolgt und leicht zu lesen ist. Beispiele:

  • Verwenden Sie konsistenten Codestil und -muster.
  • Verwenden Sie beschreibende Namen für Variablen und Funktionen.
  • Kommentieren Sie Ihren Code.
  • Strukturieren Sie Ihren Code in modulare, bereichsbezogene Komponenten.
  • Schließen Sie Komponententests ein.

Tipp

Verwenden Sie Copilot, damit Ihr Code bewährten Methoden folgt. Bitten Sie Copilot beispielsweise, Kommentare hinzuzufügen oder eine große Funktion in kleinere Funktionen zu unterteilen.

Weiterführende Lektüre