Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Funkcje orkiestracji agenta w ramach struktury agenta znajdują się w fazie eksperymentalnej. Są one aktywnie opracowywane i mogą ulec znacznej zmianie przed przejściem do etapu wersji zapoznawczej lub wersji kandydującej do wydania.
Struktura orkiestracji agentów jądra semantycznego umożliwia deweloperom łatwe tworzenie i skalowanie złożonych przepływów pracy agentów oraz zarządzanie nimi.
Dlaczego orkiestracja systemów wieloagentowych?
Tradycyjne systemy pojedynczego agenta są ograniczone do obsługi złożonych, wielospektowych zadań. Organizując wielu agentów, z których każdy ma wyspecjalizowane umiejętności lub role, możemy tworzyć systemy, które są bardziej niezawodne, adaptacyjne i zdolne do wspólnego rozwiązywania rzeczywistych problemów. Orkiestracja wielu agentów w jądrze semantycznym zapewnia elastyczne podstawy do tworzenia takich systemów, obsługując różne wzorce koordynacji.
Wzorce orkiestracji
Semantyczne jądro obsługuje kilka wzorców aranżacji, z których każda jest przeznaczona dla różnych scenariuszy współpracy. Te wzorce są dostępne w ramach struktury i można je łatwo rozszerzyć lub dostosować.
Obsługiwane wzorce orkiestracji
Wzór | Opis | Typowy przypadek użycia |
---|---|---|
Równoczesny | Emituje zadanie do wszystkich agentów, zbiera wyniki niezależnie. | Analiza równoległa, niezależne podzadania, podejmowanie decyzji zespołowych. |
sekwencyjne | Przekazuje wynik z jednego agenta do następnego w zdefiniowanej kolejności. | Przepływy pracy z instrukcjami krok po kroku, procesy potokowe, przetwarzanie wieloetapowe. |
handoff | Dynamicznie przekazuje kontrolę między agentami na podstawie kontekstu lub reguł. | Scenariusze dynamicznych przepływów pracy, obejmujące eskalację, rozwiązania rezerwowe lub przekazywanie zadań do ekspertów. |
Czat grupowy | Wszyscy agenci uczestniczą w konwersacji grupowej, koordynowanej przez menedżera grupy. | Burza mózgów, wspólne rozwiązywanie problemów, budowanie konsensusu. |
Magentic | Orkiestracja przypominająca rozmowy grupowe inspirowana przez MagenticOne. | Złożona, generalistyczna współpraca między agentami. |
Prostota i przyjazna dla deweloperów
Wszystkie wzorce orkiestracji współdzielą ujednolicony interfejs do konstruowania i uruchamiania. Niezależnie od wybranej orkiestracji, ty:
- Zdefiniuj agentów i ich możliwości, zobacz Semantic Kernel Agents (Agenci jądra semantycznego).
- Utwórz orkiestrację, przekazując agentów (i, w razie potrzeby, menedżera).
- Opcjonalnie udostępniaj wywołania zwrotne lub przekształcenia na potrzeby niestandardowej obsługi danych wejściowych/wyjściowych.
- Uruchom środowisko uruchomieniowe i wywołaj aranżację za pomocą zadania.
- Poczekaj na wynik w spójny, asynchroniczny sposób.
Takie ujednolicone podejście oznacza, że można łatwo przełączać się między wzorcami aranżacji bez uczenia się nowych interfejsów API ani ponownego pisania logiki agenta. Struktura abstrahuje od złożoności komunikacji, koordynacji i agregacji wyników agenta, co pozwala skupić się na celach aplikacji.
// 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()
Uwaga / Notatka
Orkiestracja agentów nie jest jeszcze dostępna w Java SDK.
Przygotowywanie środowiska projektowego
Przed kontynuowaniem dodaj następujące pakiety do projektu:
dotnet add package Microsoft.SemanticKernel.Agents.Orchestration --prerelease
dotnet add package Microsoft.SemanticKernel.Agents.Runtime.InProcess --prerelease
W zależności od używanych typów agentów może być również konieczne dodanie odpowiednich pakietów dla agentów. Aby uzyskać więcej informacji, zobacz Omówienie agentów .