ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Kontext ist alles, was Sie brauchen: Bessere KI-Ergebnisse mit benutzerdefinierten Anweisungen

26. März 2025 von Rob Conery, @robconery.com, Burke Holland, @burkeholland

Anfang dieses Monats haben wir die allgemeine Verfügbarkeit von benutzerdefinierten Anweisungen in Visual Studio Code angekündigt. Benutzerdefinierte Anweisungen sind die Möglichkeit, Copilot spezifischen Kontext über den Workflow Ihres Teams, Ihre bevorzugten Stilvorlieben, Bibliotheken, die das Modell möglicherweise nicht kennt, usw. zu geben.

In diesem Beitrag werden wir uns damit befassen, was benutzerdefinierte Anweisungen sind, wie Sie sie heute nutzen können, um Ihre Ergebnisse mit GitHub Copilot drastisch zu verbessern, und sogar eine brandneue Vorschaufunktion namens "Prompt-Dateien", die Sie noch heute ausprobieren können.

Kleinere Prompts, bessere Ergebnisse mit einer einfachen Markdown-Datei

Die Arbeit mit GitHub Copilot kann Ihren Entwicklungsprozess beschleunigen, aber es gibt eine Lernkurve, wenn es darum geht, effektiv zu prompten. Es kann einige Versuche dauern, um die gewünschte Antwort zu erhalten, was normalerweise bedeutet, Ihre Frage oder Ihren Prompt umzuformulieren. Selbst dann wird Copilot Ihren Workflow beschleunigen!

Aber wussten Sie, dass Sie GitHub Copilot "feinabstimmen" können, um es besser an Ihre Bedürfnisse anzupassen? Mit einer einfachen Markdown-Datei können Sie Copilot spezifische Anweisungen geben, die ihm helfen, Ihr Projekt besser zu verstehen. In diesem Beitrag führen wir Sie durch den Prozess der Erstellung und Verwendung von benutzerdefinierten Anweisungen, einer neu veröffentlichten Funktion in VS Code.

Probieren Sie Folgendes aus: Erstellen Sie in Ihrem Projekt eine Datei namens .github/copilot-instructions.md. Diese Datei enthält Anweisungen, die Copilot helfen, Ihr Projekt besser zu verstehen. Sie wird automatisch von Copilot erkannt, sodass Sie nichts Besonderes tun müssen, damit sie funktioniert.

Screenshot showing the Explorer view in VS Code, highlighting the  file. The file is still empty.

Fügen Sie diese Anweisungen zur Datei hinzu

# Copilot Instructions

This project is a web application that allows users to create and manage tasks. The application is built using React and Node.js, and it uses MongoDB as the database.

## Coding Standards

- Use camelCase for variable and function names.
- Use PascalCase for component names.
- Use single quotes for strings.
- Use 2 spaces for indentation.
- Use arrow functions for callbacks.
- Use async/await for asynchronous code.
- Use const for constants and let for variables that will be reassigned.
- Use destructuring for objects and arrays.
- Use template literals for strings that contain variables.
- Use the latest JavaScript features (ES6+) where possible.

Der Titel ist nicht unbedingt erforderlich, aber er hilft, den Zweck der Datei zu verdeutlichen. Der Rest des Inhalts ist eine Reihe von Anweisungen, die Copilot helfen, Ihr Projekt besser zu verstehen. Sie können diese Anweisungen an die Bedürfnisse Ihres Projekts anpassen.

Öffnen Sie nun die Chat-Ansicht und geben Sie einen extrem knappen Befehl ein, z. B. tail recursion. Sie müssen nicht fragen "wie mache ich tail recursion in JavaScript" oder etwas Ähnliches. Geben Sie einfach tail recursion ein und drücken Sie Enter. Beachten Sie, dass Copilot den Kontext Ihres Projekts versteht und Ihnen eine relevante Antwort liefert.

Screenshot that shows the Copilot response for "tail recursion" in the Chat view.

Beachten Sie, dass Copilot Ihnen eine detailliertere Antwort im erwarteten Format (2 Leerzeichen, camelCase usw.) gegeben hat, obwohl Sie einen viel kleineren Prompt verwendet haben.

Das ist die Macht der Verwendung benutzerdefinierter Anweisungen! Aber es gibt noch viel mehr, was Sie tun können...

Passen Sie alles an!

GitHub Copilot fügt VS Code viele großartige Funktionen hinzu, darunter die Möglichkeit, Ihre Commit-Nachrichten zu generieren, ausgewählten Code zu überprüfen und sogar Tests zu generieren!

Diese sind alle nützlich, aber es ist wahrscheinlich, dass Sie Ihre eigenen Wege haben, diese Dinge zu tun. Die gute Nachricht ist, dass Sie sie personalisieren können, indem Sie einige Einstellungen in Ihrem Arbeitsbereich überschreiben.

Probieren Sie Folgendes aus: Öffnen Sie die Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) und geben Sie den Ausdruck "Arbeitsbereichseinstellungen" ein. Sie sollten eine Menüoption sehen, die lautet Einstellungen: Arbeitsbereichseinstellungen (JSON) öffnen. Wählen Sie diese Option und fügen Sie die folgenden Einstellungen zu Ihrem Arbeitsbereich hinzu

{
  "github.copilot.chat.commitMessageGeneration.instructions": [
    {
      "text": "Be extremely detailed with the file changes and the reason for the change. Use lots of emojis."
    }
  ]
}

Speichern Sie die Datei settings.json und schließen Sie sie. Das Symbol für die Quellcodeverwaltung in der Aktivitätsleiste sollte nun anzeigen, dass Sie Dateien geändert haben. Wenn Sie in einem Testverzeichnis ohne ein Git-Repository arbeiten, können Sie eines direkt über die Ansicht Quellcodeverwaltung erstellen. Wählen Sie einfach die Schaltfläche Repository initialisieren und folgen Sie den Anweisungen.

Hier beginnt der Spaß: Öffnen Sie die Ansicht Quellcodeverwaltung und wählen Sie das Glitzersymbol im Eingabefeld für die Commit-Nachricht. Dies weist Copilot an, eine Commit-Nachricht für Sie zu generieren. Beachten Sie, dass es eine extrem detaillierte Commit-Nachricht generiert, die viele Emojis verwendet!

Screenshot that shows the Source Control view, showing a colorful commit message for the latest commit.

Kommentieren Sie die Anweisungen in Ihrer Datei settings.json aus und generieren Sie die Commit-Nachricht erneut. Sie sollten eine weitaus weniger detaillierte Commit-Nachricht erhalten, die keine Emojis verwendet.

Gute, detaillierte Commit-Nachrichten zu schreiben ist eine Fähigkeit, die Zeit zum Erlernen braucht. Aber mit Copilot können Sie sich eine Menge Zeit sparen und bessere Nachrichten erzielen.

Mit benutzerdefinierten Anweisungen alles geben

Sie haben möglicherweise Ihre Codierungsstandards in separaten Dateien mit anderer Formatierung als Markdown. Vielleicht haben Sie eine für JavaScript, eine für Python und eine für Go. Möglicherweise haben Sie auch Standards für die Arbeit mit Datenbanken – die von Ihnen verwendeten Datentypen, Namenskonventionen, die Behandlung von Verbindungszeichenfolgen und mehr.

Sie müssen nicht all dies in einer Datei zusammenfassen. Sie können sie getrennt halten und Copilot trotzdem nutzen, um Ihnen bei all diesen Dingen zu helfen!

Probieren wir es aus! Öffnen Sie Ihre Datei .vscode/settings.json (Arbeitsbereichseinstellungen) und fügen Sie die folgenden Einstellungen hinzu

{
  "github.copilot.chat.codeGeneration.instructions": [
    {
      "file": "./docs/javascript-styles.md"
    },
    {
      "file": "./docs/database-styles.md"
    }
  ]
}

Dies weist Copilot an, im Verzeichnis docs nach zwei Dateien zu suchen: javascript-styles.md und database-styles.md. Sie können so viele Dateien hinzufügen, wie Sie möchten, und Copilot wird sie in der von Ihnen angegebenen Reihenfolge suchen.

Screenshot that shows the Explorer view, highlighting the two files in the  folder and showing the custom instructions in the  file that reference these docs files.

Sie können hier beliebige Dateien hinzufügen, einschließlich Spezifikationen für den aktuellen Sprint, an dem Sie arbeiten. Wir haben sogar gesehen, dass Leute Gherkin-Spezifikationen als benutzerdefinierte Anweisungen hinzufügen!

Probieren Sie es aus!

Ändern Sie den Ton des Modells

Modelle sind oft übermäßig höflich. Sie entschuldigen sich viel und stehen selten zu sich selbst und ihren Entscheidungen, wenn Sie ihnen sagen, dass etwas falsch ist. Wenn Sie arbeiten müssen, kann das nervig sein. Sie können den übermäßig hilfsbereiten Ton des Modells mit ein paar Anweisungen zur gewünschten Reaktion überschreiben.

- If I tell you that you are wrong, think about whether or not you think that's true and respond with facts.
- Avoid apologizing or making conciliatory statements.
- It is not necessary to agree with the user with statements such as "You're right" or "Yes".
- Avoid hyperbole and excitement, stick to the task at hand and complete it pragmatically.

Es ist wichtig, Modellen immer Anweisungen im Positiven und nicht im Negativen zu geben, da sie wissen müssen, was sie tun sollen, nicht was sie nicht tun sollen. Anstatt "nicht tun" zu sagen, können Sie "vermeiden" sagen.

Experimentieren Sie und haben Sie Spaß! Ein Programmierer berichtete, dass er seine Testsuiten gerne mit Tests in Haiku-Form auflockerte. Das erscheint etwas extrem, aber wenn Sie an einem Hobbyprojekt arbeiten, warum nicht? Sie können Anweisungen hinzufügen wie

- Generate tests in haiku format.
- Use 5-7-5 syllable structure.
- Use nature themes and imagery.

Noch eine Sache...

GitHub Copilot kann auch Code-Dateien als benutzerdefinierte Anweisungen verstehen! Wenn Sie zum Beispiel eine SQL-Datei haben, können Sie diese zu Ihren Einstellungen hinzufügen, und Copilot wird sie verwenden, um Ihren Datenzugriffscode zu generieren.

Wenn Sie ein bestimmtes Datenzugriffswerkzeug bevorzugen, können Sie eine Beispielvorlage zu Ihrem Projekt hinzufügen, und Copilot wird diese beim Generieren des Datenzugriffscodes verwenden.

Probieren Sie es aus! Hier ist ein Beispiel, das eines unserer Teammitglieder verwendet hat, um ein Sequelize-Modell (Node.js ORM) für eine PostgreSQL-Datenbank zu generieren

//Template for a Sequelize model
const { DataTypes, Model } = require('sequelize');
class User extends Model {
  //static or factory methods
  //instance methods
}
const init = function(sequelize){
  User.init({
    //schema goes here
  }, {
    hooks: {},
    tableName: "users"
    underscored: true,
    sequelize
  })
}

exports.createUser = function(sequelize){
  init(sequelize);
  return User;
}

Verweisen Sie in Ihren Einstellungen auf diese Datei, und GitHub Copilot wird diese Vorlage zusammen mit Ihrer SQL-Datei verwenden, um die Modelle in Ihrem Projekt für Sie zu generieren. Sie können dies sowohl im Bearbeitungs- als auch im Abfragemodus tun. Verwenden Sie einfach den Prompt generate the data access for the project und los geht's! Magie!

Vorstellung von Prompt-Dateien

Prompt-Dateien ermöglichen es Ihnen, wiederverwendbare Prompts für sich selbst und Ihr Team zu erstellen. Dies hilft, die Konsistenz zu gewährleisten und reduziert gleichzeitig das Prompten, was mühsam werden kann.

Wenn Sie beispielsweise einen wiederverwendbaren Prompt erstellen möchten, der eine Schnittstelle basierend auf dem Datenbankschema erstellt. Sie könnten eine Prompt-Datei erstellen, die Ihr Datenbankschema enthält. Copilot ist mehr als glücklich, ein SQL-Skript zu generieren, um das für Sie zu tun.

Prompt-Dateien gehören in das Verzeichnis .github/prompts und sind einfach Markdown-Dateien mit einem Namen im Format *.prompt.md.

Sie könnten eine .github/prompts/database_users.prompt.md haben, die eine Beschreibung Ihrer Datenbank enthält. Zum Beispiel

# User Authentication

Our application will have `users` with the following information:

- The standard user information, including: `name`, `email` (unique).
- A link for a "magic" login, which will be a `GUID` as well as the expiration date for the link.
- Social login account IDs for Microsoft, GitHub, and Google.
- The timestamp of the last login.
- The timestamp for when the user was created.

Sie können dann eine weitere Prompt-Datei namens generate-interface.prompt.md erstellen, die die Anweisungen zur Generierung der Schnittstelle enthält. Prompt-Dateien können aufeinander verweisen, sodass Sie das Datenbankschema als einfachen Markdown-Link in diese Prompt-Datei übergeben können.

Generate a TypeScript interface for the table specified by the user. Refer to the [user schema](database_users.prompt.md).

Um diese Prompt-Dateien im Chat zu verwenden, verwenden Sie die Schaltfläche "Anhang" (Büroklammer) oder verwenden Sie . Wählen Sie Prompts aus dem Menü und dann die Prompt-Datei aus, die Sie verwenden möchten. Beachten Sie, dass beim Verwenden der Datei generate-interface.prompt.md automatisch die Datei database_users.prompt.md geladen wird.

Animated gif showing how to use prompt files in chat.

Fazit

VS Code ist ein anpassbarer Assistent, der bei richtiger Konfiguration zu einem integralen Bestandteil des Workflows eines Teams werden kann. Mit benutzerdefinierten Anweisungen liegt die Kontrolle in den Händen der Entwickler.

Viel Spaß beim Programmieren!

© . This site is unofficial and not affiliated with Microsoft.