GitHub Copilot SDK chega ao GA: incorpore o runtime de agente do Copilot nos seus próprios apps C#
No Build 2026 o GitHub lançou o Copilot SDK 1.0 GA com um pacote .NET de primeira classe. Agora você pode controlar a partir de código C# o mesmo runtime de agente com planejamento, chamadas de ferramentas e sessões multi-turno, BYOK incluído.
O GitHub anunciou que o GitHub Copilot SDK chegou à disponibilidade geral em 2 de junho de 2026 no Build, e a parte que merece sua atenção como desenvolvedor .NET é o pacote GitHub.Copilot.SDK. Ele dá acesso direto e programático ao mesmo runtime de agente que está por trás do Copilot no editor: planejamento, invocação de ferramentas, edição de arquivos, streaming e sessões multi-turno. O ponto de venda é que você não precisa construir a camada de orquestração sozinho. O runtime que já processa milhões de turnos de agente por dia agora é uma dependência do NuGet.
O que você realmente ganha
O SDK chegou em seis linguagens no GA (@github/copilot-sdk, github-copilot-sdk para Python, Go, Rust, Java e GitHub.Copilot.SDK para .NET). Para Node.js, Python e .NET a CLI do Copilot é incluída automaticamente como dependência transitiva, então não há um binário separado para instalar ou manter no PATH. Você adiciona um pacote e já tem um host de agente:
dotnet add package GitHub.Copilot.SDK
Uma sessão é a unidade de trabalho. Você inicia um cliente, abre uma sessão contra um modelo e escuta eventos tipados em vez de fazer polling. Aqui está o ciclo completo para um único prompt:
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;
O streaming é uma flag, não uma API diferente: defina Streaming = true no SessionConfig e você recebe fragmentos AssistantMessageDeltaEvent que acumula até o AssistantMessageEvent final.
Ferramentas são métodos comuns, e o MCP já vem integrado
A peça que torna isto mais do que um wrapper de chat são as ferramentas personalizadas. CopilotTool.DefineTool recebe um delegate e reaproveita a factory de funções do Microsoft.Extensions.AI, então uma ferramenta é apenas um método C# tipado com um [Description] em cada parâmetro:
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",
}),
],
});
Se você já construiu um servidor MCP personalizado em C#, o agente pode se conectar a ele diretamente, então suas ferramentas existentes vêm junto sem reescrita.
BYOK para não ficar preso à cobrança do GitHub
A autenticação é o outro motivo para olhar. De fábrica, o SDK pega seu login da CLI copilot ou os tokens de ambiente (COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN). Mas bring-your-own-key funciona com OpenAI, Microsoft Foundry, Anthropic e outros provedores, então você pode apontar o runtime para um modelo que já paga:
var session = await client.CreateSessionAsync(new SessionConfig
{
Provider = new ProviderConfig
{
Type = "openai",
BaseUrl = "https://api.openai.com/v1",
ApiKey = "your-api-key",
},
});
Ele também traz tracing OpenTelemetry com propagação de contexto de trace W3C, então as chamadas de ferramentas e os turnos do agente aparecem nos mesmos traces que o resto do seu serviço. Para quem vem escrevendo à mão um loop de ferramentas sobre um cliente de chat cru, o pacote GA é a primeira vez que o próprio runtime de agente do GitHub é algo que você pode fazer dotnet add e colocar em produção. O cookbook de .NET e o guia de introdução são o próximo lugar para onde ir.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.