Partilhar via


Orquestração semântica do Kernel Agent

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.

Próximos passos