Skip to main content

Интеграция Microsoft Agent Framework

Используйте Copilot SDK в качестве поставщика агентов внутри Microsoft Agent Framework для создания и координации многоагентных рабочих процессов вместе с другими провайдерами ИИ.

Кто может использовать эту функцию?

GitHub Copilot SDK Доступна со всеми Copilot тарифными планами.

Примечание.

          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струнаСистемный запрос для агента
ToolsAIFunction[] или списокПользовательские функциональные инструменты, доступные агенту
StreamingboolВключить потоковые ответы
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/)