Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Os recursos de orquestração de agentes 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 versão candidata.
A estrutura Agent Orchestration do Semantic Kernel permite que os desenvolvedores criem, gerenciem e dimensionem fluxos de trabalho complexos de agentes com facilidade.
Porquê a orquestração multiagente?
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 multiagente no Kernel Semântico fornece uma base flexível para a construção de tais sistemas, suportando uma variedade de padrões de coordenação.
Padrões de orquestração
Como padrões de design de nuvem bem conhecidos, os padrões de orquestração de agentes são abordagens agnósticas de tecnologia para coordenar vários agentes para trabalhar juntos 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 de agentes de IA .
Padrões de orquestração suportados no kernel semântico
O Kernel Semântico oferece suporte 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 |
|---|---|---|
| Concomitante | Transmite uma tarefa para todos os agentes, coleta resultados de forma independente. | Análise paralela, subtarefas independentes, tomada de decisão conjunta. |
| Sequencial | Passa o resultado de um agente para o próximo em uma ordem definida. | Fluxos de trabalho passo a passo, fluxos de dados, processamento em múltiplas etapas. |
| Transferência | Passa dinamicamente o controle entre os agentes com base no contexto ou nas regras. | Fluxos de trabalho dinâmicos, escalonamento, fallback ou cenários de transferência de especialistas. |
| Grupo de Chat | Todos os agentes participam de uma conversa em grupo, coordenada por um gerente de grupo. | Brainstorming, resolução colaborativa de problemas, construção de consensos. |
| Magentic | Orquestração tipo chat em grupo inspirada no MagenticOne. | Colaboração multiagente complexa e generalista. |
Simplicidade e fácil 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ê escolha, você:
- Defina seus agentes e seus recursos, consulte Semantic Kernel Agents.
- Crie uma orquestração passando os agentes (e, se necessário, um gerente).
- Forneça, opcionalmente, funções de retorno ou transformações para um manuseio personalizado de entrada e saída.
- Inicie um ambiente de execução e invoque a orquestração com uma tarefa.
- Aguarde o resultado de forma 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 nos objetivos do seu 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 de agentes ainda não está disponível no Java SDK.
Preparando seu ambiente de desenvolvimento
Adicione os seguintes pacotes ao seu projeto antes de prosseguir:
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, você também pode precisar adicionar os respetivos pacotes para os agentes. Consulte a Visão geral dos agentes para obter mais detalhes.