Dela via


Orkestrering av semantisk kernelagent

Viktigt!

Agentorkestreringsfunktionerna i Agent Framework är i den experimentella fasen. De är under aktiv utveckling och kan ändras avsevärt innan de går vidare till förhandsversionen eller lanseringsfasen.

Med Semantic Kernels ramverk för agentorkestrering kan utvecklare enkelt skapa, hantera och skala komplexa agentarbetsflöden.

Varför orkestrering med flera agenter?

Traditionella system med en agent är begränsade i sin förmåga att hantera komplexa, mångfasetterade uppgifter. Genom att samordna flera agenter, var och en med specialiserade färdigheter eller roller, kan vi skapa system som är mer robusta, anpassningsbara och som kan lösa verkliga problem tillsammans. Orkestrering med flera agenter i semantisk kernel ger en flexibel grund för att skapa sådana system, med stöd för en mängd olika samordningsmönster.

Orkestreringsmönster

Liksom välkända mönster för molndesign är agentorkestreringsmönster teknikagnostiska metoder för att samordna flera agenter för att arbeta tillsammans mot ett gemensamt mål. Mer information om själva mönstren finns i dokumentationen om AI-agentorkestreringsmönster .

Orkestreringsmönster som stöds i semantisk kernel

Semantisk kernel stöder dig genom att implementera dessa orkestreringsmönster direkt i SDK. Dessa mönster är tillgängliga som en del av ramverket och kan enkelt utökas eller anpassas så att du kan justera ditt scenario för agentsamarbete.

Mönster Beskrivning Typiskt användningsfall
Samtidigt Sänder en uppgift till alla agenter, samlar in resultat oberoende av varandra. Parallell analys, oberoende underaktiviteter, ensemblebeslut.
Sekventiell Skickar resultatet från en agent till nästa i en definierad ordning. Stegvisa arbetsflöden, pipelines, bearbetning i flera steg.
Skickar dynamiskt kontroll mellan agenter baserat på kontext eller regler. Dynamiska arbetsflöden, eskalering, återgång eller experthanteringsscenarier.
Gruppchatt Alla agenter deltar i en gruppkonversation som samordnas av en gruppchef. Brainstorming, samarbetsproblemlösning, konsensusskapande.
Magentic Gruppchattliknande orkestrering inspirerad av MagenticOne. Komplext, generalistiskt samarbete med flera agenter.

Enkelhet och utvecklarvänlig

Alla orkestreringsmönster delar ett enhetligt gränssnitt för konstruktion och anrop. Oavsett vilken orkestrering du väljer:

  • Definiera dina agenter och deras funktioner, se Semantiska Kernel-agenter.
  • Skapa en orkestrering genom att skicka agenterna (och vid behov en chef).
  • Du kan också ange återanrop eller transformeringar för anpassad hantering av in- och utdata.
  • Starta en körning och anropa orkestreringen med en uppgift.
  • Invänta resultatet på ett konsekvent, asynkront sätt.

Den här enhetliga metoden innebär att du enkelt kan växla mellan orkestreringsmönster, utan att lära dig nya API:er eller skriva om agentlogiken. Ramverket abstraherar bort komplexiteten i agentkommunikation, samordning och resultataggregering, så att du kan fokusera på programmets mål.

// 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()

Anmärkning

Agentorkestrering är ännu inte tillgängligt i Java SDK.

Förbereda din utvecklingsmiljö

Lägg till följande paket i projektet innan du fortsätter:

dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease

Beroende på vilka agenttyper du använder kan du också behöva lägga till respektive paket för agenterna. Mer information finns i Översikt över agenter .

Nästa steg