Nota:
SDK de Copilot actualmente está en versión preliminar pública. La funcionalidad y la disponibilidad están sujetas a cambios.
Use SDK de Copilot como proveedor de agentes dentro de Microsoft Agent Framework (MAF) para crear flujos de trabajo de varios agentes junto con Azure OpenAI, Antropic y otros proveedores.
Visión general
Microsoft Agent Framework es el sucesor unificado de Semantic Kernel y AutoGen. Proporciona una interfaz estándar para compilar, orquestar e implementar agentes de IA. Los paquetes de integración dedicados permiten encapsular un SDK de Copilot cliente como agente de MAF de primera clase, intercambiable con cualquier otro proveedor de agentes del marco.
| Concepto | Descripción |
|---|---|
| Microsoft Agent Framework | Marco de código abierto para la orquestación de un solo agente y multiagente en .NET y Python |
| Proveedor de agentes | Un back-end que impulsa a un agente (Copilot, Azure OpenAI, antrópico, etc.) |
| Orquestador | Un componente MAF que coordina los agentes en flujos de trabajo secuenciales, simultáneos o de entrega |
| Protocolo A2A | Estándar de comunicación de agente a agente compatible con el marco |
Nota:
Los paquetes de integración de MAF están disponibles para .NET y Python. Para TypeScript y Go, utilice SDK de Copilot directamente; las APIs estándar del SDK proporcionan llamadas a herramientas, streaming y agentes personalizados.
Prerrequisitos
Antes de comenzar, asegúrese de que tiene:
- Una configuración funcional SDK de Copilot en el idioma que prefiera. Consulte Introducción al SDK de Copilot.
- Una GitHub Copilot suscripción (individual, empresarial o corporativa).
-
CLI de Copilot instalado o disponible a través de la CLI incluida del SDK.
Instalación
Instale SDK de Copilot junto con el paquete de integración de MAF.
dotnet add package GitHub.Copilot.SDK
dotnet add package Microsoft.Agents.AI.GitHub.Copilot --prerelease
Para obtener ejemplos en Python, consulte el microsoft-agent-framework artículo del github/copilot-sdk repositorio.
Uso básico
Encapsula el SDK de Copilot cliente como agente de MAF con una sola llamada de método. El agente resultante se ajusta a la interfaz estándar del marco y se puede usar en cualquier lugar en el que se espera un agente de MAF.
using GitHub.Copilot.SDK;
using Microsoft.Agents.AI;
await using var copilotClient = new CopilotClient();
await copilotClient.StartAsync();
// Wrap as a MAF agent
AIAgent agent = copilotClient.AsAIAgent();
// Use the standard MAF interface
string response = await agent.RunAsync("Explain how dependency injection works in ASP.NET Core");
Console.WriteLine(response);
Para obtener ejemplos en Python, consulte el microsoft-agent-framework artículo del github/copilot-sdk repositorio.
Adición de herramientas personalizadas
Amplíe el Copilot agente con herramientas de funciones personalizadas. Las herramientas definidas a través del estándar SDK de Copilot están disponibles automáticamente cuando el agente se ejecuta dentro de MAF.
using GitHub.Copilot.SDK;
using Microsoft.Extensions.AI;
using Microsoft.Agents.AI;
// Define a custom tool
AIFunction weatherTool = AIFunctionFactory.Create(
(string location) => $"The weather in {location} is sunny with a high of 25°C.",
"GetWeather",
"Get the current weather for a given location."
);
await using var copilotClient = new CopilotClient();
await copilotClient.StartAsync();
// Create agent with tools
AIAgent agent = copilotClient.AsAIAgent(new AIAgentOptions
{
Tools = new[] { weatherTool },
});
string response = await agent.RunAsync("What's the weather like in Seattle?");
Console.WriteLine(response);
También puede usar la definición nativa de herramientas de SDK de Copilot junto con las herramientas de MAF.
import { CopilotClient, DefineTool } from "@github/copilot-sdk";
const getWeather = DefineTool({
name: "GetWeather",
description: "Get the current weather for a given location.",
parameters: { location: { type: "string", description: "City name" } },
execute: async ({ location }) => `The weather in ${location} is sunny, 25°C.`,
});
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-4.1",
tools: [getWeather],
onPermissionRequest: async () => ({ kind: "approved" }),
});
await session.sendAndWait({ prompt: "What's the weather like in Seattle?" });
Advertencia
Establecer onPermissionRequest para que siempre devuelva { kind: "approved" } podría permitir inyecciones de comandos sin aprobación. Para su uso en producción, implemente la aprobación basada en directivas que evalúe la herramienta solicitada y sus parámetros antes de conceder permiso.
Para obtener ejemplos en Python, consulte el microsoft-agent-framework artículo del github/copilot-sdk repositorio.
Flujos de trabajo de varios agentes
La principal ventaja de la integración de MAF es componer Copilot junto con otros proveedores de agentes en flujos de trabajo orquestados. Use los orquestadores integrados del marco para crear canalizaciones en las que diferentes agentes controlan los distintos pasos.
Flujo de trabajo secuencial
Ejecute agentes entre sí y pase la salida de una a la siguiente:
using GitHub.Copilot.SDK;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Orchestration;
await using var copilotClient = new CopilotClient();
await copilotClient.StartAsync();
// Copilot agent for code review
AIAgent reviewer = copilotClient.AsAIAgent(new AIAgentOptions
{
Instructions = "You review code for bugs, security issues, and best practices. Be thorough.",
});
// Azure OpenAI agent for generating documentation
AIAgent documentor = AIAgent.FromOpenAI(new OpenAIAgentOptions
{
Model = "gpt-4.1",
Instructions = "You write clear, concise documentation for code changes.",
});
// Compose in a sequential pipeline
var pipeline = new SequentialOrchestrator(new[] { reviewer, documentor });
string result = await pipeline.RunAsync(
"Review and document this pull request: added retry logic to the HTTP client"
);
Console.WriteLine(result);
Para obtener ejemplos en Python, consulte el microsoft-agent-framework artículo del github/copilot-sdk repositorio.
Flujo de trabajo simultáneo
Ejecute varios agentes en paralelo y agregue sus resultados:
using GitHub.Copilot.SDK;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Orchestration;
await using var copilotClient = new CopilotClient();
await copilotClient.StartAsync();
AIAgent securityReviewer = copilotClient.AsAIAgent(new AIAgentOptions
{
Instructions = "Focus exclusively on security vulnerabilities and risks.",
});
AIAgent performanceReviewer = copilotClient.AsAIAgent(new AIAgentOptions
{
Instructions = "Focus exclusively on performance bottlenecks and optimization opportunities.",
});
// Run both reviews concurrently
var concurrent = new ConcurrentOrchestrator(new[] { securityReviewer, performanceReviewer });
string combinedResult = await concurrent.RunAsync(
"Analyze this database query module for issues"
);
Console.WriteLine(combinedResult);
Respuestas de transmisión
Al compilar aplicaciones interactivas, transmita las respuestas del agente para mostrar la salida en tiempo real. La integración de MAF conserva las capacidades de streaming del SDK de Copilot.
using GitHub.Copilot.SDK;
using Microsoft.Agents.AI;
await using var copilotClient = new CopilotClient();
await copilotClient.StartAsync();
AIAgent agent = copilotClient.AsAIAgent(new AIAgentOptions
{
Streaming = true,
});
await foreach (var chunk in agent.RunStreamingAsync("Write a quicksort implementation in C#"))
{
Console.Write(chunk);
}
Console.WriteLine();
También puede transmitir directamente a través de SDK de Copilot sin MAF:
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-4.1",
streaming: true,
onPermissionRequest: async () => ({ kind: "approved" }),
});
session.on("assistant.message_delta", (event) => {
process.stdout.write(event.data.delta ?? "");
});
await session.sendAndWait({ prompt: "Write a quicksort implementation in TypeScript" });
Para obtener ejemplos en Python, consulte el microsoft-agent-framework artículo del github/copilot-sdk repositorio.
Referencia de configuración
Opciones del agente de MAF
| Propiedad | Tipo | Descripción |
|---|---|---|
Instructions | cuerda / cadena | Indicativo del sistema para el agente |
Tools | AIFunction[] o lista | Herramientas de funciones personalizadas disponibles para el agente |
Streaming | bool | Habilitación de respuestas de streaming |
Model | cuerda / cadena | Invalidación del modelo predeterminado |
Opciones del SDK de Copilot (pasadas directamente)
Todas las opciones estándar SessionConfig están disponibles al crear el cliente subyacente Copilot . El contenedor de MAF se delega en el SDK en segundo plano.
| Característica del SDK | Soporte para MAF |
|---|---|
Herramientas personalizadas (DefineTool y AIFunctionFactory) | Combinado con herramientas de MAF |
| Servidores MCP | Configurado en el cliente del SDK |
| Agentes a medida y subagentes | Disponible en el agente Copilot |
| Sesiones infinitas | Configurado en el cliente del SDK |
| Selección de modelos | Reemplazable por agente o por llamada |
| Transmisión en línea | Compatibilidad completa con eventos delta |
procedimientos recomendados
Elección del nivel correcto de integración
Utilice el envoltorio MAF cuando necesita componer Copilot con otros proveedores dentro de flujos de trabajo orquestados. Si la aplicación solo usa Copilot, el SDK independiente es más sencillo y le proporciona control total:
// Standalone SDK — full control, simpler setup
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-4.1",
onPermissionRequest: async () => ({ kind: "approved" }),
});
const response = await session.sendAndWait({ prompt: "Explain this code" });
Mantener los agentes centrados
Al compilar flujos de trabajo de varios agentes, asigne a cada agente un rol específico con instrucciones claras. Evite las responsabilidades superpuestas:
// Too vague — overlapping roles
const agents = [
{ instructions: "Help with code" },
{ instructions: "Assist with programming" },
];
// Focused — clear separation of concerns
const agents = [
{ instructions: "Review code for security vulnerabilities. Flag SQL injection, XSS, and auth issues." },
{ instructions: "Optimize code performance. Focus on algorithmic complexity and memory usage." },
];
Manejo de errores a nivel de orquestación
Envolver las llamadas de agentes en el manejo de errores, especialmente en los flujos de trabajo de varios agentes donde el fallo de un agente no debe bloquear toda la canalización.
try
{
string result = await pipeline.RunAsync("Analyze this module");
Console.WriteLine(result);
}
catch (AgentException ex)
{
Console.Error.WriteLine($"Agent {ex.AgentName} failed: {ex.Message}");
// Fall back to single-agent mode or retry
}
Lectura adicional
-
[AUTOTITLE](/copilot/how-tos/copilot-sdk/sdk-getting-started) -
[Documentación de Microsoft Agent Framework](https://learn.microsoft.com/en-us/agent-framework/agents/providers/github-copilot) -
[Blog: Compilación de agentes de IA con el SDK de GitHub Copilot y Microsoft Agent Framework](https://devblogs.microsoft.com/semantic-kernel/build-ai-agents-with-github-copilot-sdk-and-microsoft-agent-framework/)