Modele i platformy AI

Microsoft AutoGen: Multi-Agent AI Workflows z Zaawansowaną Automatyzacją

mm
Dodaj Unite.AI do preferowanych źródeł w Google
Intelligence Microsoft AutoGen

Microsoft (MSFT ) Research wprowadził AutoGen we wrześniu 2023 roku jako otwarty framework Python do budowy agentów AI zdolnych do złożonej, wieloagentowej współpracy. AutoGen zdobył już uznanie wśród badaczy, deweloperów i organizacji, z ponad 290 współpracownikami na GitHubie i prawie 900 000 pobrań do maja 2024 roku. Budując na tym sukcesie, Microsoft zaprezentował AutoGen Studio, interfejs niskiego kodu, który umożliwia deweloperom szybkie prototypowanie 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 oraz wydajnego wykonania kodu.

Microsoft niedawno wprowadził również AutoGen Studio, który ułatwia 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.

Czym jest unikalne AutoGen?

Poznawanie agentów AI

W kontekście AI, agent to autonomiczny składnik oprogramowania, który może wykonywać określone zadania, często wykorzystując przetwarzanie języka naturalnego i uczenie maszynowe. Ramy 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 automatyzować przepływy 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.

Agenci rozmowni i dostosowywani

AutoGen wprowadza pojęcie “rozmownych” agentów, które są zaprojektowane do przetwarzania wiadomości, generowania odpowiedzi i wykonywania działań na podstawie instrukcji języka naturalnego. Agenci ci nie tylko potrafią angażować się w bogate dialogi, ale mogą być również dostosowywani do 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: LLM-powered asystent, który może obsługiwać zadania takie jak kodowanie, debugowanie lub odpowiedzi na złożone pytania.
  • Agent proxy użytkownika: Symuluje zachowanie użytkownika, umożliwiając deweloperom testowanie interakcji bez udziału rzeczywistego użytkownika. Może również wykonywać kod autonomicznie.
  • Agenci czatu grupowego: Zbiór agentów, których współpraca jest idealna dla scenariuszy wymagających 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, z których każdy ma specjalistyczne role, aby rozwiązać złożone zadania bardziej efektywnie. Agenci ci 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.

Podstawowe funkcje AutoGen

1. Ramy wieloagentowe

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

Wzorce rozmów obejmują:

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

2. Wykonanie kodu i automatyzacja

W przeciwieństwie do wielu ram 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 autonomicznie.

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 chodzi o pobieranie danych z bazy danych, wysyłanie żądań sieciowych czy integrację 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 podjęciem 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 zanurzenie

Inicjacja i konfiguracja agenta

Pierwszym krokiem w pracy z AutoGen jest ustawienie i konfiguracja 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 rozmowy 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ą dane i informacje, 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 wyzwolony jest warunek zakończenia.

Obsługa błędów i samodoskonalenie

Agenci AutoGen są zaprojektowani do inteligentnego obsługi błędów. Jeśli zadanie nie powiedzie się lub wyprodukuje niepoprawny wynik, agent może analizować problem, próbować go naprawić i nawet iterować nad swoim rozwiązaniem. 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, ram orchestracji i podstaw programowania Python. AutoGen to framework oparty na Pythonie, a jego pełny potencjał jest realizowany w połączeniu 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 Twojego środowiska:

  1. Ładowanie zmiennych środowiskowych: Przechowuj wrażliwe klucze API w pliku .env i ładuj je za pomocą dotenv, aby utrzymać bezpieczeństwo. (api_key = os.environ.get(“OPENAI_API_KEY”))
  2. Wybór konfiguracji modelu językowego: Zdecyduj, który model LLM będziesz używał, taki jak GPT-4 z 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, z których każdy ma odrębne role i możliwości.

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

<p># Zdefiniuj konfigurację LLM
llm_config = {
&quot;model&quot;: &quot;gpt-4&quot;,
&quot;api_key&quot;: api_key
}</p>

<p># Utwórz agenta asystenta do zadań związanych z kodowaniem i analizą
assistant = AssistantAgent(
name=&quot;coding_assistant&quot;,
llm_config=llm_config
)</p>

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

  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 generuje wyniki wizualne. Oto jak AutoGen może to ułatwić:
    • Przepływ pracy: Agent asystent jest odpowiedzialny za pobieranie historycznych cen akcji, obliczanie kluczowych wskaźników wydajności i generowanie wykresów.
    • Przepływ wykonania: Agent proxy użytkownika przegląda i wykonuje kod wygenerowany przez agenta asystenta.
  2. Przykład 2: Zautomatyzowany asystent do badań dla prac naukowych W scenariuszu, w którym wymagany jest asystent do podsumowania prac naukowych, agenci AutoGen mogą skutecznie współpracować, aby to osiągnąć:
    • Pobieranie badań: Jeden agent pobiera i parsuje odpowiednie prace naukowe za pomocą technik web scraping.
    • Podsumowanie: Inny agent podsumowuje kluczowe ustalenia i generuje zwięzły przegląd.
    • Zarządzanie cytatem: Dodatkowy agent zarządza cytatem i formatuje bibliografię.

Wdrażanie współpracy wieloagentowej

Siła AutoGen leży w jego zdolności do koordynowania wielu agentów w celu ukończenia zadań, które są ze sobą powiązane. Przejdźmy przez scenariusz, w którym wdrażamy model nauczyciela, ucznia i ewaluatora:

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

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

<p># Zdefiniuj agenty dla przepływu pracy edukacyjnej
teacher = AssistantAgent(name=&quot;teacher&quot;, llm_config=llm_config)
student = AssistantAgent(name=&quot;student&quot;, llm_config=llm_config)
evaluator = AssistantAgent(name=&quot;evaluator&quot;, llm_config=llm_config)</p>

<p># Zdefiniuj przepływ rozmowy między agentami
teacher.send_message(&quot;Dzisiejszy temat to rachunek. Zanurzmy się w równaniach różniczkowych.&quot;)
student.send_message(&quot;Czy możesz wyjaśnić pojęcie pochodnej?&quot;)
teacher.send_message(&quot;Pochodna reprezentuje szybkość zmiany funkcji. Oto proste wyjaśnienie...&quot;)</p>

Zaawansowane pojęcia: Wykonanie zadań 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 przypadku, w którym agenci współpracują przy zadaniach rozwoju oprogramowania:

  1. Scenariusz: Musisz zautomatyzować proces generowania kodu, testowania i debugowania dla projektu oprogramowania.
  2. Role 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 autonomicznie.

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ępują.
  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 gładko w czasie.

Przykład: Samonaprawialny przepływ pracy

  • Jeśli agent napotka błąd wykonania kodu, może:
    • Analizować dziennik błędów.
    • Modyfikować kod, aby naprawić problem.
    • Ponownie wykonywać zadanie, aby potwierdzić 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

Zmiana tradycyjnych narzędzi automatyzacji

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

Rola AutoGen w strategiach cloud native

Agenci AutoGen są zaprojektowani do uruchamiania bezstanowo w kontenerach, co sprawia, że są idealnymi do wdrożenia w środowiskach cloud native. Ta zdolność umożliwia bezproblemowe skalowanie, ponieważ organizacje mogą wdrożyć tysiące identycznych agentów, aby obsłużyć zmienne obciążenia.

Porównanie z innymi ramami

Chociaż istnieje wiele ram wieloagentowych na rynku, AutoGen wyróżnia się dzięki bezproblemowej integracji z ekosystemem Microsoftu (Azure, Microsoft 365 itp.). Ta integracja umożliwia bardziej spójny przepływ pracy, szczególnie dla przedsiębiorstw już osadzonych w środowisku Microsoftu.

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, niesie ze sobą wewnętrzne ryzyko. Deweloperzy muszą wdrożyć solidne środki bezpieczeństwa, aby zapobiec nieautoryzowanym działaniom.
  • Skalowalność: Chociaż AutoGen jest zaprojektowany do systemów rozproszonych, skalowanie aplikacji z tysiącami agentów może być zasobożerne i może wymagać starannej planowania infrastruktury.
  • Uwagi etyczne: Jak w przypadku każdej technologii AI, istnieją uwagi etyczne, szczególnie podczas wdrażania agentów, które współpracują autonomicznie z ludźmi.

Podsumowanie

Ramy AutoGen otwierają 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 ram AI.

 

Przez ostatnie pięć lat zanurzałem się w fascynującym świecie Machine Learning i Deep Learning. Moja pasja i ekspertyza doprowadziły mnie do udziału w ponad 50 różnorodnych 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ę dalej eksplorować.