Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Os recursos de Orquestração de Agente no Agent Framework estão em estágio experimental. Eles estão em desenvolvimento ativo e podem mudar significativamente antes de avançar para o estágio de prévia ou release candidate.
A estrutura de orquestração de agentes do Kernel Semântico permite que os desenvolvedores criem, gerenciem e dimensionem facilmente fluxos de trabalho complexos de agentes.
Por que orquestração de vários agentes?
Os sistemas tradicionais de agente único são limitados em sua capacidade de lidar com tarefas complexas e multifacetadas. Ao orquestrar vários agentes, cada um com habilidades ou funções especializadas, podemos criar sistemas mais robustos, adaptáveis e capazes de resolver problemas do mundo real de forma colaborativa. A orquestração de vários agentes no Kernel Semântico fornece uma base flexível para a criação desses sistemas, dando suporte a uma variedade de padrões de coordenação.
Padrões de orquestração
Como padrões conhecidos de design de nuvem, os padrões de orquestração de agente são abordagens independentes de tecnologia para coordenar vários agentes para trabalhar em conjunto em direção a um objetivo comum. Para saber mais sobre os próprios padrões, consulte a documentação de padrões de orquestração do agente de IA .
Padrões de orquestração com suporte no kernel semântico
O Kernel Semântico dá suporte a você implementando esses padrões de orquestração diretamente no SDK. Esses padrões estão disponíveis como parte da estrutura e podem ser facilmente estendidos ou personalizados para que você possa ajustar o cenário de colaboração do agente.
| Padrão | Descrição | Caso de uso típico |
|---|---|---|
| Simultâneo | Transmite uma tarefa para todos os agentes, coleta resultados de forma independente. | Análise paralela, subtarefas independentes, tomada de decisão de conjunto. |
| Sequencial | Passa o resultado de um agente para o próximo em uma ordem definida. | Fluxos de trabalho passo a passo, fluxos contínuos, processamento multiestágio. |
| de Entrega | Passa dinamicamente o controle entre agentes com base no contexto ou nas regras. | Fluxos de trabalho dinâmicos, escalonamento, fallback ou cenários de entrega de especialistas. |
| Chat de Grupo | Todos os agentes participam de uma conversa em grupo, coordenada por um gerente de grupo. | Brainstorming, resolução de problemas colaborativos, construção de consenso. |
| Magêntico | Orquestração semelhante a chat em grupo, inspirada por MagenticOne. | Colaboração complexa e generalista de vários agentes. |
Simplicidade e facilidade para desenvolvedores
Todos os padrões de orquestração compartilham uma interface unificada para construção e invocação. Não importa qual orquestração você escolher, você:
- Defina seus agentes e suas funcionalidades, consulte Os Agentes de Kernel Semântico.
- Crie uma orquestração passando os agentes (e, se necessário, um gerente).
- Opcionalmente, forneça funções de retorno ou transformações para manipulação personalizada de entrada/saída.
- Inicie um ambiente de execução e chame a orquestração com uma tarefa.
- Aguarde o resultado de maneira consistente e assíncrona.
Essa abordagem unificada significa que você pode alternar facilmente entre padrões de orquestração, sem aprender novas APIs ou reescrever a lógica do agente. A estrutura abstrai a complexidade da comunicação, coordenação e agregação de resultados do agente, permitindo que você se concentre nas metas do aplicativo.
// 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()
Observação
A orquestração do agente ainda não está disponível no SDK do Java.
Preparando seu ambiente de desenvolvimento
Adicione os seguintes pacotes ao seu projeto antes de continuar:
dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease
Dependendo dos tipos de agente que você usa, talvez você também precise adicionar os respectivos pacotes para os agentes. Consulte a Visão Geral dos Agentes para obter mais detalhes.