Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Agent Orchestratiefuncties in de Agent Framework bevinden zich in de experimentele fase. Ze zijn in actieve ontwikkeling en kunnen aanzienlijk veranderen voordat ze naar de preview- of releasekandidaatfase gaan.
Met het Agent Orchestration-framework van Semantic Kernel kunnen ontwikkelaars eenvoudig complexe agentwerkstromen bouwen, beheren en schalen.
Waarom indeling met meerdere agents?
Traditionele systemen met één agent zijn beperkt in hun vermogen om complexe, meervoudige taken te verwerken. Door meerdere agents te organiseren, elk met gespecialiseerde vaardigheden of rollen, kunnen we systemen maken die robuuster, adaptief zijn en in staat zijn om problemen in de echte wereld samen op te lossen. Indeling met meerdere agents in Semantic Kernel biedt een flexibele basis voor het bouwen van dergelijke systemen, die ondersteuning bieden voor verschillende coördinatiepatronen.
Orkestratiepatronen
Semantische Kernel ondersteunt verschillende orkestratiepatronen, waarvan elk is ontworpen voor verschillende samenwerkingsscenario's. Deze patronen zijn beschikbaar als onderdeel van het framework en kunnen eenvoudig worden uitgebreid of aangepast.
Ondersteunde orkestratiepatronen
Patroon | Beschrijving | Typisch gebruiksgeval |
---|---|---|
Simultaan | Hiermee wordt een taak naar alle agents uitgezonden en worden resultaten onafhankelijk verzameld. | Parallelle analyse, onafhankelijke subtaken, ensemble besluitvorming. |
Sequentieel | Hiermee wordt het resultaat van de ene agent doorgegeven aan de volgende in een gedefinieerde volgorde. | Stapsgewijze werkstromen, pijplijnen, verwerking met meerdere fasen. |
handoff- | Hiermee wordt de controle tussen agents dynamisch doorgegeven op basis van context of regels. | Dynamische werkstromen, escalatie, alternatief of deskundige overdrachtscenario's. |
groepschat | Alle agenten nemen deel aan een groepsgesprek, gecoördineerd door een groepsbeheerder. | Brainstormen, samenwerkende problemen oplossen, consensus bouwen. |
Magentic | Groepschatachtige orchestratie geïnspireerd door MagenticOne. | Complexe, generalistische samenwerking met meerdere agents. |
Eenvoud en ontwikkelaarsvriendelijk
Alle orchestratiepatronen delen een uniforme interface voor constructie en aanroepen. Ongeacht welke orkestratie u kiest, u:
- Definieer uw agents en hun mogelijkheden. Zie Semantische kernelagents.
- Maak een orchestratie door de agents (en, indien nodig, een manager) door te geven.
- U kunt eventueel callbacks of transformaties opgeven voor aangepaste invoer-/uitvoerafhandeling.
- Start een runtime en roep de orkestratie aan met een taak.
- Wacht op een consistente, asynchrone manier op het resultaat.
Deze geïntegreerde benadering betekent dat u eenvoudig kunt schakelen tussen indelingspatronen, zonder dat u nieuwe API's hoeft te leren of uw agentlogica opnieuw kunt schrijven. Het framework abstraheert de complexiteit van agentcommunicatie, coördinatie en resultaataggregatie, zodat u zich kunt richten op de doelstellingen van uw toepassing.
// 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()
Opmerking
Agentindeling is nog niet beschikbaar in Java SDK.
Uw ontwikkelomgeving voorbereiden
Voeg de volgende pakketten toe aan uw project voordat u verdergaat:
dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease
Afhankelijk van de agenttypen die u gebruikt, moet u mogelijk ook de respectieve pakketten voor de agents toevoegen. Raadpleeg het overzicht van agents voor meer informatie.