Qu’est-ce que le Kit de développement logiciel (SDK) GitHub Copilot ?

Effectué

Le Kit de développement logiciel (SDK) GitHub Copilot est un kit de ressources multiplateforme (actuellement en préversion technique) qui vous permet d’incorporer un runtime d’agent IA dans vos propres applications. Le Kit de développement logiciel (SDK) expose le même moteur derrière l’interface CLI GitHub Copilot qu’une interface programmable, ce qui permet à votre application de comprendre les instructions en langage naturel, de planifier des actions et d’appeler des outils pour suivre ces instructions. Vous n’avez pas besoin de créer toutes ces infrastructures à partir de zéro.

Pourquoi utiliser un Kit de développement logiciel (SDK) pour les agents IA ?

La création d’un agent IA doté de toutes les fonctionnalités depuis le début est complexe. Vous devez gérer la gestion de l’état des conversations à travers les tours, décider quand appeler l’API externe, garantir que les réponses de l’IA restent dans les limites, gérer plusieurs modèles IA pour différentes tâches et implémenter des mesures de sécurité. La création de flux de travail agentiques à partir de zéro signifie que vous avez essentiellement créé une mini-plateforme avant même d’accéder à votre logique métier.

Le Kit de développement logiciel (SDK) GitHub Copilot supprime cette complexité en fournissant un moteur d’agent prédéfini et testé en production. Le SDK gère l’authentification, la gestion des modèles, les sessions de conversation et la diffusion en continu. Vous vous concentrez sur ce qui s’appuie sur ces blocs de construction : vos outils et votre logique métier spécifiques au domaine.

Vue d’ensemble de l’architecture

Le Kit de développement logiciel (SDK) GitHub Copilot communique avec l’interface CLI GitHub Copilot, qui s’exécute en mode serveur en tant que processus local. Le Kit de développement logiciel (SDK) gère automatiquement le cycle de vie du processus CLI. Tous les langages sdk partagent cette même architecture.

L’architecture suit ce flux :

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

Vous interagissez avec le Kit de développement logiciel (SDK) via une bibliothèque cliente dans votre langage de programmation de votre choix. Le Kit de développement logiciel (SDK) gère le protocole de communication. Vous utilisez donc des appels de méthode simples plutôt que des messages bruts.

Assistance linguistique

Le SDK fournit des bibliothèques idiomatiques pour quatre langages de programmation :

Language Package
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

Que vous générez une application web dans TypeScript ou un service back-end en C#, vous pouvez incorporer les mêmes fonctionnalités d’agent IA.

Fonctionnalités clés

Le Kit de développement logiciel (SDK) fournit plusieurs fonctionnalités intégrées qui simplifient la création d’agents IA.

Boucle d’agent de niveau production

Le Kit de développement logiciel (SDK) fournit la même boucle d’exécution éprouvée qui alimente GitHub Copilot CLI. Cette boucle d’exécution gère les conversations à plusieurs tours, appelle des outils et itère jusqu’à ce que la tâche soit terminée. Vous n’avez pas besoin de coder la logique de planification et d’orchestration.

Orchestration des outils

Vous pouvez définir des outils personnalisés que l’agent IA appelle selon les besoins pendant son processus de raisonnement. Lorsque vous inscrivez un outil (par exemple lookupCustomer(id)), le modèle IA de l’agent peut déterminer quand l’appeler. Le SDK gère le câblage afin que l’IA puisse appeler votre outil de manière structurée par le biais d’un appel de fonction réel dans le runtime, plutôt que de deviner le code.

Dans .NET, les outils sont définis à l’aide AIFunctionFactory du Microsoft.Extensions.AI package. Chaque outil inclut un nom, une description, un schéma de paramètre et une fonction de gestionnaire.

Flexibilité multimodèle

Le Kit de développement logiciel (SDK) n’est pas lié à un modèle IA. Il prend en charge plusieurs modèles IA et autorise le routage dynamique des modèles. Par exemple, vous pouvez utiliser un modèle plus rapide pour des tâches simples et un modèle plus capable pour le raisonnement complexe, dans la même application.

Streaming en temps réel

Le Kit de développement logiciel (SDK) prend en charge la diffusion en continu des réponses, ce qui signifie que l’IA génère une sortie, vous pouvez la diffuser en continu vers votre application. Par exemple, vous pouvez diffuser en continu des jetons pour afficher un indicateur de saisie ou une réponse partielle dans une interface utilisateur de conversation. Ce comportement rend l’expérience plus interactive et plus réactive.

Authentification et sécurité

Le Kit de développement logiciel (SDK) prend en charge plusieurs méthodes d’authentification :

  • Utilisateur connecté à GitHub : réutilise les informations d’identification OAuth stockées à partir de la connexion Cli Copilot.
  • Application GitHub OAuth : transmet des jetons utilisateur à partir de votre application OAuth GitHub.
  • Variables d’environnement : utilise COPILOT_GITHUB_TOKEN, GH_TOKENou GITHUB_TOKEN.
  • Apportez votre propre clé (BYOK) : utilise vos propres clés API pour les fournisseurs tels qu’OpenAI, Azure AI Foundry ou Anthropic sans nécessiter d’authentification GitHub.

Un abonnement GitHub Copilot est requis, sauf si vous utilisez l’option BYOK.

Gestion du contexte

Le Kit de développement logiciel (SDK) gère automatiquement l’historique des conversations au sein d’une session. Il suit les messages et sorties d’outils précédents afin que le modèle IA ait le contexte dont il a besoin pour des interactions multitours cohérentes. Pour les sessions longues, le Kit de développement logiciel (SDK) fournit une fonctionnalité de sessions infinies qui compacte automatiquement le contexte lorsque la fenêtre de contexte approche de sa limite, prévenant ainsi les erreurs de débordement de jetons.

Concepts principaux

La compréhension des concepts fondamentaux du Kit de développement logiciel (SDK) vous aide à travailler efficacement.

Client

La CopilotClient classe gère la connexion au serveur CLI Copilot. Vous créez une instance cliente pour votre application et utilisez-la pour créer des sessions. Le client gère le démarrage et l’arrêt du processus CLI, l’établissement du canal de communication et la gestion des cycles de vie de session.

Les options de configuration incluent AutoStart (démarre automatiquement le serveur CLI lors de la création de la première session), LogLevel (contrôle le détail de journalisation), CliPath (spécifie un chemin personnalisé vers l’exécutable CLI) et GithubToken (fournit un jeton GitHub directement au lieu de compter sur des variables d’environnement ou une connexion CLI).

Session

Une CopilotSession représente un contexte de conversation ou de tâche unique. Chaque session possède son propre historique de conversation, sa configuration de modèle, ses définitions d’outils et son invite système. Vous créez des sessions à partir du client, à l'aide de CreateSessionAsync, envoyez des messages et recevez des réponses par le biais d’un modèle piloté par les événements.

Les options de configuration de session clé sont les suivantes :

  • Modèle : modèle IA à utiliser (par exemple, gpt-4.1).
  • SystemMessage : définit le rôle et le comportement de l’agent à travers un objet SystemMessageConfig avec un Mode (Append ou Replace) et une chaîne Content.
  • Outils : définitions d’outils personnalisées que l’agent peut appeler.
  • InfiniteSessions : contrôle le compactage automatique du contexte par le biais d’un InfiniteSessionConfig objet. Lorsque cette option est activée, vous pouvez configurer BackgroundCompactionThreshold (pourcentage d’utilisation de la fenêtre de contexte qui déclenche le compactage en arrière-plan) et BufferExhaustionThreshold (pourcentage auquel le SDK force le compactage pour empêcher le dépassement de jeton).

Tools

Les outils sont des fonctions que vous inscrivez auprès d’une session afin que l’agent IA puisse les appeler pendant le raisonnement. Chaque outil a un nom, une description, des paramètres et une fonction de gestionnaire. Lorsque le modèle IA décide d’utiliser un outil, le Kit de développement logiciel (SDK) intercepte la requête, appelle votre gestionnaire et alimente le résultat vers le modèle pour un raisonnement plus approfondi.

Dans .NET, vous définissez des outils AIFunctionFactory.Create partir de 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.")

Événements

Le Kit de développement logiciel (SDK) utilise un modèle de communication piloté par les événements. Lorsque vous envoyez un message à une session, le Kit de développement logiciel (SDK) déclenche des événements au fur et à mesure que le traitement se produit :

  • AssistantMessageEvent : le modèle IA a produit une réponse complète.
  • AssistantMessageDeltaEvent : Le modèle IA a produit un jeton de réponse partiel pendant la diffusion en continu. La Data.DeltaContent propriété contient le texte incrémentiel, que vous pouvez afficher en temps réel.
  • SessionIdleEvent : la session a terminé le traitement (y compris les appels d’outils).
  • SessionErrorEvent : une erreur s’est produite pendant le traitement.
  • ToolExecutionStartEvent et ToolExecutionCompleteEvent : un outil a été appelé.

Vous vous abonnez à ces événements pour capturer les réponses de l’agent et gérer les erreurs. Pour les scénarios de non-diffusion, utilisez cette option AssistantMessageEvent pour collecter la réponse complète. Pour les scénarios de streaming (comme l’affichage d’un indicateur de saisie dans une interface utilisateur de conversation), utilisez AssistantMessageDeltaEvent pour afficher les jetons à mesure qu’ils arrivent.

Hooks de session

Le Kit de développement logiciel (SDK) fournit des hooks qui vous permettent d’intercepter et de modifier le comportement de l’agent aux points clés :

  • OnPreToolUse : Intercepter les appels d’outils avant l’exécution. Votre gestionnaire retourne une PermissionDecision valeur :Allow pour continuer, Deny bloquer l’appel ou Ask inviter l’utilisateur à confirmer.
  • OnPostToolUse : Traiter les résultats de l’outil après l’exécution, utiles pour la journalisation ou la modification des résultats avant d’atteindre le modèle.
  • OnUserPromptSubmitted : Intercepter et modifier les requêtes de l'utilisateur avant le traitement.
  • OnErrorOccurred : Gérez les erreurs en retournant une valeur ,ErrorHandling pour réessayer d’effectuer une Retry tentative d’opération, Skip pour continuer sans le résultat ou Abort pour arrêter le traitement.
  • OnSessionStart : s’exécute lorsqu’une session commence, utile pour les tâches d’initialisation.
  • OnSessionEnd : s’exécute lorsqu’une session se termine, utile pour le nettoyage ou la journalisation.

Ces hooks vous permettent d’implémenter des contrôles d’autorisation, la journalisation et les garde-fous de sécurité.

Conditions préalables pour le développement .NET

Pour utiliser le Kit de développement logiciel (SDK) GitHub Copilot dans une application .NET, votre environnement a besoin des éléments suivants :

  • .NET 8.0 ou version ultérieure.
  • L’interface CLI de GitHub Copilot, installée et disponible dans votre PATH système.
  • Un compte GitHub avec un abonnement Copilot actif (ou vos propres clés API pour BYOK).
  • Paquet GitHub.Copilot.SDK NuGet.
  • Package NuGet Microsoft.Extensions.AI (pour définir des outils à l’aide de AIFunctionFactory).

Résumé

Le Kit de développement logiciel (SDK) GitHub Copilot fournit une plateforme puissante et prête pour la production pour la création d’agents IA dans vos applications. En faisant abstraction de la complexité de l’orchestration de l’agent, de l’intégration des outils et de la gestion du contexte, le SDK vous permet de vous concentrer sur la définition des fonctionnalités et de la logique métier de votre agent. Avec la prise en charge de plusieurs langages, de la diffusion en continu en temps réel et des options d’authentification flexibles, le Kit de développement logiciel (SDK) GitHub Copilot est un choix polyvalent pour ajouter des fonctionnalités d’agent IA à un large éventail d’applications.