Używanie aranżacji sekwencyjnej

Ukończone

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.

Diagram przedstawiający sekwencyjną aranżację, na której agenci przetwarzają zadania w zdefiniowanej kolejności potoku. Dane wyjściowe przepływa z jednego agenta do następnego.

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:

  1. Tworzenie klienta czatu
    Skonfiguruj klienta czatu (na przykład AzureOpenAIChatClient) z odpowiednimi poświadczeniami, aby nawiązać połączenie z dostawcą usług sztucznej inteligencji.

  2. Definiowanie agentów
    Utwórz instancje agenta przy użyciu metody klienta czatu create_agent. Każdy agent powinien mieć określone instrukcje i nazwę, która definiuje jego rolę i obszar wiedzy w procesie.

  3. Tworzenie sekwencyjnego przepływu pracy
    Użyj klasy SequentialBuilder, aby utworzyć przepływ pracy, który wykonuje agentów jeden po drugim. Dodaj wystąpienia agenta jako uczestników przy użyciu metody participants(), a następnie wywołaj build(), aby utworzyć przepływ pracy.

  4. Uruchamianie przepływu pracy
    Wywołaj metodę przepływu pracy run_stream z 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.

  5. Przetwarzaj zdarzenia przepływu pracy
    Iteruj przez zdarzenia przepływu pracy przy użyciu pętli asynchronicznej. WorkflowOutputEvent Poszukaj wystąpień, które zawierają wyniki z przetwarzania sekwencyjnego.

  6. 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.