Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Le funzionalità di orchestrazione dell'agente in Agent Framework si trovano nella fase sperimentale. Sono in fase di sviluppo attivo e possono cambiare significativamente prima di passare alla fase di anteprima o candidato al rilascio.
Il framework di orchestrazione agente del kernel semantico consente agli sviluppatori di creare, gestire e ridimensionare flussi di lavoro complessi degli agenti con facilità.
Perché orchestrazione multi-agente?
I sistemi a agente unico tradizionali sono limitati nella loro capacità di gestire compiti complessi e multifaccette. Orchestrando più agenti, ognuno con competenze o ruoli specializzati, è possibile creare sistemi più affidabili, adattivi e in grado di risolvere in modo collaborativo i problemi reali. L'orchestrazione multi-agente nel kernel semantico offre una base flessibile per la creazione di tali sistemi, supportando un'ampia gamma di modelli di coordinamento.
Modelli di orchestrazione
Il kernel semantico supporta diversi modelli di orchestrazione, ognuno progettato per diversi scenari di collaborazione. Questi modelli sono disponibili come parte del framework e possono essere facilmente estesi o personalizzati.
Modelli di orchestrazione supportati
Modello | Descrizione | Caso d'uso tipico |
---|---|---|
Concorrente | Trasmette un'attività a tutti gli agenti, raccoglie i risultati in modo indipendente. | Analisi parallela, sottoattività indipendenti, processo decisionale dell'insieme. |
Sequenziale | Passa il risultato da un agente al successivo in un ordine definito. | Flussi di lavoro passo-passo, canali, elaborazione a più fasi. |
handoff | Passa dinamicamente il controllo tra gli agenti in base al contesto o alle regole. | Flussi di lavoro dinamici, escalation, fallback o scenari di passaggio esperti. |
Chat di Gruppo | Tutti gli agenti partecipano a una conversazione di gruppo, coordinata da un responsabile del gruppo. | Brainstorming, risoluzione collaborativa dei problemi, costruzione del consenso. |
Magentic | Orchestrazione di chat di gruppo ispirata a MagenticOne. | Collaborazione multi-agente generale complessa. |
Semplicità e facilità d'uso per gli sviluppatori
Tutti i modelli di orchestrazione condividono un'interfaccia unificata per la costruzione e la chiamata. Indipendentemente dall'orchestrazione scelta, è possibile:
- Definire gli agenti e le relative funzionalità, vedere Gli agenti del kernel semantico.
- Creare un'orchestrazione passando gli agenti (e, se necessario, un manager).
- Facoltativamente, fornire callback o trasformazioni per la gestione di input/output personalizzata.
- Avviare un runtime e richiamare l'orchestrazione con un'attività.
- Attendere il risultato in modo coerente e asincrono.
Questo approccio unificato significa che è possibile passare facilmente tra modelli di orchestrazione, senza apprendere nuove API o riscrivere la logica dell'agente. Il framework astrae la complessità della comunicazione, del coordinamento e dell'aggregazione dei risultati dell'agente, consentendo di concentrarsi sugli obiettivi dell'applicazione.
// 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()
Annotazioni
L'orchestrazione dell'agente non è ancora disponibile in Java SDK.
Preparazione dell'ambiente di sviluppo
Prima di procedere, aggiungere i pacchetti seguenti al progetto:
dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease
A seconda dei tipi di agente usati, potrebbe anche essere necessario aggiungere i rispettivi pacchetti per gli agenti. Per altri dettagli, vedere Panoramica degli agenti .