Korzystanie z orkiestracji czatu grupowego
Orkiestracja czatów grupowych modeluje współpracę między wieloma agentami sztucznej inteligencji i opcjonalnie uczestnikiem. Centralny menedżer czatów kontroluje przepływ, decydując, który agent odpowiada dalej i kiedy poprosić o dane wejściowe człowieka. Ten wzorzec jest przydatny do symulowania spotkań, debat lub wspólnego rozwiązywania problemów.
Wzorzec czatu grupowego działa dobrze w scenariuszach, w których dyskusja grupowa lub współpraca iteracyjna jest kluczem do podejmowania decyzji. Obsługuje różne style interakcji, od swobodnego ideowania po formalne przepływy pracy ze zdefiniowanymi rolami i krokami zatwierdzania. Orkiestracja czatów grupowych jest również doskonała w przypadku konfiguracji pętli człowieka, w których człowiek może prowadzić lub interweniować w rozmowie. Zazwyczaj agenci w tym wzorcu nie zmieniają bezpośrednio działających systemów — głównie przyczyniają się do konwersacji.
Kiedy używać orkiestracji czatu grupowego
Rozważ użycie orkiestracji czatu grupowego, gdy scenariusz obejmuje:
- Spontaniczna lub kierowana współpraca między agentami (i prawdopodobnie ludźmi)
- Iteracyjne pętle sprawdzania twórców, w których agenci tworzą i przeglądają
- Nadzór lub uczestnictwo człowieka w czasie rzeczywistym
- Przezroczyste i poddawane inspekcji konwersacje, ponieważ wszystkie dane wyjściowe są zbierane w jednym wątku
Typowe scenariusze obejmują:
- Twórcza burza mózgów, w której agenci opierają się na pomysłach nawzajem
- Podejmowanie decyzji, które korzysta z debaty i konsensusu
- Złożone problemy wymagające dialogu międzydyscyplinarnego
- Kontrola jakości i walidacja wymagająca wielu perspektyw ekspertów
- Przepływy pracy zawartości z wyraźnym rozdzieleniem między tworzeniem i przeglądem
Kiedy należy unikać orkiestracji czatu grupowego
Unikaj tego wzorca, gdy:
- Wystarczy proste delegowanie zadań lub proste potoki liniowe
- Wymagania dotyczące szybkości w czasie rzeczywistym sprawiają, że dyskusja jest niepraktyczna
- Hierarchiczne lub deterministyczne przepływy pracy są potrzebne bez dyskusji
- Menedżer czatu nie może wyraźnie określić, kiedy zadanie zostało ukończone
- Zarządzanie przepływem konwersacji staje się zbyt złożone, szczególnie w przypadku wielu agentów (ograniczenie do trzech lub mniej w celu łatwiejszej kontroli)
Pętle sprawdzania producenta
Typowym przypadkiem specjalnym jest pętla maker-checker. W tym miejscu jeden agent (twórca) proponuje zawartość lub rozwiązania, a inny agent (kontroler) przegląda i krytykuje je. Kontroler może wysłać opinię z powrotem do producenta, a ten cykl powtarza się, aż wynik będzie zadowalający. Ten proces wymaga sekwencji opartej na turach zarządzanej przez menedżera czatu.
Implementowanie orkiestracji czatu grupowego
Zaimplementuj wzorzec orkiestracji czatu grupowego 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 swoją rolę i obszar wiedzy.Tworzenie przepływu pracy czatu grupowego
GroupChatBuilderUżyj klasy , aby utworzyć przepływ pracy, który może równolegle uruchamiać wielu agentów. 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 pracyrunz zadaniem lub danymi wejściowymi, nad którym mają pracować agenci. Workflow uruchamia wszystkich agentów równocześnie i zwraca zdarzenia zawierające wyniki.Przetwarzanie wyników
Wyodrębnij dane wyjściowe ze zdarzeń przepływu pracy przy użyciu poleceniaget_outputs(). Wyniki zawierają połączone konwersacje wszystkich agentów, a odpowiedzi każdego z nich są zawarte w zbiorem końcowych odpowiedzi.Obsługa zagregowanych odpowiedzi
Przetwarzanie zagregowanych komunikatów ze wszystkich agentów. Każda wiadomość zawiera nazwę autora i zawartość, co pozwala określić, który agent dostarczył każdą odpowiedź.
Dostosowywanie menedżera czatu grupy
Możesz utworzyć niestandardowego menedżera czatów grupowych, rozszerzając klasę bazową GroupChatManager . Takie podejście pozwala kontrolować:
- Jak są filtrowane lub podsumowane wyniki konwersacji
- Wybór następnego agenta
- Kiedy zażądać danych wejściowych użytkownika
- Kiedy zakończyć konwersację
Menedżerowie niestandardowi umożliwiają implementowanie wyspecjalizowanej logiki dostosowanej do przypadku użycia.
Kolejność połączeń menedżera czatów grupowych
Podczas każdej rundy konwersacji menedżer czatu wywołuje metody w następującej kolejności:
-
should_request_user_input- Sprawdza, czy dane wejściowe człowieka są potrzebne, zanim następny agent odpowie. -
should_terminate- Określa, czy konwersacja powinna zakończyć się (na przykład osiągnięto maksymalną liczbę rund). -
filter_results— Jeśli kończy się, podsumowuje lub przetwarza ostateczną konwersację. -
select_next_agent- W przypadku kontynuowania wybiera następnego agenta, który ma mówić.
Gwarantuje to, że warunki wprowadzania danych wejściowych i zakończenia użytkownika są obsługiwane przed przejściem konwersacji do przodu. Zastąpi te metody w menedżerze niestandardowym, aby zmienić zachowanie.
Orkiestracja czatów grupowych umożliwia wielu agentom sztucznej inteligencji i opcjonalnie ludziom współpracę za pośrednictwem konwersacji z przewodnikiem i iteracyjnych opinii. Idealnie nadaje się do złożonych zadań, które korzystają z zróżnicowanej wiedzy i dynamicznej interakcji. Chociaż wymaga to starannego zarządzania, ten wzorzec zapewnia przejrzystość i elastyczność w podejmowaniu decyzji i kreatywnych przepływach pracy. Zestaw SDK programu Microsoft Agent Framework ułatwia implementowanie i dostosowywanie aranżacji czatów grupowych zgodnie z potrzebami.