GitHub Copilot SDK достиг GA: встройте среду выполнения агента Copilot в собственные приложения на C#
На Build 2026 GitHub выпустил Copilot SDK 1.0 GA с полноценным пакетом для .NET. Теперь из кода на C# можно управлять той же средой выполнения агента с планированием, вызовом инструментов и многоходовыми сессиями, включая BYOK.
GitHub объявил, что GitHub Copilot SDK достиг общей доступности 2 июня 2026 года на Build, и часть, заслуживающая вашего внимания как разработчика .NET, — это пакет GitHub.Copilot.SDK. Он даёт прямой программный доступ к той же среде выполнения агента, что стоит за Copilot в редакторе: планирование, вызов инструментов, редактирование файлов, стриминг и многоходовые сессии. Главный аргумент в том, что вам не нужно самостоятельно строить слой оркестрации. Среда выполнения, которая уже обрабатывает миллионы ходов агента в день, теперь является зависимостью NuGet.
Что вы на самом деле получаете
SDK вышел в шести языках на момент GA (@github/copilot-sdk, github-copilot-sdk для Python, Go, Rust, Java и GitHub.Copilot.SDK для .NET). Для Node.js, Python и .NET CLI Copilot подключается автоматически как транзитивная зависимость, поэтому нет отдельного бинарника, который нужно устанавливать или держать в PATH. Вы добавляете один пакет и получаете хост агента:
dotnet add package GitHub.Copilot.SDK
Сессия — это единица работы. Вы запускаете клиент, открываете сессию к модели и слушаете типизированные события вместо опроса. Вот полный цикл для одного промпта:
using GitHub.Copilot;
await using var client = new CopilotClient();
await client.StartAsync();
await using var session = await client.CreateSessionAsync(new SessionConfig
{
Model = "gpt-5",
OnPermissionRequest = PermissionHandler.ApproveAll,
});
var done = new TaskCompletionSource();
session.On<SessionEvent>(evt =>
{
if (evt is AssistantMessageEvent msg)
Console.WriteLine(msg.Data.Content);
else if (evt is SessionIdleEvent)
done.SetResult();
});
await session.SendAsync(new MessageOptions { Prompt = "What is 2+2?" });
await done.Task;
Стриминг — это флаг, а не отдельный API: установите Streaming = true в SessionConfig, и вы будете получать фрагменты AssistantMessageDeltaEvent, которые накапливаете до финального AssistantMessageEvent.
Инструменты — это обычные методы, а MCP встроен
Элемент, который делает это чем-то большим, чем обёртка над чатом, — это пользовательские инструменты. CopilotTool.DefineTool принимает делегат и переиспользует фабрику функций Microsoft.Extensions.AI, так что инструмент — это просто типизированный метод C# с [Description] на каждом параметре:
using Microsoft.Extensions.AI;
using System.ComponentModel;
var session = await client.CreateSessionAsync(new SessionConfig
{
Model = "gpt-5",
Tools =
[
CopilotTool.DefineTool(
async ([Description("Issue ID")] string id) => await FetchIssueAsync(id),
factoryOptions: new AIFunctionFactoryOptions
{
Name = "lookup_issue",
Description = "Fetch issue details",
}),
],
});
Если вы уже создали собственный MCP-сервер на C#, агент может подключиться к нему напрямую, поэтому ваши существующие инструменты переходят вместе с вами без переписывания.
BYOK, чтобы не быть привязанным к биллингу GitHub
Аутентификация — это вторая причина присмотреться. По умолчанию SDK подхватывает ваш вход через CLI copilot или токены окружения (COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN). Но bring-your-own-key работает с OpenAI, Microsoft Foundry, Anthropic и другими провайдерами, поэтому вы можете направить среду выполнения на модель, за которую уже платите:
var session = await client.CreateSessionAsync(new SessionConfig
{
Provider = new ProviderConfig
{
Type = "openai",
BaseUrl = "https://api.openai.com/v1",
ApiKey = "your-api-key",
},
});
Он также поставляется с трассировкой OpenTelemetry и распространением контекста трассировки W3C, так что вызовы инструментов и ходы агента появляются в тех же трассах, что и остальной ваш сервис. Для тех, кто писал цикл инструментов вручную поверх сырого чат-клиента, GA-пакет — это первый случай, когда собственную среду выполнения агента от GitHub можно подключить через dotnet add и отправить в продакшен. Cookbook для .NET и руководство по началу работы — следующее место, куда стоит заглянуть.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.