Skip to main content

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

Geben Sie Copilot zusätzlichen Kontext, um Ihr Projekt besser zu verstehen und zu erfahren, wie die Änderungen implementiert, getestet und validiert werden.

GitHub Copilot kann Antworten liefern, die auf deine personenbezogenen Vorlieben, die Arbeitsweise deines Teams, die von dir verwendeten Tools oder die Besonderheiten deines Projekts zugeschnitten sind, wenn du ihm genug Kontext dafür lieferst. 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 auf dem Bildschirm angezeigt, sondern stehen Copilot zur Verfügung, um ihm die Möglichkeit zu bieten, qualitativ bessere Antworten zu generieren.

Typen von benutzerdefinierten Anweisungen

GitHub Copilot-CLI unterstützt die folgenden Arten von benutzerdefinierten Anweisungen.

Repositoryweite benutzerdefinierte Anweisungen

Diese gelten für alle Anforderungen, die im Kontext eines Repositorys vorgenommen wurden.

Diese werden in einer copilot-instructions.md-Datei im Verzeichnis .github im Stammverzeichnis des Repositorys angegeben. Weitere Informationen findest du unter Erstellen repositoryweiter benutzerdefinierter Anweisungen.

Pfadspezifische benutzerdefinierte Anweisungen

Diese gelten für Anforderungen im Kontext von Dateien, die einem angegebenen Pfad entsprechen.

Diese werden in einer oder mehreren NAME.instructions.md Dateien innerhalb oder unterhalb des Verzeichnisses .github/instructions im Stammverzeichnis des Repositorys oder innerhalb oder unterhalb eines .github/instructions Verzeichnisses im aktuellen Arbeitsverzeichnis angegeben. Weitere Informationen findest du unter Erstellen pfadspezifischer benutzerdefinierter Anweisungen.

Wenn der in diesen Anweisungen angegebene Pfad mit einer Datei übereinstimmt, an der Copilot arbeitet, und eine repositoryweite datei mit benutzerdefinierten Anweisungen vorhanden ist, werden die Anweisungen aus beiden Dateien verwendet. Sie sollten potenzielle Konflikte zwischen Instruktionen vermeiden, da Copilots Wahl zwischen widersprüchlichen Instruktionen nicht deterministisch erfolgt.

Agent-Anweisungen

Diese werden von verschiedenen KI-Agents verwendet.

Sie können eine oder mehrere AGENTS.md Dateien erstellen. Diese können sich im Stammverzeichnis des Repositorys, im aktuellen Arbeitsverzeichnis oder in einem der Verzeichnisse befinden, die durch eine durch Kommas getrennte Liste der Pfade in der COPILOT_CUSTOM_INSTRUCTIONS_DIRS Umgebungsvariable angegeben werden.

Anweisungen in der AGENTS.md Datei im Stammverzeichnis, falls gefunden, werden als primäre Anweisungen behandelt. Wenn eine AGENTS.md-Datei und eine .github/copilot-instructions.mdDatei beide im Stammverzeichnis des Repositorys gefunden werden, werden die Anweisungen in beiden Dateien verwendet.

Anweisungen in anderen AGENTS.md Dateien werden als zusätzliche Anweisungen behandelt. Alle gefundenen primären Anweisungen wirken sich wahrscheinlich mehr auf die Antworten von Copilot aus als zusätzliche Anweisungen.

Weitere Informationen finden Sie im Agentsmd/agents.md-Repository.

Alternativ können Sie CLAUDE.md- und GEMINI.md-Dateien verwenden. Diese müssen sich im Stammverzeichnis des Repositorys befinden.

Lokale Anweisungen

Diese gelten in einer bestimmten lokalen Umgebung.

Sie können Anweisungen in Ihrem eigenen Heimverzeichnis geben, indem Sie eine Datei unter $HOME/.copilot/copilot-instructions.md erstellen.

Sie können die Umgebungsvariable COPILOT_CUSTOM_INSTRUCTIONS_DIRS auch auf eine durch Trennzeichen getrennte Liste von Verzeichnissen festlegen. Copilot CLI sucht in jedem dieser Verzeichnisse nach einer AGENTS.md-Datei und etwaigen .github/instructions/**/*.instructions.md-Dateien.

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.

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 _nicht_`src/foo/bar.py`.
      
    •      `src/**/*.py` – stimmt rekursiv mit allen `.py` Dateien im `src` Verzeichnis überein. Beispiel: `src/foo.py`, `src/foo/bar.py`und `src/foo/bar/baz.py`.
      
    •      `**/subdir/**/*.py` - wird rekursiv alle `.py`-Dateien in jedem beliebigen `subdir`-Verzeichnis unabhängig von der 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 excludeAgent dem Frontmatterblock hinzu, um zu verhindern, dass die Datei von Copilot Codierungsassistent oder Copilot Codeüberprüfung verwendet wird. Verwenden Sie entweder "code-review" oder "coding-agent".

    Beispielsweise wird die folgende Datei nur von Copilot Codierungsassistent 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 Codierungsassistent 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.

Hast du deinem Repository erfolgreich eine benutzerdefinierte Anweisungendatei hinzugefügt?

          <a href="https://docs.github.io/success-test/yes.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline">
          <span>Ja</span></a><a href="https://docs.github.io/success-test/no.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline"><span>Nein</span></a>

Benutzerdefinierte Anweisungen im Einsatz

Die Anweisungen in den Dateien stehen zur Verwendung zur Verfügung, sobald Copilot Sie die Datei(en) speichern. Anweisungen werden automatisch zu Anfragen hinzugefügt, die Sie an Copilot übermitteln.

Wenn du während einer CLI-Sitzung Änderungen an deinen benutzerdefinierten Anweisungen vornimmst, stehen deine Änderungen bei der nächsten Eingabe eines Prompts in der aktuellen oder in zukünftigen Sitzungen für die Verwendung durch Copilot zur Verfügung.

Weiterführende Lektüre

  •         [AUTOTITLE](/copilot/reference/custom-instructions-support)
    
  •         [AUTOTITLE](/copilot/tutorials/customization-library/custom-instructions) – eine kuratierte Sammlung von Beispielen
    
  •         [AUTOTITLE](/copilot/tutorials/use-custom-instructions)