Примечание.
Copilot SDK в настоящее время находится в public preview. Функциональность и доступность могут меняться.
Используйте Copilot SDK его в качестве поставщика агентов внутри Microsoft Agent Framework (MAF) для создания многоагентных рабочих процессов вместе с Azure OpenAI, Anthropic и другими провайдерами.
Обзор
Microsoft Agent Framework является унифицированным преемником Semantic Kernel и AutoGen. Он предоставляет стандартный интерфейс для создания, оркестрации и развертывания агентов ИИ. Специализированные интеграционные пакеты позволяют обернуть Copilot SDK клиент как первоклассный MAF-агент — взаимозаменяемый с любым другим поставщиком агентов в фреймворке.
| Концепция | Описание |
|---|---|
| Microsoft Agent Framework | Открытый фреймворк для оркестрации с одним и несколькими агентами в .NET и Python |
| Поставщик агентов | Бэкенд, который питает агента (Copilot, Azure OpenAI, Anthropic и др.) |
| Orchestrator | Компонент MAF, координирующий агентов в последовательных, одновременных или передачных рабочих процессах |
| Протокол A2A | Стандарт коммуникации между агентами, поддерживаемый фреймворком |
Примечание.
Пакеты интеграции MAF доступны для .NET и Python. Для TypeScript и Go используйте Copilot SDK напрямую — стандартные SDK API обеспечивают вызов инструментов, потоковую передачу и пользовательские агенты.
Необходимые условия
Перед началом работы убедитесь, что у вас есть следующие ресурсы:
- Рабочая Copilot SDK установка на выбранном вами языке. См . раздел AUTOTITLE.
-
GitHub Copilot Подписка (частная, бизнес-или корпоративная). -
Copilot CLI установлен или доступен через комплектный CLI SDK.
Installation
Установите Copilot SDK вместе с пакетом интеграции MAF:
dotnet add package GitHub.Copilot.SDK
dotnet add package Microsoft.Agents.AI.GitHub.Copilot --prerelease
Примеры на Python см. microsoft-agent-framework статью в github/copilot-sdk репозитории.
Основное использование
Оберните Copilot SDK клиента как агента MAF с одним вызовом метода. Полученный агент соответствует стандартному интерфейсу фреймворка и может использоваться в любом месте, где ожидается 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);
Примеры на Python см. microsoft-agent-framework статью в github/copilot-sdk репозитории.
Добавление пользовательских инструментов
Расширяйте своего Copilot агента с помощью инструментов для пользовательских функций. Инструменты, определённые через стандарт Copilot SDK , автоматически доступны при работе агента внутри 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);
Вы также можете использовать Copilot SDKнативное определение инструмента наряду с 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?" });
Предупреждение
Настройка onPermissionRequest «всегда возвращать { kind: "approved" } » позволяет быстро делать инъекции без одобрения. Для производственного использования реализуйте одобрение на основе политик, которое оценивает запрошенный инструмент и его параметры перед выдачей разрешения.
Примеры на Python см. microsoft-agent-framework статью в github/copilot-sdk репозитории.
Рабочие процессы с несколькими агентами
Основное преимущество интеграции MAF — это совместная работа Copilot с другими поставщиками агентов в организованных рабочих процессах. Используйте встроенные оркестраторы фреймворка для создания конвейеров, где разные агенты выполняют разные этапы.
Последовательный рабочий процесс
Запускайте агенты один за другим, передавая выходные данные от одного к другому:
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);
Примеры на Python см. microsoft-agent-framework статью в github/copilot-sdk репозитории.
Параллельный рабочий процесс
Запускайте несколько агентов параллельно и агрегируйте их результаты:
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);
Потоковая передача ответов
При создании интерактивных приложений отклики агентов подают для отображения выхода в реальном времени. Интеграция MAF сохраняет Copilot SDKвозможности стриминга.
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();
Вы также можете стримить напрямую через Copilot SDK MAF без 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" });
Примеры на Python см. microsoft-agent-framework статью в github/copilot-sdk репозитории.
Справочник по конфигурации
Опции агентов MAF
| Недвижимость | Тип | Описание |
|---|---|---|
Instructions | струна | Системный запрос для агента |
Tools | AIFunction[] или список | Пользовательские функциональные инструменты, доступные агенту |
Streaming | bool | Включить потоковые ответы |
Model | струна | Переопределить модель по умолчанию |
Опции SDK Copilot (прошёл)
Все стандартные SessionConfig опции доступны при создании базового Copilot клиента. Обёртка MAF делегирует SDK под капотом.
| Функция SDK | Поддержка MAF |
|---|---|
Кастомные инструменты (DefineTool и AIFunctionFactory) | Объединение с инструментами MAF |
| Серверы MCP | Настроено на клиенте SDK |
| Таможенные агенты и субагенты | Доступно в агенте Copilot |
| Бесконечные сессии | Настроено на клиенте SDK |
| Выбор модели | Переопределённое для каждого агента или звонка |
| Стриминг | Полная поддержка событий дельта |
Лучшие практики
Выберите правильный уровень интеграции
Используйте MAF-оболочку, когда нужно сочинять Copilot с другими провайдерами в организованных рабочих процессах. Если ваше приложение использует Copilotтолько , отдельный SDK проще и даёт полный контроль:
// 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" });
Держите агентов в фокусе
При создании рабочих процессов с несколькими агентами дайте каждому агенту конкретную роль с чёткими инструкциями. Избегайте пересечения обязанностей:
// 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." },
];
Обработка ошибок на уровне оркестрации
Вызовы агентов wrap при обработке ошибок, особенно в рабочих процессах с несколькими агентами, где отказ одного агента не должен блокировать весь конвейер:
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
}
Дополнительные материалы
-
[AUTOTITLE](/copilot/how-tos/copilot-sdk/sdk-getting-started) -
[Документация по Microsoft Agent Framework](https://learn.microsoft.com/en-us/agent-framework/agents/providers/github-copilot) -
[Блог: Создайте AI-агентов с помощью GitHub Copilot SDK и Microsoft Agent Framework](https://devblogs.microsoft.com/semantic-kernel/build-ai-agents-with-github-copilot-sdk-and-microsoft-agent-framework/)