Was ist das GitHub Copilot SDK?

Abgeschlossen

Das GitHub Copilot SDK ist ein Multiplattform-Toolkit (derzeit in Technical Preview), mit dem Sie eine AI-Agent-Laufzeit in Ihre eigenen Anwendungen einbetten können. Das SDK macht das gleiche Modul hinter der GitHub Copilot CLI als programmierbare Schnittstelle verfügbar, sodass Ihre App Die Möglichkeit bietet, Anweisungen in natürlicher Sprache zu verstehen, Aktionen zu planen und Tools aufzurufen, um diese Anweisungen zu erfüllen. Sie müssen nicht alle diese Infrastruktur von Grund auf neu erstellen.

Warum ein SDK für KI-Agents verwenden?

Das Erstellen eines voll funktionsfähigen KI-Agents von Grund auf ist komplex. Sie müssen die Verwaltung des Konversationszustands übergreifend managen, entscheiden, wann Sie welche externe API aufrufen, sicherstellen, dass die Antworten der KI im Rahmen bleiben, mehrere KI-Modelle für unterschiedliche Aufgaben verwalten und Sicherheitsmaßnahmen implementieren. Das Erstellen agentischer Workflows von Grund auf bedeutet, dass Sie im Wesentlichen eine Miniplattform erstellt haben, bevor Sie sogar zu Ihrer Geschäftslogik gelangen.

Das GitHub Copilot SDK entfernt diese Komplexität, indem ein vorgefertigtes, produktionsgetestetes Agentmodul bereitgestellt wird. Das SDK behandelt Authentifizierung, Modellverwaltung, Chatsitzungen und Streaming. Sie konzentrieren sich auf das, was auf diesen Bausteinen aufbaut – Ihre domänenspezifischen Tools und Geschäftslogik.

Übersicht über die Architektur

Das GitHub Copilot SDK kommuniziert mit der GitHub Copilot CLI, die im Servermodus als lokaler Prozess ausgeführt wird. Das SDK verwaltet den CLI-Prozesslebenszyklus automatisch. Alle SDK-Sprachen verwenden dieselbe Architektur.

Die Architektur folgt diesem Fluss:

Your Application → SDK Client → (JSON-RPC) → Copilot CLI (server mode)

Sie interagieren mit dem SDK über eine Clientbibliothek in Ihrer gewünschten Programmiersprache. Das SDK verarbeitet das Kommunikationsprotokoll, sodass Sie mit einfachen Methodenaufrufen statt unformatierten Nachrichten arbeiten.

Sprachunterstützung

Das SDK bietet idiomatische Bibliotheken für vier Programmiersprachen:

Language Paket
Node.js (TypeScript) npm install @github/copilot-sdk
Python pip install github-copilot-sdk
Go go get github.com/github/copilot-sdk/go
.NET (C#) dotnet add package GitHub.Copilot.SDK

Unabhängig davon, ob Sie eine Webanwendung in TypeScript oder einem Back-End-Dienst in C# erstellen, können Sie dieselben KI-Agent-Funktionen integrieren.

Wichtigste Funktionen

Das SDK bietet mehrere integrierte Funktionen, die das Erstellen von KI-Agents vereinfachen.

Produktionsreife Agentschleife

Das SDK bietet die gleiche bewährte Ausführungsschleife, die GitHub Copilot CLI unterstützt. Diese Ausführungsschleife verwaltet mehrschrittige Gespräche, ruft Tools auf und wiederholt sich, bis die Aufgabe abgeschlossen ist. Sie müssen die Planungs- und Orchestrierungslogik nicht codieren.

Tool-Orchestrierung

Sie können benutzerdefinierte Tools definieren, die der KI-Agent während des Begründungsprozesses nach Bedarf aufruft. Wenn Sie ein Tool (wie z. B. lookupCustomer(id)) registrieren, kann das KI-Modell des Agents bestimmen, wann es aufgerufen werden soll. Das SDK verarbeitet die Verkabelung, sodass die KI Ihr Tool strukturiert über einen tatsächlichen Funktionsaufruf in der Laufzeit aufrufen kann, anstatt bei Code zu erraten.

In .NET werden Tools mithilfe AIFunctionFactory des Microsoft.Extensions.AI Pakets definiert. Jedes Tool enthält einen Namen, eine Beschreibung, ein Parameterschema und eine Handlerfunktion.

Multimodellflexibilität

Das SDK ist nicht an ein KI-Modell gebunden. Es unterstützt mehrere KI-Modelle und ermöglicht das dynamische Modellrouting. Sie können z. B. ein schnelleres Modell für einfache Aufgaben und ein leistungsfähigeres Modell für komplexes Denken innerhalb derselben Anwendung verwenden.

Echtzeitstreaming

Das SDK unterstützt Streamingantworten, d. h., wenn die KI Ausgabe generiert, können Sie sie in Ihre App streamen. Sie können z. B. Token streamen, um einen Eingabeindikator oder eine teilweise Antwort in einer Chatbenutzeroberfläche anzuzeigen. Dieses Verhalten macht die Erfahrung interaktiver und reaktionsfähiger.

Authentifizierung und Sicherheit

Das SDK unterstützt mehrere Authentifizierungsmethoden:

  • Angemeldeter GitHub-Benutzer: Verwendet gespeicherte OAuth-Anmeldeinformationen aus der Copilot CLI-Anmeldung wieder.
  • OAuth GitHub-App: Übergibt Benutzertoken von Ihrer GitHub OAuth-App.
  • Umgebungsvariablen: Verwendet COPILOT_GITHUB_TOKEN, GH_TOKEN oder GITHUB_TOKEN.
  • Bring your own key (BYOK): Verwendet Ihre eigenen API-Schlüssel für Anbieter wie OpenAI, Azure AI Foundry oder Anthropic, ohne dass GitHub-Authentifizierung erforderlich ist.

Ein GitHub Copilot-Abonnement ist erforderlich, es sei denn, Sie verwenden die BYOK-Option.

Context-Management

Das SDK verwaltet automatisch den Unterhaltungsverlauf innerhalb einer Sitzung. Es verfolgt vorherige Nachrichten und Ausgaben von Werkzeugen, sodass das KI-Modell den Kontext hat, den es für kohärente Multi-Turn-Interaktionen benötigt. Für lange Sitzungen bietet das SDK eine Funktion für unendliche Sitzungen, die den Kontext automatisch komprimiert, wenn das Kontextfenster seine Grenze erreicht, um Tokenüberlauffehler zu verhindern.

Kernkonzepte

Wenn Sie die Kernkonzepte des SDK verstehen, können Sie effektiv damit arbeiten.

Kunde

Die CopilotClient Klasse verwaltet die Verbindung mit dem Copilot CLI-Server. Sie erstellen eine Clientinstanz für Ihre Anwendung und verwenden sie zum Erstellen von Sitzungen. Der Client behandelt das Starten und Beenden des CLI-Prozesses, das Einrichten des Kommunikationskanals und das Verwalten von Sitzungszyklen.

Zu den Konfigurationsoptionen gehören AutoStart (automatisch startet der CLI-Server, wenn die erste Sitzung erstellt wird), LogLevel (steuert die Ausführlichkeit der Protokollierung), CliPath (gibt einen benutzerdefinierten Pfad zur ausführbaren CLI an) und GithubToken (stellt ein GitHub-Token direkt bereit, anstatt sich auf Umgebungsvariablen oder CLI-Anmeldung zu verlassen).

Session

A CopilotSession stellt einen einzelnen Unterhaltungs- oder Aufgabenkontext dar. Jede Sitzung verfügt über einen eigenen Verlauf der Konversation, eine Modellkonfiguration, Tooldefinitionen und einen Systemprompt. Sie erstellen Sitzungen vom Client mithilfe CreateSessionAsync, senden Nachrichten an sie und empfangen Antworten über ein ereignisgesteuertes Modell.

Zu den wichtigsten Konfigurationsoptionen für Sitzungen gehören:

  • Modell: Das zu verwendende KI-Modell (z. B gpt-4.1. ).
  • SystemMessage: Definiert die Rolle und das Verhalten des Agents durch ein SystemMessageConfig Objekt mit einem Mode Objekt (Anfügen oder Ersetzen) und einer Content Zeichenfolge.
  • Tools: Benutzerdefinierte Tooldefinitionen, die der Agent aufrufen kann.
  • InfiniteSessions: Steuert die automatische Kontextkomprimierung über ein InfiniteSessionConfig Objekt. Wenn diese Option aktiviert ist, können Sie konfigurieren BackgroundCompactionThreshold (den Prozentsatz der Kontextfensterverwendung, der die Hintergrundkomprimierung auslöst) und BufferExhaustionThreshold (der Prozentsatz, in dem das SDK die Komprimierung erzwingt, um tokenüberlauf zu verhindern).

Tools

Tools sind Funktionen, die Sie bei einer Sitzung registrieren, damit der KI-Agent sie während der Begründung aufrufen kann. Jedes Tool verfügt über einen Namen, eine Beschreibung, Parameter und eine Handlerfunktion. Wenn das KI-Modell entscheidet, ein Tool zu verwenden, fängt das SDK die Anforderung ab, ruft den Handler auf und gibt das Ergebnis zur weiteren Verarbeitung an das Modell zurück.

In .NET definieren Sie Tools mithilfe von AIFunctionFactory.Create von Microsoft.Extensions.AI.

AIFunctionFactory.Create(
    async ([Description("The order ID number")] int orderId) =>
        await GetOrderDetailsAsync(orderId),
    "get_order_details",
    "Look up the status and details of a specific order.")

Ereignisse

Das SDK verwendet ein ereignisgesteuertes Kommunikationsmodell. Wenn Sie eine Nachricht an eine Sitzung senden, löst das SDK Ereignisse aus, während die Verarbeitung erfolgt:

  • AssistantMessageEvent: Das KI-Modell hat eine vollständige Antwort erstellt.
  • AssistantMessageDeltaEvent: Das KI-Modell hat während des Streamings ein partielles Antworttoken erzeugt. Die Data.DeltaContent Eigenschaft enthält den inkrementellen Text, den Sie in Echtzeit anzeigen können.
  • SessionIdleEvent: Die Sitzung hat die Verarbeitung abgeschlossen (einschließlich aller Toolaufrufe).
  • SessionErrorEvent: Während der Verarbeitung ist ein Fehler aufgetreten.
  • ToolExecutionStartEvent und ToolExecutionCompleteEvent: Ein Tool wurde aufgerufen.

Sie abonnieren diese Ereignisse, um die Antworten des Agents zu erfassen und Fehler zu behandeln. Verwenden Sie für Nichtstreaming-Szenarien AssistantMessageEvent, um die vollständige Antwort zu erfassen. Verwenden Sie AssistantMessageDeltaEvent für Streamingszenarien (z. B. das Anzeigen eines Eingabeindikators in einer Chat-UI), um Token so zu rendern, wie sie ankommen.

Sitzungshaken

Das SDK stellt Hooks bereit, mit denen Sie das Agentverhalten an wichtigen Punkten abfangen und ändern können:

  • OnPreToolUse: Abfangen von Toolaufrufen vor der Ausführung. Der Handler gibt einen PermissionDecision Wert zurück—Allow um fortzufahren, Deny um den Aufruf zu blockieren oder Ask den Benutzer zur Bestätigung aufzufordern.
  • OnPostToolUse: Prozesstoolergebnisse nach der Ausführung, nützlich zum Protokollieren oder Ändern von Ergebnissen, bevor sie das Modell erreichen.
  • OnUserPromptSubmitted: Benutzeraufforderungen vor ihrer Verarbeitung abfangen und modifizieren.
  • OnErrorOccurred: Behandeln Sie Fehler, indem Sie einen ErrorHandling Wert zurückgeben–Retry um den Vorgang erneut zu versuchen, Skip ohne das Ergebnis fortzusetzen oder Abort die Verarbeitung zu beenden.
  • OnSessionStart: Wird ausgeführt, wenn eine Sitzung beginnt, nützlich für Initialisierungsaufgaben.
  • OnSessionEnd: Wird ausgeführt, wenn eine Sitzung endet, nützlich für die Bereinigung oder Protokollierung.

Mit diesen Hooks können Sie Berechtigungskontrollen, Protokollierungen und Sicherheitsschutzschienen implementieren.

Voraussetzungen für die .NET-Entwicklung

Um das GitHub Copilot SDK in einer .NET-Anwendung zu verwenden, benötigt Ihre Umgebung Folgendes:

  • .NET 8.0 oder höher.
  • Die GitHub Copilot CLI, installiert und in Ihrem System PATH verfügbar.
  • Ein GitHub-Konto mit einem aktiven Copilot-Abonnement (oder Ihren eigenen API-Schlüsseln für BYOK).
  • Das GitHub.Copilot.SDK NuGet-Paket.
  • Das Microsoft.Extensions.AI NuGet-Paket (zum Definieren von Tools mit AIFunctionFactory).

Zusammenfassung

Das GitHub Copilot SDK bietet eine leistungsstarke, produktionsfähige Plattform zum Erstellen von KI-Agents in Ihren Anwendungen. Durch das Abstrahieren der Komplexität der Agent-Orchestrierung, der Toolintegration und der Kontextverwaltung können Sie sich auf die Definition der Funktionen und Geschäftslogik Ihres Agents konzentrieren. Mit Unterstützung für mehrere Sprachen, Echtzeitstreaming und flexible Authentifizierungsoptionen ist das GitHub Copilot SDK eine vielseitige Wahl, um KI-Agent-Funktionen zu einer breiten Palette von Anwendungen hinzuzufügen.