Używanie aranżacji sekwencyjnej
W sekwencyjnej orkiestracji agenci są rozmieszczani w ciągu, w którym każdy agent przetwarza zadanie jeden po drugim. Dane wyjściowe z jednego agenta stają się danymi wejściowymi dla następnego. Ten wzorzec jest idealny w przypadku przepływów pracy, w których każdy krok zależy od poprzedniego, takiego jak przegląd dokumentu, potoki przekształcania danych lub wieloetapowe rozumowanie.
Orkiestracja sekwencka działa najlepiej w przypadku zadań, które należy wykonać krok po kroku, z każdym krokiem ulepszanym w ostatnim kroku. Kolejność uruchamiania agentów jest ustalona wcześniej, a agenci nie decydują, co się stanie później.
Kiedy należy używać aranżacji sekwencyjnej
Rozważ użycie wzorca orkiestracji sekwencyjnej, gdy przepływ pracy ma następujące aspekty:
- Procesy złożone z wielu kroków, które muszą wystąpić w określonej kolejności, gdzie każdy krok opiera się na tym, który przed nim.
- Procesy danych, w których każdy etap dodaje coś ważnego, co jest potrzebne, aby następny etap mógł działać prawidłowo.
- Zadania, w których etapy nie mogą być wykonywane w tym samym czasie i muszą być uruchamiane jeden po drugim.
- Sytuacje, które wymagają stopniowych ulepszeń, takie jak opracowywanie, przeglądanie i doprecyzowywanie zawartości.
- Systemy, w których wiesz, jak każdy agent działa i może obsługiwać opóźnienia lub błędy w dowolnym kroku bez zatrzymywania całego procesu.
Kiedy unikać sekwencyjnej aranżacji
Unikaj tego wzorca, gdy:
- Etapy można uruchamiać niezależnie i równolegle bez wpływu na jakość.
- Pojedynczy agent może efektywnie wykonywać całe zadanie.
- Wczesne etapy mogą zakończyć się niepowodzeniem lub wygenerować słabe dane wyjściowe i nie ma możliwości zatrzymania lub skorygowania przetwarzania podrzędnego na podstawie błędów.
- Agenci muszą współpracować dynamicznie, a nie oddawać pracę sekwencyjnie.
- Przepływ pracy wymaga iteracji, wycofywania lub routingu dynamicznego na podstawie wyników pośrednich.
Implementowanie sekwencyjnej aranżacji
Zaimplementuj wzorzec aranżacji sekwencyjnej za pomocą zestawu MICROSOFT Agent Framework SDK:
Tworzenie klienta czatu
Skonfiguruj klienta czatu (na przykładAzureOpenAIChatClient) z odpowiednimi poświadczeniami, aby nawiązać połączenie z dostawcą usług sztucznej inteligencji.Definiowanie agentów
Utwórz instancje agenta przy użyciu metody klienta czatucreate_agent. Każdy agent powinien mieć określone instrukcje i nazwę, która definiuje jego rolę i obszar wiedzy w procesie.Tworzenie sekwencyjnego przepływu pracy
Użyj klasySequentialBuilder, aby utworzyć przepływ pracy, który wykonuje agentów jeden po drugim. Dodaj wystąpienia agenta jako uczestników przy użyciu metodyparticipants(), a następnie wywołajbuild(), aby utworzyć przepływ pracy.Uruchamianie przepływu pracy
Wywołaj metodę przepływu pracyrun_streamz zadaniem lub danymi wejściowymi, nad którym mają pracować agenci. Przepływ pracy przetwarza zadanie przez wszystkich agentów sekwencyjnie, a dane wyjściowe każdego agenta stają się danymi wejściowymi następnego.Przetwarzaj zdarzenia przepływu pracy
Iteruj przez zdarzenia przepływu pracy przy użyciu pętli asynchronicznej.WorkflowOutputEventPoszukaj wystąpień, które zawierają wyniki z przetwarzania sekwencyjnego.Wyodrębnij ostatnią konwersację
Zbierz ostateczną rozmowę z wyników workflow. Wynik zawiera pełną historię konwersacji pokazującą, jak każdy agent w sekwencji przyczynił się do końcowego wyniku.
Sekwencyjna orkiestracja jest idealna, gdy zadanie wymaga przejrzystych, uporządkowanych kroków, w których każdy agent buduje na wyniku poprzedniego. Ten wzorzec pomaga poprawić jakość danych wyjściowych dzięki uściśleniu krokowemu i zapewnia przewidywalne przepływy pracy. Gdy przemyślanie zastosuje się zestaw SDK Microsoft Agent Framework, umożliwia on tworzenie zaawansowanych potoków wielu agentów dla złożonych zadań, takich jak tworzenie zawartości, przetwarzanie danych i inne.