Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Функции оркестрации агентов во фреймворке агентов находятся на стадии эксперимента. Они находятся в активной разработке и могут значительно измениться до перехода к стадии предварительной версии или кандидата на выпуск.
Среда оркестрации агентов 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
В зависимости от используемых типов агентов также может потребоваться добавить соответствующие пакеты для агентов. Дополнительные сведения см. в обзоре агентов .