Поделиться через


Оркестрация семантического ядра агента

Это важно

Функции оркестрации агентов во фреймворке агентов находятся на стадии эксперимента. Они находятся в активной разработке и могут значительно измениться до перехода к стадии предварительной версии или кандидата на выпуск.

Среда оркестрации агентов Semantic Kernel позволяет разработчикам легко создавать, управлять и масштабировать сложные рабочие процессы агентов.

Почему оркестрация множества агентов?

Традиционные системы с одним агентом ограничены в их способности обрабатывать сложные многофакторные задачи. Оркестрируя несколько агентов, каждый из которых имеет специализированные навыки или роли, мы можем создавать системы, которые являются более надежными, адаптивными и способными решать реальные проблемы совместно. Оркестрация с несколькими агентами в семантическом ядре обеспечивает гибкую основу для создания таких систем, поддерживая различные шаблоны координации.

Шаблоны оркестрации

Как и известные шаблоны облачного проектирования, шаблоны оркестрации агентов — это независимые от технологии подходы к координации нескольких агентов для достижения общей цели. Чтобы узнать больше о самих шаблонах, обратитесь к документации по оркестрации агента ИИ.

Поддерживаемые шаблоны оркестрации в семантическом ядре

Семантическое ядро поддерживает вас, реализуя эти шаблоны оркестрации непосредственно в SDK. Эти шаблоны доступны как часть платформы и могут быть легко расширены или настроены, чтобы настроить сценарий совместной работы агента.

Рисунок Описание Типичный вариант использования
Одновременный Передает задачу всем агентам, собирает результаты независимо. Параллельный анализ, независимые подзадачи, принятие решений ансамбля.
Последовательный Передает результат от одного агента к следующему в определенном порядке. Пошаговые рабочие процессы, конвейеры, многоэтапная обработка.
Передача Динамически передает управление между агентами на основе контекста или правил. Динамические рабочие процессы, эскалация, резервные варианты или сценарии передачи эксперту.
групповой чат Все агенты участвуют в групповой беседе, координируемой менеджером группы. Мозговой штурм, совместная решение проблем, создание консенсуса.
Magentic Оркестрация, напоминающая групповую переписку и вдохновленная MagenticOne. Сложная, обобщенная совместная работа с несколькими агентами.

Простота и удобство разработки

Все шаблоны оркестрации совместно используют единый интерфейс для создания и вызова. Независимо от выбранной оркестрации, вы:

  • Определите агенты и их возможности, см. раздел "Агенты семантического ядра".
  • Создайте оркестрацию, передав агентов (и, если нужно, руководителя).
  • При необходимости предоставляют обратные вызовы или преобразования для пользовательской обработки входных и выходных данных.
  • Запустите среду выполнения и вызовите оркестрацию с помощью задачи.
  • Ожидайте результат в согласованном асинхронном режиме.

Этот унифицированный подход означает, что вы можете легко переключаться между шаблонами оркестрации, не изучая новые API или перезаписи логики агента. Платформа абстрагирует сложность взаимодействия агентов, координации и агрегирования результатов, позволяя сосредоточиться на целях приложения.

// Choose an orchestration pattern with your agents
SequentialOrchestration orchestration = new(agentA, agentB)
{
    LoggerFactory = this.LoggerFactory
};  // or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...

// Start the runtime
InProcessRuntime runtime = new();
await runtime.StartAsync();

// Invoke the orchestration and get the result
OrchestrationResult<string> result = await orchestration.InvokeAsync(task, runtime);
string text = await result.GetValueAsync();

await runtime.RunUntilIdleAsync();
# Choose an orchestration pattern with your agents
orchestration = SequentialOrchestration(members=[agent_a, agent_b])
# or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...

# Start the runtime
runtime = InProcessRuntime()
runtime.start()

# Invoke the orchestration
result = await orchestration.invoke(task="Your task here", runtime=runtime)

# Get the result
final_output = await result.get()

await runtime.stop_when_idle()

Замечание

Оркестрация агентов пока недоступна в пакете SDK для Java.

Подготовка среды разработки

Перед продолжением добавьте в проект следующие пакеты:

dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease

В зависимости от используемых типов агентов также может потребоваться добавить соответствующие пакеты для агентов. Дополнительные сведения см. в обзоре агентов .

Дальнейшие шаги