AGI i przyszłość AI

MetaGPT: Kompletny przewodnik po najlepszym agencie AI dostępnym obecnie

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

Z dużymi modelami językowymi (LLM) takimi jak ChatGPT, OpenAI doświadczył wzrostu wśród przedsiębiorstw i użytkowników, obecnie generując około 80 milionów dolarów miesięcznego przychodu. Zgodnie z niedawnym raportem opublikowanym przez The Information, firma z siedzibą w San Francisco jest rzekomo na drodze do osiągnięcia 1 miliarda dolarów rocznego przychodu.

Ostatnim razem, gdy zagłębiliśmy się w AutoGPT i GPT-Engineering, wczesne, mainstreamowe, open-source LLM-oparte agenci AI zaprojektowane do automatyzacji złożonych zadań. Chociaż byli oni pełni obietnic, systemy te miały swoją część problemów: niejednolite wyniki, wąskie gardła wydajności i ograniczenia w radzeniu sobie z wielowymiarowymi wymaganiami. Wykazują oni biegłość w generowaniu kodu, ale ich możliwości często kończą się tam. Brakuje im krytycznych funkcjonalności zarządzania projektami, takich jak generowanie PRD, generowanie technicznych projektów i prototypowanie interfejsu API.

Wejdź MetaGPT— system wieloagentowy, który wykorzystuje duże modele językowe opracowane przez Sirui Hong, łącząc Standardowe Procedury Operacyjne (SOP) z systemami wieloagentowymi opartymi na LLM. Ten wschodzący paradygmat burzy istniejące ograniczenia LLM w kształtowaniu skutecznej współpracy i dekompozycji zadań w złożonych, rzeczywistych aplikacjach.

Piękno MetaGPT leży w jego strukturze. Wykorzystuje on techniki metaprogramowania do manipulowania, analizowania i transformowania kodu w czasie rzeczywistym. Celem jest zmaterializowanie agilnej, elastycznej architektury oprogramowania, która może dostosować się do dynamicznych zadań programistycznych.

Agile Development - Metagpt

Agile Development

SOPs działają tutaj jako meta-funkcja, koordynując agenci do automatycznego generowania kodu na podstawie określonych danych wejściowych. W prostych słowach, jest to tak, jakbyś przekształcił wysoko zorganizowaną grupę inżynierów oprogramowania w dostosowywalny, inteligentny system oprogramowania.

Zrozumienie ramy MetaGPT

Warstwy podstawowe i współpracy

Architektura MetaGPT jest podzielona na dwie warstwy: warstwę komponentów podstawowych i warstwę współpracy.

  1. Warstwa komponentów podstawowych: Warstwa ta koncentruje się na operacjach poszczególnych agentów i ułatwia wymianę informacji w całym systemie. Wprowadza podstawowe elementy budulcowe, takie jak Środowisko, Pamięć, Role, Akcje i Narzędzia. Środowisko tworzy przestrzeń dla wspólnych przestrzeni roboczych i ścieżek komunikacji, podczas gdy Pamięć służy jako archiwum danych historycznych. Role obejmują specjalistyczną wiedzę branżową, Akcje wykonują modułowe zadania, a Narzędzia oferują usługi wspólne. Warstwa ta służy jako system operacyjny dla agentów. Więcej informacji na temat tego, jak one współpracują, można znaleźć w artykule ‘Beyond ChatGPT; AI Agent: A New World of Workers
  2. Warstwa współpracy: Zbudowana na podstawie komponentów podstawowych, warstwa ta zarządza i usprawnia współpracę poszczególnych agentów. Wprowadza dwa mechanizmy: Współdzielone informacje i Zawarte przepływy pracy.
    • Współdzielone informacje: Działają one jako współpracujące ogniwo, które łączy agenci. Agenci mogą przechowywać, pobierać i udostępniać informacje na różnych poziomach, co redukuje redundancję i poprawia wydajność operacyjną.
    • Zawarte przepływy pracy: To miejsce, w którym Standardowe Procedury Operacyjne (SOP) wchodzą w grę. SOP działają jako plany, które rozkładają zadania na zarządzalne komponenty. Agenci są przypisani do tych podzadań, a ich wydajność jest wyrównana ze standardowymi wyjściami.

MetaGPT wykorzystuje również “Definicje ról“, aby zainicjować różnych specjalistycznych agentów, takich jak menedżerowie produktu, architekci itp. Role te charakteryzują się kluczowymi atrybutami, takimi jak nazwa, profil, cel, ograniczenia i opis.

Ponadto “Agenci kotwiczący” zapewniają rolom specyficzne wskazówki. Na przykład, rola menedżera produktu może zostać zainicjowana z ograniczeniem “wydajnego tworzenia udanego produktu”. Agenci kotwiczący zapewniają, że zachowania agentów są zgodne z ogólnymi celami, tym samym optymalizując wydajność.

Procesy poznawcze w agentach MetaGPT

MetaGPT może obserwować, myśleć, reflektować i działać. Działają one poprzez specyficzne funkcje behawioralne, takie jak _think(), _observe(), _publish_message() itp. To modelowanie poznawcze wyposaża agenci w aktywnych uczniów, którzy mogą dostosować się i ewoluować.

  1. Obserwuj: Agenci skanują swoje środowisko i włączają kluczowe dane do swojej Pamięci.
  2. Myśl i refleksuj: Poprzez funkcję _think(), role rozważają przed podjęciem działań.
  3. Wysyłaj wiadomości: Agenci używają _publish_message(), aby udostępnić bieżące stany zadań i powiązane rekordy działań.
  4. Wysyp informacji i działaj: Agenci oceniają przychodzące wiadomości i aktualizują swoje wewnętrzne repozytoria przed podjęciem decyzji o kolejnym kursie działań.
  5. Zarządzanie stanem: Z funkcjami, takimi jak blokowanie zadań i aktualizacja stanu, role mogą przetwarzać wiele działań sekwencyjnie bez przerw, odbijając współpracę ludzką w świecie rzeczywistym.

Mechanizmy przeglądu kodu dla MetaGPT

Przegląd kodu jest krytycznym składnikiem w cyklu życia rozwoju oprogramowania, a jednak jest on nieobecny w wielu popularnych ramach. Zarówno MetaGPT, jak i AgentVerse obsługują możliwości przeglądu kodu, ale MetaGPT idzie o krok dalej. Włącza również wykonywanie przedkompilacji, co pomaga w wczesnym wykrywaniu błędów i podnosi jakość kodu. Biorąc pod uwagę iteracyjny charakter kodowania, ta funkcja nie jest tylko dodatkiem, ale wymogiem dla każdej dojrzałej ramy rozwoju.

Doświadczenia ilościowe przeprowadzone w różnych zadaniach ujawniły, że MetaGPT przewyższa swoich konkurentów w niemal każdym scenariuszu. Pass@1 jest miarą zdolności ramy do generowania dokładnego kodu w jednej iteracji. Ta metryka oferuje bardziej realistyczne odzwierciedlenie użyteczności ramy w praktycznym ustawieniu. Wyższy wskaźnik Pass@1 oznacza mniej debugowania i większą wydajność, wpływając bezpośrednio na cykle rozwoju i koszty. Kiedy zestawiony z innymi zaawansowanymi narzędziami do generowania kodu, takimi jak CodeX, CodeT i nawet GPT-4, MetaGPT przewyższa je wszystkie. Ramy osiągają wskaźnik Pass@1 na poziomie 81,7% do 82,3% w benchmarkach HumanEval i MBPP.

Porównanie metryk MBPP i HumanEval między MetaGPT a innymi wiodącymi modelami (https://arxiv.org/pdf/2308.00352.pdf)

Porównanie metryk MBPP i HumanEval między MetaGPT a innymi wiodącymi modelami (https://arxiv.org/pdf/2308.00352.pdf)

Rama również używa mniej tokenów i zasobów obliczeniowych, osiągając wysoki wskaźnik sukcesu przy ułamku tradycyjnych kosztów inżynierii oprogramowania. Dane wskazały średni koszt tylko 1,09 dolarów za projekt z MetaGPT, co jest tylko ułamkiem tego, co developer mógłby zażądać za to samo zadanie.

Kroki do lokalnej instalacji MetaGPT na Twoim systemie

NPM, Instalacja Pythona

  1. Sprawdź i zainstaluj NPM: Po pierwsze, upewnij się, że NPM jest zainstalowany na Twoim systemie. Jeśli nie, musisz zainstalować node.js. Aby sprawdzić, czy masz npm, uruchom to polecenie w terminalu: npm --version. Jeśli zobaczysz numer wersji, jesteś gotowy.
  2. Aby zainstalować mermaid-js, zależność dla MetaGPT, uruchom: sudo npm install -g @mermaid-js/mermaid-cli lub npm install -g @mermaid-js/mermaid-cli
  3. Weryfikacja wersji Pythona: Upewnij się, że masz Pythona 3.9 lub nowszy. Aby sprawdzić wersję Pythona, otwórz terminal i wpisz: python --version. Jeśli nie jesteś na bieżąco, pobierz najnowszą wersję ze oficjalnej strony Pythona.
  4. Klonowanie repozytorium MetaGPT: Zaczynaj od klonowania repozytorium GitHub MetaGPT za pomocą polecenia git clone https://github.com/geekan/metagpt. Upewnij się, że masz Git zainstalowany w systemie. Jeśli nie, odwiedź tutaj.
  5. Przejdź do katalogu: Po sklonowaniu przejdź do katalogu MetaGPT za pomocą polecenia cd metagpt.
  6. Instalacja: Uruchom skrypt instalacyjny Pythona, aby zainstalować MetaGPT za pomocą polecenia python setup.py install.
  7. Utwórz aplikację: Uruchom python startup.py "Wprowadź prompty" --code_review True

Uwaga:

  • Twój nowy projekt powinien teraz znajdować się w katalogu workspace/.
  • --code_review True pozwoli modelowi GPT na dodatkowe operacje, które zapewnią, że kod działa poprawnie, ale zwróć uwagę, że będzie to kosztowne.
  • Jeśli napotkasz błąd uprawnień podczas instalacji, spróbuj uruchomić python setup.py install --user jako alternatywę.
  • Dla dostępu do określonych wersji i dalszych szczegółów, odwiedź oficjalną stronę wydań MetaGPT na GitHub: MetaGPT Releases.

Instalacja za pomocą Dockera

Dla tych, którzy preferują konteneryzację, Docker upraszcza proces:

  • Pobierz obraz Dockera: Pobierz oficjalny obraz MetaGPT i przygotuj plik konfiguracyjny:
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • Uruchom kontener MetaGPT: Uruchom kontener za pomocą poniższego polecenia:
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "Utwórz prostą i interaktywną grę kółko i krzyżyk w CLI" --code_review True

Konfigurowanie MetaGPT z Twoim kluczem API OpenAI

Po początkowej konfiguracji będziesz musiał zintegrować MetaGPT z Twoim kluczem API OpenAI. Oto kroki, aby to zrobić:

  1. Znajdź lub wygeneruj swój klucz OpenAI: Możesz znaleźć ten klucz w swoim panelu OpenAI w ustawieniach API.
  2. Ustaw klucz API: Masz możliwość umieszczenia klucza API w config/key.yaml, config/config.yaml lub ustawić go jako zmienną środowiskową (env). Kolejność pierwszeństwa to config/key.yaml > config/config.yaml > env.
  3. Aby ustawić klucz, przejdź do config/key.yaml i zastąp tekst zastępczy swoim kluczem OpenAI: OPENAI_API_KEY: "sk-..."

Pamiętaj, aby zabezpieczyć swój klucz API OpenAI. Nigdy nie udostępniaj go publicznie ani nie dziel się nim z nieuprawnionymi osobami.

Ilustracja przypadku użycia

Dałem cel, aby opracować grę kółko i krzyżyk w CLI, i MetaGPT pomyślnie wykonał to zadanie.

Poniżej znajduje się film, który pokazuje rzeczywisty przebieg wygenerowanego kodu gry.

MetaGPT Demo Run

MetaGPT dostarczył dokument projektowy w formacie Markdown – powszechnie używanym lekkim językiem znaczników. Ten plik Markdown był pełen diagramów UML, oferując szczegółowy widok architektonicznego planu. Ponadto specyfikacje API zostały szczegółowo opisane z metodami HTTP, punktami końcowymi, obiektami żądania/odpowiedzi i kodami stanu

MetaGPT Output - System Design Markdown

MetaGPT Output – System Design Markdown

Diagram klasy szczegółowo opisuje atrybuty i metody klasy Game, zapewniając abstrakcję, która jest łatwa do zrozumienia. Nawet wizualizuje przepływ wywołań programu, skutecznie przekształcając abstrakcyjne pomysły w konkretny plan.

To nie tylko znacznie redukuje ręczne obciążenie planowania, ale również przyspiesza proces podejmowania decyzji, zapewniając, że Twój proces rozwoju pozostaje agilny. Z MetaGPT nie tylko automatyzujesz generowanie kodu, ale również automatyzujesz inteligentne planowanie projektu, dając Ci przewagę w szybkim rozwoju aplikacji.

Podsumowanie: MetaGPT – rewolucjonizujący rozwój oprogramowania

MetaGPT zmienia krajobraz generatywnego AI i rozwoju oprogramowania, oferując bezproblemne połączenie inteligentnej automatyzacji i agilnego zarządzania projektami. Przewyższając możliwości ChatGPT, AutoGPT i tradycyjnych modeli LangChain, wyróżnia się w dekompozycji zadań, efektywnej generacji kodu i planowaniu projektu. Dowiedz się więcej

Oto kluczowe punkty z tego artykułu:

  1. Moc metaprogramowania: Wykorzystując metaprogramowanie, MetaGPT dostarcza agilną i adaptacyjną ramę oprogramowania. Przekracza wąską funkcjonalność starszych narzędzi i wprowadza przełomowy podejście, które obejmuje nie tylko kodowanie, ale także aspekty zarządzania projektami i podejmowania decyzji.
  2. Dwuwarstwowa architektura: Z warstwami podstawowymi i współpracy, MetaGPT efektywnie tworzy synergistyczny ekosystem, w którym agenci mogą współpracować jak zespół inżynierów oprogramowania.
  3. Optymalizacja przeglądu kodu: Poza generowaniem kodu, MetaGPT oferuje wykonywanie przedkompilacji, co jest podstawą wczesnego wykrywania błędów i jakości kodu.
  4. Agenci poznawczy: Agenci MetaGPT, wyposażeni w funkcje poznawcze, takie jak _observe(), _think() i _publish_message(), ewoluują i dostosowują się, zapewniając, że Twoje rozwiązanie oprogramowania nie jest tylko zakodowane, ale “inteligentne”.
  5. Instalacja i wdrożenie: Wyjaśniliśmy, że MetaGPT może być łatwo zainstalowany, niezależnie od tego, czy wolisz lokalną instalację za pomocą npm i Pythona, czy konteneryzację za pomocą Dockera.

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