Skip to main content

Hinzufügen von benutzerdefinierten Anweisungen für GitHub Copilot-CLI

Geben Sie Copilot zusätzlichen Kontext, um Ihr Projekt besser zu verstehen und um Änderungen zu erstellen, zu testen und zu validieren.

GitHub Copilot kann Antworten bereitstellen, die auf Ihre persönlichen Vorlieben zugeschnitten sind, wie Ihr Team funktioniert, welche Tools Sie verwenden, oder die Besonderheiten Ihres Projekts, wenn Sie dies mit genügend Kontext versehen. Anstatt diese kontextbezogenen Details wiederholt zu Ihren Eingabeaufforderungen hinzuzufügen, können Sie benutzerdefinierte Anweisungen erstellen, die diese Informationen automatisch für Sie hinzufügen. Die zusätzlichen Informationen werden nicht angezeigt, stehen aber zur Verfügung, um Copilot es zu ermöglichen, antworten mit höherer Qualität zu generieren.

Typen von benutzerdefinierten Anweisungen

GitHub Copilot-CLI unterstützt Befehle aus den folgenden Speicherorten.

Sofern in der nachstehenden Tabelle nicht anders angegeben, findet Copilot CLI Repository- und Agent-Anweisungsdateien an den Standardorten: im Stammverzeichnis des Repositorys, im aktuellen Arbeitsverzeichnis, in allen dazwischenliegenden Verzeichnissen sowie in allen Verzeichnissen im Pfad einer Datei, an der es arbeitet. Modulare Anweisungsdateien (die *.instructions.md entsprechen) sind pfadspezifisch – eine Datei mit einem applyTo-Wert gilt nur für passende Dateien.

OrtBereich und Verhalten
$HOME/.copilot/copilot-instructions.mdBenutzeranweisungen, die für alle Repositorys gelten.
$HOME/.copilot/instructions/**/*.instructions.mdModulare Anleitungen auf Benutzerebene.
.github/copilot-instructions.mdRepositoryweite Anweisungen, die an den Standardspeicherorten ermittelt wurden.
.github/instructions/**/*.instructions.mdModulare Repository-Anweisungen, die an den Standardspeicherorten, aber nicht in Zwischenverzeichnissen entdeckt werden.
AGENTS.mdAgent-Anweisungen, gefunden an den Standardorten. Weitere Informationen finden Sie im Agentsmd/agents.md-Repository.
CLAUDE.mdAgent-Anweisungen, die an den Standardorten gefunden wurden.
Copilot CLI verwendet auch .claude/CLAUDE.md.
GEMINI.mdAgent-Anweisungen, die in den Standardpfaden gefunden wurden.
In COPILOT_CUSTOM_INSTRUCTIONS_DIRS aufgeführte VerzeichnisseZusätzliche AGENTS.md und *.instructions.md Dateien. Trennen Sie mehrere Verzeichnisse durch Kommas.

Wenn Sie die Umgebungsvariable COPILOT_HOME festlegen, verwendet Copilot CLI dieses Verzeichnis für beide Speicherorte für Anweisungen auf Benutzerebene anstelle von $HOME/.copilot.

Verwenden Sie den /instructions Befehl, um die für die aktuelle Sitzung ermittelten Anweisungsdateien anzuzeigen und einzelne Dateien zu aktivieren oder zu deaktivieren.

Interaktion mehrerer Anweisungsdateien

Wenn mehrere anwendbare Anweisungsdateien auf Benutzerebene und Repository-Ebene vorhanden sind, kombiniert Copilot CLI deren Anweisungen. Es entfernt doppelte Kopien identischer Anweisungen auf Benutzerebene, repositoryweiter Anweisungen und Agentanweisungen, definiert jedoch keine allgemeine Prioritätsreihenfolge zwischen diesen Dateien. Vermeiden Sie widersprüchliche Anweisungen.

Pfadspezifische Anweisungen sind nur enthalten, wenn ihr applyTo Wert einer Datei entspricht, Copilot CLI mit der gearbeitet wird. Eine Anweisungsdatei, die Sie mit /instructions deaktivieren, ist nicht enthalten.

Erstellen repositoryweiter benutzerdefinierter Anweisungen

  1. Erstellen Sie im Stammverzeichnis Ihres Repositorys eine Datei mit dem Namen .github/copilot-instructions.md.

    Erstellen Sie das Verzeichnis .github, falls es noch nicht vorhanden ist.

  2. Füge der Datei Anweisungen in natürlicher Sprache im Markdownformat hinzu.

    Leerzeichen zwischen Anweisungen werden ignoriert, d. h. die Anweisungen können in einem Absatz und jeweils in einer neuen Zeile oder für bessere Lesbarkeit durch leere Zeilen getrennt geschrieben werden.

    Hilfe zum Schreiben effektiver benutzerdefinierter Anweisungen finden Sie unter Informationen zum Anpassen der GitHub Copilot-Antworten.

Verweisen auf andere Dateien

In .github/copilot-instructions.md, AGENTS.md oder CLAUDE.md verwenden Sie @, gefolgt von einem relativen Pfad, um eine weitere Datei einzubinden. Copilot CLI liest die referenzierte Datei sofort und unterstützt Verweise in referenzierten Dateien.

Referenzierte Dateien müssen innerhalb des Repositorys oder innerhalb des benutzerdefinierten Anweisungenverzeichnisses verbleiben, um lokale Anweisungen zu erhalten. Absolute Pfade und Pfade, die beginnen, ~/ werden nicht geladen. Dateiverweise werden in GEMINI.md- oder *.instructions.md-Dateien nicht erweitert.

Erstellen pfadspezifischer benutzerdefinierter Anweisungen

  1. Erstelle das .github/instructions-Verzeichnis, wenn es noch nicht vorhanden ist.

  2. Erstellen Sie optional Unterverzeichnisse von .github/instructions zur Organisation Ihrer Anleitungsdateien.

  3. Erstelle mindestens eine NAME.instructions.md-Datei, in der NAME den Zweck der Anweisungen angibt. Der Dateiname muss auf .instructions.md enden.

  4. Erstelle am Anfang der Datei einen Frontmatterblock, der das Schlüsselwort applyTo enthält. Verwende die Globsyntax, um anzugeben, für welche Dateien oder Verzeichnisse die Anweisungen gelten.

    Zum Beispiel:

    ---
    applyTo: "app/models/**/*.rb"
    ---
    

    Du kannst mehrere Muster angeben, indem du sie durch Kommas trennst. Wenn du beispielsweise die Anweisungen auf alle TypeScript-Dateien im Repository anwenden möchtest, kannst du den folgenden Frontmatterblock verwenden:

    ---
    applyTo: "**/*.ts,**/*.tsx"
    ---
    

    Glob-Beispiele:

    • * - entspricht allen Dateien im aktuellen Verzeichnis.
    • ** oder **/* - entspricht allen Dateien in allen Verzeichnissen.
    • *.py - entspricht allen .py Dateien im aktuellen Verzeichnis.
    • **/*.py - stimmt rekursiv mit allen .py Dateien in allen Verzeichnissen überein.
    • src/*.py – entspricht allen .py Dateien im src Verzeichnis. Beispiel: src/foo.py und src/bar.py, aber nichtsrc/foo/bar.py.
    • src/**/*.py – stimmt rekursiv mit allen .py Dateien im src Verzeichnis überein. Beispiel: src/foo.py, src/foo/bar.pyund src/foo/bar/baz.py.
    •           `**/subdir/**/*.py` - wird rekursiv eine Übereinstimmung für alle `.py`-Dateien in jedem beliebigen `subdir`-Verzeichnis unabhängig von dessen Tiefe finden. Beispiel: `subdir/foo.py`, `subdir/nested/bar.py`, `parent/subdir/baz.py` und `deep/parent/subdir/nested/qux.py`, aber _nicht_`foo.py` in einem Pfad, der kein `subdir` Verzeichnis enthält.
      
  5. Fügen Sie optional das Schlüsselwort Copilot-Cloud-Agent dem Frontmatterblock hinzu, um zu verhindern, dass die Datei von Copilot Codeüberprüfung oder excludeAgent verwendet wird. Verwenden Sie entweder "code-review" oder "cloud-agent".

    Beispielsweise wird die folgende Datei nur von Copilot-Cloud-Agent gelesen.

    ---
    applyTo: "**"
    excludeAgent: "code-review"
    ---
    

    Wenn das excludeAgent-Schlüsselwort nicht im Front-Matterblock enthalten ist, verwenden sowohl Copilot Codeüberprüfung als auch Copilot-Cloud-Agent die Anweisungen.

  6. Füge deine benutzerdefinierten Anweisungen in natürlicher Sprache im Markdownformat hinzu. Leerzeichen zwischen Anweisungen werden ignoriert, d. h. die Anweisungen können in einem Absatz und jeweils in einer neuen Zeile oder für bessere Lesbarkeit durch leere Zeilen getrennt geschrieben werden.

Benutzerdefinierte Anweisungen im Einsatz

Änderungen, die Sie an benutzerdefinierten Anweisungen vornehmen, stehen nicht sofort zur Verwendung in aktiven CLI-Sitzungen zur Verfügung. Um Ihre Änderungen anzuwenden, beenden Sie die aktuelle Sitzung und setzen Sie sie dann entweder fort (führen Sie z. B. copilot --continue aus), oder starten Sie eine neue Sitzung (verwenden Sie dazu z. B. /new innerhalb einer interaktiven Sitzung).

Weiterführende Lektüre