Blog

GitHub Copilot Erweiterungen

Rob Bos

Rob Bos

Aktualisiert Oktober 15, 2025
8 Minuten

GitHub Copilot ist ein großartiges Tool, das Sie beim Schreiben von Code unterstützt. Die nächste Phase beginnt jetzt, indem Sie Ihre eigenen Erweiterungen für Copilot schreiben können! Dies ist eine großartige Möglichkeit, die Fähigkeiten von Copilot auf Ihre eigenen Bedürfnisse zu erweitern. Sie können zum Beispiel in Ihrem eigenen Wissensspeicher nach Informationen suchen oder sogar eine API aufrufen, um die benötigten Informationen zu erhalten. Und das alles direkt aus dem GitHub Copilot Chat heraus!

Ankündigung Bild

Einige Beispiele für diese Art der Arbeit mit Copilot sind:

  • @Arbeitsbereich/@Lösung - dies funktioniert innerhalb Ihrer IDE
  • @github - dies funktioniert mit der GitHub-API und Sie können Fragen stellen wie "alle Issues für dieses Repo erhalten" oder "alle PRs für dieses Repo erhalten".

Darüber hinaus kommen einige Erweiterungen auf den Markt. Im Moment gibt es zwei Arten von Erweiterungen, die Sie bauen können;

  1. VS Code-Erweiterungen für Copilot: Damit können Sie die Funktionen von Copilot in Ihrer IDE erweitern und es hat Zugriff auf Informationen in Ihrer IDE, wie z.B. die Dateien, die Sie geöffnet haben. Bitte beachten Sie, dass diese Erweiterung nur in VS Code funktioniert und in keiner der anderen unterstützten IDEs für Copilot. Ein Beispiel für diese Art von Erweiterung ist die @azure Erweiterung (siehe Ankündigung), die es Ihnen ermöglicht, mit einer Azure-Wissensdatenbank zu interagieren (derzeit in der privaten Vorschau).
  2. GitHub Copilot-Erweiterungen: Diese sind irgendwo online verfügbar (wo auch immer Sie sie hosten möchten) und können von Copilot Chat aus in jeder Benutzeroberfläche aufgerufen werden, die dies unterstützt (derzeit nur VS Code und die GitHub-Weboberfläche auf github.com).

Schreiben einer GitHub Copilot Erweiterung

Beginnen Sie damit, Ihre eigene Copilot-Erweiterung zu schreiben, indem Sie die Ankündigung und die Dokumentation. Von dort aus können Sie eine GitHub App erstellen (öffentlich oder privat für Ihr Unternehmen) und zum Copilot-Teil der Einstellungen gehen (siehe nächster Screenshot).

Nachdem Sie die GitHub App erstellt haben, müssen Sie die App mit einem öffentlich Endpunkt, der von Copilot aufgerufen wird. Dieser Endpunkt sollte in der Lage sein, die Anfragen von Copilot zu verarbeiten und die Ergebnisse im richtigen Format zurückzugeben. Der einfachste Weg, damit zu beginnen, ist die Erstellung eines Codespace und verwenden Sie die Codespace URL, wenn Sie Ihre Lösung als Endpunkt für Ihre Erweiterung ausführen:

Screenshot der Codespace URL GitHub App

Die URL im Screenshot ist dieselbe wie die, die ich in der Einstellung 'Callback URL' auf der Registerkarte General der GitHub App-Einstellungen verwende.

In der Organisation copilot-extensions finden Sie eine Menge Code-Beispiele, wie das folgende:

  • Blackbeard-Erweiterung (Sprechen Sie wie ein Pirat)
  • RAG-Erweiterung (implementieren Sie 'retrieval augmented generation', um Ihre Antwort in mehreren Schritten aufzubauen)
  • Funktionsaufruf-Erweiterung (Abruf einer Funktion aus der Benutzerabfrage, z.B. "Wie ist das Wetter in Amsterdam")
  • GitHub Models-Erweiterung (verwenden Sie die neuen Models-APIs, um mit einem LLM zu kommunizieren) Diese sind gut, um darin zu stöbern, aber sobald Sie etwas anderes tun wollen als eine Systemabfrage hinzuzufügen und die LLM-Antwort zurückzustreamen, werden Sie einige sehr raue Kanten finden.

Stattdessen empfehle ich Ihnen, direkt zur Copilot Extension SDK Bibliotheksseite auf https://github.com/copilot-extensions/preview-sdk.js zu gehen . Zum Zeitpunkt des Verfassens dieses Artikels befindet sich dieses SDK noch im frühen Alphastadium, aber es löst mehrere Probleme, auf die Sie stoßen werden, wenn Sie mit der Erstellung Ihrer eigenen Erweiterung beginnen. Ich habe einige Beispiele zu diesem Repository hinzugefügt, um Ihnen den Einstieg zu erleichtern.

Schreiben des Erweiterungscodes

Mit den Beispielen aus dem SDK Repo sollten Sie den Anfang machen. Die wichtigsten Dinge, die Sie benötigen, finden Sie in der Datei README.md im examples Ordner. Führen Sie die npm install und npm run watch Befehle, um die Beispiele zum Laufen zu bringen. Vergessen Sie nicht, Ihren Codespace-Port öffentlich zu machen (damit Copilot seine Nachrichten dorthin senden kann) und die Codespace-Port-URL in den Einstellungen der GitHub-App zu konfigurieren.

Sie müssen ein POST Ereignis in Ihrer Anwendung verarbeiten und dann Text und ein createDoneEvent zurückgeben, um anzuzeigen, dass Ihre Antwort vollständig ist.

Wenn Sie möchten, können Sie eine createAckEvent die Copilot mitteilt, dass Sie die Anfrage erhalten haben und daran arbeiten. Sie zeigt dem Benutzer diesen Status an und ist eine gute Möglichkeit, den Benutzer wissen zu lassen, dass Sie an seiner Anfrage arbeiten, insbesondere wenn Sie z.B. zu einem LLM gehen, um einen Text zu erstellen.

Nachdem die acknowledge Ereignis, können Sie hinzufügen createTextEvent("your text here") um der Ausgabe einen eigenen Text hinzuzufügen. Was Sie als nächstes tun, bleibt Ihnen überlassen. Es gibt mehrere Optionen, die bereits vom SDK unterstützt werden:

  • Rufen Sie die GitHub Copilot API mit der Benutzerabfrage auf und erhalten Sie die Antwort zurück (begrenzte Modelloptionen)
  • Rufen Sie eine API auf, auf die Sie Zugriff haben
  • Den Benutzer auffordern, etwas zu bestätigen (Beispiel später in diesem Beitrag)
  • Rufen Sie GitHub Models auf, um eine Antwort von einem LLM mit weiteren Modelloptionen zu erhalten

Ausführen der Erweiterung serverseitig in einem Codespace

Die Arbeit an der Erweiterung innerhalb einer Codespace ist der einfachste Weg, eine Erweiterung zu entwickeln: Sie erhalten den Datenverkehr direkt und können so viel debuggen, wie Sie wollen. Bitte beachten Sie, dass ich Ihnen empfehle, dafür eine separate GitHub App zu verwenden, da der gesamte Datenverkehr von der GitHub App in Ihre Richtung geschickt wird, was verwirrend sein kann, um festzustellen, woher er kommt.

Screenshot der Ausführung der Erweiterung in einem Codespace

Vergessen Sie nicht, den Port in den Codespace-Einstellungen öffentlich zu machen und die URL in den GitHub App-Einstellungen + dem Copilot-Einstellungsabschnitt der GitHub App zu konfigurieren. Wenn Sie keinen Copilot-Bereich in der App haben, ist Ihre App nicht für Copilot-Erweiterungen gekennzeichnet.

Screenshot der Codespace-Einstellungen

Arbeiten mit der Erweiterung

Sobald Sie die GitHub App in einer Organisation installieren (die Copilot-Lizenzen müssen aktiviert sein), kann jeder Benutzer in dieser Organisation Fragen stellen. Beachten Sie bitte, dass GitHub Copilot die eingehende Anfrage immer auf das @ Symbol, also müssen Sie Ihre Eingabeaufforderung mit @your-app-name um die Erweiterung auszulösen. Sobald Sie dies getan haben, wird die gesamte Konversation an Ihre Erweiterung gesendet, denn es gibt nur eine Erweiterung pro Thread, mit der interagiert werden kann. Dies geschieht wahrscheinlich aus Sicherheitsgründen, da die Erweiterung die gesamte Konversation erhält und damit machen kann, was sie will. Sie können sich vorstellen, dass, wenn Ihre Erweiterung in der Lage wäre, die Konversation von einer anderen App aus zu lesen, sensible Informationen durchsickern könnten.

Screenshot des Aufrufs der Erweiterung durch den Aufruf von @xebia mit Ihrer Eingabeaufforderung. Es zeigt das Ergebnis der Eingabeaufforderung, die darauf hinweist, dass sie mit der Systemaufforderung 'talk like a pirate' geschrieben wurde

Sie können die Erweiterung jetzt überall dort ausprobieren, wo sie unterstützt wird! Zum Zeitpunkt der Erstellung dieses Beitrags ist sie in VS Code (+ Insiders) und in der Web UI auf github.com verfügbar. Sie können die Erweiterung um etwas bitten und sie wird die Aufforderung an Ihre Erweiterung senden. Beachten Sie, dass GitHub Copilot selbst die eingehende Anfrage mit seinem Inhaltsfilter überprüft, um zu verhindern, dass schädliche Nachrichten beantwortet werden. Nur wenn Sie den Filter bestehen (z.B. wenn es sich um eine Eingabeaufforderung zum Thema Programmierung handelt), wird die Erweiterung aufgerufen. Dasselbe gilt für die Daten, die Sie zurücksenden. Sie werden von GitHub Copilot geprüft, bevor sie dem Benutzer angezeigt werden. Ich habe zunächst nur mit "Hallo Kumpel" als Antwort begonnen, aber das wurde blockiert und daher dem Benutzer nicht angezeigt.

Wenn Sie zum ersten Mal mit einer GitHub Copilot-Erweiterung interagieren, erhalten Sie eine Nachricht, in der Sie um Ihr Einverständnis gebeten werden, die Konversation mit der Erweiterung zu teilen. Ebenso erhält die Erweiterung Ihre Benutzerinformationen (GitHub-Handle, Standort (ungefähr)). Dies dient dazu, die Antwort für den Benutzer zu personalisieren. Sie können diese Zustimmung jederzeit in der GitHub-Einstellungen.

Screenshot mit der Aufforderung, den Zugriff auf die neue Copilot-Erweiterung zu erlauben

Hinzufügen von Systemaufforderungen


import { prompt, createAckEvent, createDoneEvent, createTextEvent, parseRequestBody } from "@copilot-extensions/preview-sdk";

const tokenForUser = request.headers['x-github-token'];
const payload = parseRequestBody(body);

let result = await prompt(payload_message.content, {
  messages: payload.messages, // Fügen Sie hier den aktuellen Nachrichten-Thread ein, den der LLM verwenden soll
  token: tokenForUser
});
response.write(createTextEvent(result.message.content));
response.end(createDoneEvent());
console.log('Antwort gesendet');

Arbeiten mit der Benutzerbestätigung

Sie haben auch die Möglichkeit, mit Benutzerbestätigungen in Ihrer Erweiterung zu arbeiten. Die Copilot-Erweiterungen bieten Ihnen unendlich viele Möglichkeiten, z. B. als "Agent", der Dinge für Sie erledigen kann. Sie stellen eine Frage zu einem Repository und einer API, die es nicht gibt? Lassen Sie Ihre Copilot-Erweiterung ein Problem in einem Repository mit der Frage und der Antwort aus der API füllen. Oder bitten Sie den Benutzer, etwas zu bestätigen, wie im folgenden Beispiel:


import { getUserConfirmation } from "@copilot-extensions/preview-sdk";

response.write(
  createConfirmationEvent({
  id: "123",
  Titel: "Sind Sie sicher?",
  Nachricht: "Erstellen Sie eine Ausgabe mit der fehlenden API-Oberfläche.",
  }),
);
Screenshot des Bestätigungsdialogs mit den Schaltflächen Akzeptieren und Verwerfen

Fazit

GitHub Copilot Erweiterungen sind eine großartige Möglichkeit, die Fähigkeiten von Copilot auf Ihre eigenen Bedürfnisse zu erweitern. Sie können zum Beispiel in Ihrem eigenen Wissensspeicher nach Informationen suchen (API, Datenbank, ein LLM mit Ihren eigenen Daten). Und das alles direkt aus dem GitHub Copilot Chat heraus! Die Möglichkeiten sind endlos und ich bin gespannt, was Sie damit bauen werden.

Ich plane, dies in unsere interne Wissensdatenbank zu integrieren und mit etwas Einfachem wie "Wie lautet das GitHub-Handle für Rob Bos?" zu beginnen und von dort aus zu erweitern. Ich bin auch gespannt, was andere Leute damit bauen werden, denn die Möglichkeiten sind endlos.

Welche Ideen haben Sie, um damit zu bauen? Lassen Sie es mich in den Kommentaren unten wissen!

Verfasst von

Rob Bos

Rob has a strong focus on ALM and DevOps, automating manual tasks and helping teams deliver value to the end-user faster, using DevOps techniques. This is applied on anything Rob comes across, whether it’s an application, infrastructure, serverless or training environments. Additionally, Rob focuses on the management of production environments, including dashboarding, usage statistics for product owners and stakeholders, but also as part of the feedback loop to the developers. A lot of focus goes to GitHub and GitHub Actions, improving the security of applications and DevOps pipelines. Rob is a Trainer (Azure + GitHub), a Microsoft MVP and a LinkedIn Learning Instructor.

Contact

Let’s discuss how we can support your journey.