Connect with us

Microsoft AutoGen: Przepływy pracy AI z wieloma agentami i zaawansowaną automatyzacją

Sztuczna inteligencja

Microsoft AutoGen: Przepływy pracy AI z wieloma agentami i zaawansowaną automatyzacją

mm
Intelligence Microsoft AutoGen

Microsoft Research wprowadził AutoGen we wrześniu 2023 roku jako framework open-source dla języka Python do budowy agentów AI zdolnych do złożonej, wieloagentowej współpracy. AutoGen zdobył już popularność wśród badaczy, deweloperów i organizacji, z ponad 290 współautorami na GitHub i prawie 900 000 pobrań do maja 2024 roku. Budując na tym sukcesie, Microsoft przedstawił AutoGen Studio, interfejs o niskim kodzie, który umożliwia deweloperom szybkie tworzenie prototypów i eksperymentowanie z agentami AI.

Ta biblioteka służy do tworzenia inteligentnych, modułowych agentów, które mogą współpracować bezproblemowo w celu rozwiązania złożonych zadań, automatyzacji podejmowania decyzji i wydajnego wykonywania kodu.

Microsoft wprowadził również AutoGen Studio, który upraszcza rozwój agentów AI, zapewniając interaktywną i przyjazną platformę. W przeciwieństwie do swojego poprzednika, AutoGen Studio minimalizuje potrzebę obszernego kodowania, oferując graficzny interfejs użytkownika (GUI), w którym użytkownicy mogą przeciągać i upuszczać agenty, konfigurować przepływy pracy i testować rozwiązania napędzane przez AI bez wysiłku.

Co wyróżnia AutoGen?

Zrozumienie agentów AI

W kontekście AI, agent jest samodzielnym składnikiem oprogramowania, który może wykonywać określone zadania, często przy użyciu przetwarzania języka naturalnego i uczenia maszynowego. Ramy pracy Microsoft AutoGen zwiększają możliwości tradycyjnych agentów AI, umożliwiając im angażowanie się w złożone, ustrukturyzowane rozmowy i nawet współpracę z innymi agentami w celu osiągnięcia wspólnych celów.

AutoGen obsługuje szeroki zakres typów agentów i wzorców rozmów. Ta wszechstronność pozwala mu na automatyzację przepływów pracy, które wcześniej wymagały interwencji ludzkiej, co sprawia, że jest idealnym rozwiązaniem dla aplikacji w różnych branżach, takich jak finanse, reklama, inżynieria oprogramowania i wiele innych.

Agentów rozmów i dostosowywania

AutoGen wprowadza pojęcie “rozmównych” agentów, które są zaprojektowane do przetwarzania wiadomości, generowania odpowiedzi i wykonywania działań na podstawie instrukcji w języku naturalnym. Ci agenci nie tylko są w stanie angażować się w bogate dialogi, ale mogą być również dostosowane w celu poprawy ich wydajności w określonych zadaniach. Ten modułowy projekt sprawia, że AutoGen jest potężnym narzędziem zarówno dla prostych, jak i złożonych projektów AI.

Kluczowe typy agentów:

  • Agent asystent: Asystent zasilany przez LLM, który może obsługiwać zadania takie jak kodowanie, debugowanie lub odpowiedzi na złożone zapytania.
  • Agent proxy użytkownika: Symuluje zachowanie użytkownika, umożliwiając deweloperom testowanie interakcji bez konieczności zaangażowania rzeczywistego użytkownika. Może również wykonywać kod w sposób autonomiczny.
  • Agenci czatu grupowego: Zbiór agentów, którzy współpracują, idealny dla scenariuszy, które wymagają wielu umiejętności lub perspektyw.

Współpraca wieloagentowa

Jedną z najbardziej imponujących funkcji AutoGen jest jego obsługa współpracy wieloagentowej. Deweloperzy mogą tworzyć sieć agentów, każdy z wyznaczoną rolą, aby rozwiązać złożone zadania bardziej wydajnie. Ci agenci mogą komunikować się ze sobą, wymieniać informacje i podejmować decyzje zbiorowo, usprawniając procesy, które w przeciwnym razie byłyby czasochłonne lub podatne na błędy.

Główne funkcje AutoGen

1. Ramy pracy wieloagentowej

AutoGen ułatwia tworzenie sieci agentów, gdzie każdy agent może pracować niezależnie lub we współpracy z innymi. Ramy pracy zapewniają elastyczność w projektowaniu przepływów pracy, które są w pełni autonomiczne lub zawierają nadzór ludzki, gdy jest to konieczne.

Wzorce rozmów obejmują:

  • Rozezmowy jeden-na-jeden: Proste interakcje między dwoma agentami.
  • Struktury hierarchiczne: Agenci mogą delegować zadania do podagentów, co ułatwia rozwiązywanie złożonych problemów.
  • Rozezmowy grupowe: Wieloagentowe rozmowy grupowe, w których agenci współpracują, aby rozwiązać zadanie.

2. Wykonywanie kodu i automatyzacja

W przeciwieństwie do wielu frameworków AI, AutoGen pozwala agentom generować, wykonywać i debugować kod automatycznie. Ta funkcja jest niezwykle cenna dla zadań inżynierii oprogramowania i analizy danych, ponieważ minimalizuje interwencję ludzką i przyspiesza cykle rozwoju. Agent proxy użytkownika może identyfikować bloki kodu wykonywalnego, uruchamiać je i nawet udoskonalać wynik w sposób autonomiczny.

3. Integracja z narzędziami i API

Agenci AutoGen mogą współpracować z zewnętrznymi narzędziami, usługami i API, znacznie rozszerzając ich możliwości. Niezależnie od tego, czy jest to pobieranie danych z bazy danych, wykonywanie żądań sieciowych czy integracja z usługami Azure, AutoGen zapewnia solidne środowisko do budowy aplikacji o bogatych funkcjach.

4. Rozwiązywanie problemów z udziałem człowieka

W scenariuszach, w których wymagana jest interwencja ludzka, AutoGen obsługuje interakcje człowiek-agent. Deweloperzy mogą konfigurować agenty do żądania wskazówek lub zatwierdzenia od użytkownika przed kontynuowaniem określonych zadań. Ta funkcja zapewnia, że krytyczne decyzje są podejmowane w sposób przemyślany i z odpowiednim poziomem nadzoru.

Jak działa AutoGen: Głębokie zagłębienie

Inicjacja i konfiguracja agenta

Pierwszym krokiem w pracy z AutoGen jest konfiguracja i ustawienie agentów. Każdy agent może być dostosowany do wykonywania określonych zadań, a deweloperzy mogą dostosowywać parametry, takie jak model LLM, umiejętności i środowisko wykonania.

Orchestracja interakcji agentów

AutoGen obsługuje przepływ rozmów między agentami w sposób ustrukturyzowany. Typowy przepływ pracy może wyglądać następująco:

  1. Wprowadzenie zadania: Użytkownik lub agent wprowadza zapytanie lub zadanie.
  2. Przetwarzanie agenta: Odpowiedni agenci analizują dane wejściowe, generują odpowiedzi lub wykonują akcje.
  3. Komunikacja między agentami: Agenci wymieniają się danymi i wglądami, współpracując, aby ukończyć zadanie.
  4. Wykonanie zadania: Agenci wykonują kod, pobierają informacje lub współpracują z zewnętrznymi systemami, jeśli jest to konieczne.
  5. Zakończenie: Rozmowa kończy się, gdy zadanie jest ukończone, osiągnięty jest próg błędu lub występuje warunek zakończenia.

Obsługa błędów i samodoskonalenie

Agenci AutoGen są zaprojektowani do obsługi błędów w sposób inteligentny. Jeśli zadanie nie powiedzie się lub wyprodukuje niepoprawny wynik, agent może analizować problem, próbować go naprawić i nawet iterować swoje rozwiązanie. Ta zdolność do samodoskonalenia jest kluczowa dla tworzenia niezawodnych systemów AI, które mogą działać autonomicznie przez dłuższy czas.

Wymagania wstępne i instalacja

Przed rozpoczęciem pracy z AutoGen upewnij się, że masz solidne zrozumienie agentów AI, frameworków orchestracji i podstaw programowania w Pythonie. AutoGen jest frameworkiem opartym na Pythonie, a jego pełny potencjał jest realizowany, gdy łączy się z innymi usługami AI, takimi jak modele GPT OpenAI lub Microsoft Azure AI.

Instalacja AutoGen za pomocą pip:

pip install pyautogen

Dla dodatkowych funkcji, takich jak zoptymalizowane możliwości wyszukiwania lub integracja z bibliotekami zewnętrznymi:

pip install "pyautogen[blendsearch]"

Konfigurowanie środowiska

AutoGen wymaga od Ciebie konfiguracji zmiennych środowiskowych i kluczy API w sposób bezpieczny. Przejdźmy przez podstawowe kroki niezbędne do inicjacji i konfiguracji Twojej przestrzeni roboczej:

  1. Ładowanie zmiennych środowiskowych: Przechowuj wrażliwe klucze API w pliku .env i ładuj je przy użyciu dotenv, aby utrzymać bezpieczeństwo. (api_key = os.environ.get(“OPENAI_API_KEY”))
  2. Wybór konfiguracji modelu językowego: Zdecyduj, który LLM będziesz używał, taki jak GPT-4 od OpenAI lub inny preferowany model. Ustawienia konfiguracyjne, takie jak punkty końcowe API, nazwy modeli i klucze, muszą być wyraźnie zdefiniowane, aby umożliwić płynną komunikację między agentami.

Budowanie agentów AutoGen dla złożonych scenariuszy

Aby zbudować system wieloagentowy, musisz zdefiniować agenty i określić, jak powinny one działać. AutoGen obsługuje różne typy agentów, każdy z odrębnymi rolami i możliwościami.

Tworzenie agentów asystentów i proxy użytkownika: Zdefiniuj agenty z zaawansowanymi konfiguracjami do wykonywania kodu i zarządzania interakcjami użytkownika:

from autogen import AssistantAgent, UserProxyAgent

# Zdefiniuj konfigurację LLM
llm_config = {
"model": "gpt-4",
"api_key": api_key
}

# Utwórz agenta asystenta do złożonych zadań kodowania i analizy
assistant = AssistantAgent(
name="coding_assistant",
llm_config=llm_config
)

# Agent proxy użytkownika do obsługi interakcji użytkownika i wykonywania kodu
user_proxy = UserProxyAgent(
name="user_proxy",
code_execution_config={
"executor": autogen.coding.LocalCommandLineCodeExecutor(work_dir="coding_workspace")
}
)

  1. Przykład 1: Złożona analiza danych i wizualizacja Wyobraź sobie, że musisz zautomatyzować zadanie, w którym agent AI pobiera dane finansowe, wykonuje analizę statystyczną i wizualizuje wyniki. Oto jak AutoGen może to ułatwić:
    • Przepływ pracy: Agent asystent jest zadany do pobrania historycznych cen akcji, obliczenia kluczowych wskaźników wydajności i wygenerowania wizualnych wykresów.
    • Przepływ wykonania: Agent proxy użytkownika przegląda i wykonuje kod wygenerowany przez agenta asystenta.
  2. Przykład 2: Zautomatyzowany asystent badawczy dla prac naukowych W scenariuszu, w którym wymagasz asystenta do podsumowania prac badawczych, agenci AutoGen mogą skutecznie współpracować, aby to osiągnąć:
    • Pobieranie badań: Jeden agent pobiera i analizuje odpowiednie prace naukowe przy użyciu technik wykorzystania sieci Web.
    • Podsumowanie: Inny agent podsumowuje kluczowe ustalenia i generuje zwięzły przegląd.
    • Zarządzanie cytowaniami: Pomocniczy agent zarządza cytowaniami i formatuje bibliografię.

Wdrożenie współpracy wieloagentowej

Siła AutoGen leży w jego zdolności do koordynowania wielu agentów w celu wykonania zadań, które są wzajemnie zależne. Przejdźmy przez scenariusz, w którym wdrożymy model nauczyciela-ucznia-oceniającego:

  1. Agent nauczyciela: Zapewnia wyjaśnienia i instrukcje na dany temat.
  2. Agent ucznia: Zadaje pytania i wykonuje ćwiczenia, aby umocnić zrozumienie.
  3. Agent oceniający: Przegląda pracę ucznia i zapewnia informację zwrotną.

Ten model może być wykorzystywany do celów edukacyjnych, gdzie agenci współpracują autonomicznie, aby ułatwić naukę.

Przykład inicjacji:

from autogen import AssistantAgent, UserProxyAgent

# Zdefiniuj agenty dla przepływu pracy edukacyjnej
teacher = AssistantAgent(name="teacher", llm_config=llm_config)
student = AssistantAgent(name="student", llm_config=llm_config)
evaluator = AssistantAgent(name="evaluator", llm_config=llm_config)

# Zdefiniuj przepływ rozmowy między agentami
teacher.send_message("Dzisiejszy temat to rachunek. Wprowadźmy się w równania różnicowe.")
student.send_message("Czy możesz wyjaśnić pojęcie pochodnej?")
teacher.send_message("Pochodna reprezentuje szybkość zmiany funkcji. Oto proste wyjaśnienie...")

Zaawansowane pojęcia: Wykonanie zadania i generowanie kodu

AutoGen obsługuje wykonanie złożonych przepływów pracy, w których agenci nie tylko generują, ale także uruchamiają i debugują kod. Rozważmy przypadek, w którym agenci współpracują przy zadaniach rozwoju oprogramowania:

  1. Scenariusz: Musisz zautomatyzować proces generowania kodu, testowania i debugowania dla projektu oprogramowania.
  2. Rola agentów:
    • Agent generujący kod: Pisze kod na podstawie specyfikacji dostarczonej przez użytkownika.
    • Agent testowy: Uruchamia automatyczne testy w celu walidacji wygenerowanego kodu.
    • Agent debugujący: Identyfikuje i naprawia problemy w sposób autonomiczny.

Przykład przepływu wykonania:

  1. Agent generujący kod pisze kod w języku Python, aby zaimplementować funkcjonalność.
  2. Agent testowy uruchamia testy jednostkowe, zgłaszając błędy, jeśli takie wystąpią.
  3. Agent debugujący analizuje błędy, udoskonala kod i ponownie uruchamia testy, aż kod przejdzie pomyślnie.

Ten zautomatyzowany cykl redukuje czas rozwoju i poprawia niezawodność kodu.

Obsługa błędów i ciągłe doskonalenie

AutoGen jest wyposażony w solidne mechanizmy obsługi błędów. Agenci mogą być zaprogramowani do diagnozowania problemów, ponawiania zadań lub żądania interwencji ludzkiej, gdy jest to konieczne. Ta zdolność do samodoskonalenia zapewnia, że nawet złożone przepływy pracy mogą być wykonywane płynnie w czasie.

Przykład: Samooczyszczający się przepływ pracy

  • Jeśli agent napotka błąd wykonania kodu, może:
    • Analizować dziennik błędów.
    • Modyfikować kod, aby naprawić problem.
    • Ponownie uruchamiać zadanie, aby zweryfikować poprawkę.

Ten iteracyjny podejście sprawia, że AutoGen jest potężnym narzędziem dla scenariuszy, w których niezawodność i precyzja są kluczowe.

Potencjał AutoGen

Naruszanie tradycyjnych narzędzi automatyzacji

Podejście AutoGen do automatyzacji przepływów pracy za pomocą współpracy agentów jest znaczącą poprawą w stosunku do tradycyjnej Automatyzacji Procesów Roboticznych (RPA). Wykorzystując LLM i zaawansowane techniki AI, AutoGen może obsługiwać bardziej złożone zadania i dostosowywać się do dynamicznych środowisk bardziej wydajnie niż statyczne boty RPA.

Rola AutoGen w strategiach cloud native

Agenci AutoGen są zaprojektowani do uruchamiania w sposób bezstanowy w kontenerach, co sprawia, że są idealnymi do wdrożenia w środowiskach cloud native. Ta zdolność umożliwia płynne skalowanie, ponieważ organizacje mogą wdrożyć tysiące identycznych agentów, aby obsłużyć zmieniające się obciążenia.

Porównanie z innymi frameworkami

Chociaż istnieje wiele frameworków wieloagentowych na rynku, bezproblemowa integracja AutoGen z ekosystemem Microsoft (Azure, Microsoft 365 itp.) daje mu wyraźną przewagę. Ta integracja pozwala na bardziej spójny przepływ pracy, zwłaszcza dla przedsiębiorstw już osadzonych w środowisku Microsoft.

Wyzwania i rozważania

Chociaż AutoGen i AutoGen Studio oferują potężne narzędzia do rozwoju AI, istnieją wyzwania, które należy rozważyć:

  • Bezpieczeństwo: Uruchamianie autonomicznych agentów, które mogą wykonywać kod, wiąże się z wrodzonymi ryzykami. Deweloperzy muszą wdrożyć solidne środki bezpieczeństwa, aby zapobiec nieautoryzowanym działaniom.
  • Skalowalność: Chociaż AutoGen jest zaprojektowany dla systemów rozproszonych, skalowanie aplikacji z tysiącami agentów może być zasobochłonne i może wymagać starannej planowania infrastruktury.
  • Uwagi etyczne: Jak w przypadku każdej technologii AI, istnieją uwagi etyczne, zwłaszcza podczas wdrażania agentów, które współpracują autonomicznie z ludźmi.

Podsumowanie

AutoGen framework otwiera nowe możliwości budowy inteligentnych, wieloagentowych systemów. Jego zdolność do automatyzacji złożonych przepływów pracy, silna społeczność, wykonanie kodu i ułatwienie współpracy agentów wyróżniają go spośród innych frameworków AI.

 

Spędziłem ostatnie pięć lat, zanurzając się w fascynującym świecie Machine Learning i Deep Learning. Moja pasja i ekspertyza doprowadziły mnie do udziału w ponad 50 różnych projektach inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja nieustanna ciekawość również skierowała mnie w stronę Natural Language Processing, dziedziny, którą chcę bardziej zbadać.