AGI und Zukunft der KI

MetaGPT: Vollständiger Leitfaden zum besten verfügbaren KI-Agenten

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufügen

Mit Large Language Models (LLMs) wie ChatGPT hat OpenAI einen Anstieg der Unternehmens- und Benutzernutzung erlebt und erwirtschaftet derzeit etwa 80 Millionen US-Dollar an monatlichen Umsätzen. Laut einem jüngsten Berichts von The Information ist das in San Francisco ansässige Unternehmen angeblich auf dem Weg, einen Jahresumsatz von 1 Milliarde US-Dollar zu erzielen.

Beim letzten Mal, als wir uns mit AutoGPT und GPT-Engineering beschäftigten, handelte es sich um die ersten Mainstream-Open-Source-LLM-basierten KI-Agents, die für die Automatisierung komplexer Aufgaben konzipiert waren. Diese Systeme hatten jedoch ihre eigenen Probleme: inkonsistente Ergebnisse, Leistungsbottlenecks und Einschränkungen bei der Bewältigung vielschichtiger Anforderungen. Sie zeigen eine gewisse Kompetenz bei der Code-Generierung, aber ihre Fähigkeiten hören oft dort auf. Ihnen fehlen kritische Projektmanagement-Funktionen wie PRD-Generierung, technische Design-Generierung und API-Schnittstellen-Prototyping.

Treten Sie in MetaGPT ein – ein Multi-Agenten-System, das Large Language-Modelle von Sirui Hong mit standardisierten Betriebsverfahren (SOPs) und LLM-basierten Multi-Agenten-Systemen kombiniert. Dieses aufkommende Paradigma durchbricht die bestehenden Einschränkungen von LLMs bei der Förderung effektiver Zusammenarbeit und Aufgabenzerlegung in komplexen, realen Anwendungen.

Die Schönheit von MetaGPT liegt in seiner Struktur. Es nutzt Meta-Programmier-Techniken, um Code in Echtzeit zu manipulieren, zu analysieren und zu transformieren. Das Ziel? Eine agile, flexible Software-Architektur zu verwirklichen, die sich an dynamische Programmieraufgaben anpassen kann.

Agile Entwicklung - Metagpt

Agile Entwicklung

SOPs fungieren hier als Meta-Funktion, indem sie Agenten koordinieren, um Code basierend auf definierten Eingaben automatisch zu generieren. In einfachen Worten: Es ist, als ob Sie ein hoch koordiniertes Team von Software-Entwicklern in ein adaptives, intelligentes Softwaresystem umgewandelt hätten.

Verständnis des MetaGPT-Frameworks

Grundlegende und Kollaborations-Schichten

Die Architektur von MetaGPT ist in zwei Schichten unterteilt: die Schicht der grundlegenden Komponenten und die Kollaborations-Schicht.

  1. Grundlegende Komponenten-Schicht: Diese Schicht konzentriert sich auf die individuellen Agenten-Operationen und ermöglicht den systemweiten Informationsaustausch. Sie führt Kernbausteine wie Umgebung, Speicher, Rollen, Aktionen und Werkzeuge ein. Die Umgebung legt die Grundlage für gemeinsame Arbeitsbereiche und Kommunikationswege fest, während der Speicher als historische Datenarchiv dient. Rollen umfassen domänenspezifische Expertise, Aktionen führen modulare Aufgaben aus und Werkzeuge bieten gemeinsame Dienste. Diese Schicht dient im Wesentlichen als Betriebssystem für die Agenten. Weitere Details dazu, wie diese zusammenarbeiten, finden Sie im Artikel ‘Beyond ChatGPT; AI-Agent: Eine neue Welt von Arbeitern
  2. Kollaborations-Schicht: Aufbauend auf den grundlegenden Komponenten verwaltet und strukturiert diese Schicht die gemeinsamen Bemühungen der einzelnen Agenten. Sie führt zwei Mechanismen ein: Wissensaustausch und Arbeitsabläufe.

MetaGPT verwendet auch “Rollen-Definitionen“, um verschiedene spezialisierte Agenten wie Produktmanager, Architekten usw. zu initiieren. Diese Rollen sind durch Schlüsselattribute wie Name, Profil, Ziel, Einschränkungen und Beschreibung gekennzeichnet.

Darüber hinaus bietet “Anker-Agenten” rollenspezifische Anleitung für diese Agenten. Beispielsweise kann die Rolle eines Produktmanagers mit der Einschränkung “effiziente Erstellung eines erfolgreichen Produkts” initialisiert werden. Anker-Agenten stellen sicher, dass das Verhalten der Agenten mit den übergeordneten Zielen übereinstimmt und somit die Leistung optimiert.

Kognitive Prozesse in MetaGPT-Agenten

MetaGPT kann beobachten, denken, reflektieren und handeln. Sie arbeiten durch spezifische Verhaltensfunktionen wie _think(), _observe(), _publish_message() usw. Diese kognitive Modellierung ermöglicht es den Agenten, aktive Lerner zu sein, die sich anpassen und evolvieren können.

  1. Beobachten: Agenten scannen ihre Umgebung und integrieren wichtige Daten in ihre Speicher.
  2. Denken und Reflektieren: Durch die _think()-Funktion beraten sich die Rollen, bevor sie Aktionen ausführen.
  3. Nachrichten senden: Agenten verwenden _publish_message(), um den aktuellen Aufgabenstatus und damit verbundene Aktionsaufzeichnungen zu teilen.
  4. Wissenspräzipation und Handeln: Agenten bewerten eingehende Nachrichten und aktualisieren ihre internen Repositorien, bevor sie den nächsten Kurs der Aktion bestimmen.
  5. Zustandsverwaltung: Mit Funktionen wie Aufgabenverriegelung und Statusaktualisierung können Rollen mehrere Aktionen sequentiell ohne Unterbrechung verarbeiten, was der menschlichen Zusammenarbeit in der realen Welt entspricht.

Code-Review-Mechanismen für MetaGPT

Code-Review ist ein kritischer Bestandteil des Software-Entwicklungslebenszyklus, aber es fehlt in mehreren beliebten Frameworks. Sowohl MetaGPT als auch AgentVerse unterstützen Code-Review-Funktionen, aber MetaGPT geht einen Schritt weiter. Es integriert auch die vorherige Ausführung, die bei der frühzeitigen Fehlererkennung hilft und somit die Code-Qualität erhöht. Angesichts der iterativen Natur der Codierung ist diese Funktion nicht nur ein Add-on, sondern eine Anforderung für jedes mature Entwicklungsframework.

Quantitative Experimente, die über mehrere Aufgaben durchgeführt wurden, zeigten, dass MetaGPT seine Konkurrenten in fast jedem Szenario übertraf. Pass@1 ist ein Maß für die Fähigkeit des Frameworks, genauen Code in einer einzigen Iteration zu generieren. Diese Metrik bietet eine realistischere Reflexion der Nützlichkeit eines Frameworks in einem praktischen Umfeld. Ein höherer Pass@1-Wert bedeutet weniger Debugging und mehr Effizienz, was sich direkt auf die Entwicklungszyklen und -kosten auswirkt. Wenn es mit anderen fortschrittlichen Code-Generierungstools wie CodeX, CodeT und sogar GPT-4 verglichen wird, übertrifft MetaGPT sie alle. Die Fähigkeit des Frameworks, eine 81,7% bis 82,3% Pass@1-Rate auf HumanEval und MBPP Benchmarks zu erreichen.

Vergleich von MBPP- und HumanEval-Metriken zwischen MetaGPT und anderen führenden Modellen (https://arxiv.org/pdf/2308.00352.pdf)

Vergleich von MBPP- und HumanEval-Metriken zwischen MetaGPT und anderen führenden Modellen (https://arxiv.org/pdf/2308.00352.pdf)

Das Framework verwendet auch weniger Token und Rechenressourcen und erreicht eine hohe Erfolgsrate bei einem Bruchteil der traditionellen Software-Entwicklungs-Kosten. Die Daten zeigten einen durchschnittlichen Kosten von nur 1,09 $ pro Projekt mit MetaGPT, was nur ein Bruchteil dessen ist, was ein Entwickler für die gleiche Aufgabe berechnen würde.

Schritte zur lokalen Installation von MetaGPT auf Ihrem System

NPM- und Python-Installation

  1. Überprüfen und Installieren von NPM: Zuerst müssen Sie sicherstellen, dass NPM auf Ihrem System installiert ist. Wenn nicht, müssen Sie node.js installieren. Um zu überprüfen, ob Sie NPM haben, führen Sie den folgenden Befehl in Ihrem Terminal aus: npm --version. Wenn Sie eine Versionsnummer sehen, sind Sie bereit.
  2. Zum Installieren von mermaid-js, einer Abhängigkeit von MetaGPT, führen Sie den folgenden Befehl aus: sudo npm install -g @mermaid-js/mermaid-cli oder npm install -g @mermaid-js/mermaid-cli
  3. Überprüfen der Python-Version: Stellen Sie sicher, dass Sie Python 3.9 oder höher haben. Um Ihre Python-Version zu überprüfen, öffnen Sie Ihr Terminal und geben Sie python --version ein. Wenn Sie nicht auf dem neuesten Stand sind, laden Sie die neueste Version von der offiziellen Python-Website herunter.
  4. Klonen des MetaGPT-Repositorys: Beginnen Sie damit, das MetaGPT-GitHub-Repository mit dem folgenden Befehl zu klonen: git clone https://github.com/geekan/metagpt. Stellen Sie sicher, dass Sie Git auf Ihrem System installiert haben. Wenn nicht, besuchen Sie hier.
  5. Navigieren zum Verzeichnis: Nach dem Klonen navigieren Sie zum MetaGPT-Verzeichnis mit dem folgenden Befehl: cd metagpt.
  6. Installation: Führen Sie das Python-Setup-Skript aus, um MetaGPT mit dem folgenden Befehl zu installieren: python setup.py install.
  7. Erstellen Sie eine Anwendung: Führen Sie python startup.py "ENTER-PROMPT" --code_review True aus

Hinweis:

  • Ihr neues Projekt sollte sich jetzt im workspace/-Verzeichnis befinden.
  • --code_review True ermöglicht es dem GPT-Modell, zusätzliche Operationen auszuführen, die sicherstellen, dass der Code genau ausgeführt wird, aber beachten Sie, dass dies mehr kosten wird.
  • Wenn Sie während der Installation einen Berechtigungsfehler erhalten, versuchen Sie, python setup.py install --user als Alternative auszuführen.
  • Für den Zugriff auf bestimmte Versionen und weitere Details besuchen Sie die offizielle MetaGPT-GitHub-Veröffentlichungsseite: MetaGPT-Veröffentlichungen.

Docker-Installation

Für diejenigen, die Containerisierung bevorzugen, vereinfacht Docker den Prozess:

  • Herunterladen des Docker-Images: Laden Sie das offizielle MetaGPT-Image herunter und bereiten Sie die Konfigurationsdatei vor:
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
  • Ausführen des MetaGPT-Containers: Führen Sie den Container mit dem folgenden Befehl aus:
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 "Erstellen eines einfachen und interaktiven CLI-basierten Stein-Schere-Papier-Spiels" --code_review True

Konfigurieren von MetaGPT mit Ihrem OpenAI-API-Schlüssel

Nach der ersten Einrichtung müssen Sie MetaGPT mit Ihrem OpenAI-API-Schlüssel integrieren. Hier sind die Schritte dazu:

  1. Finden oder Generieren Ihres OpenAI-Schlüssels: Sie können diesen Schlüssel in Ihrem OpenAI-Dashboard unter API-Einstellungen finden.
  2. Setzen des API-Schlüssels: Sie haben die Möglichkeit, den API-Schlüssel in config/key.yaml, config/config.yaml oder als Umgebungsvariable (env) zu setzen. Die Reihenfolge der Vorrangigkeit ist config/key.yaml > config/config.yaml > env.
  3. Um den Schlüssel zu setzen, navigieren Sie zu config/key.yaml und ersetzen Sie den Platzhalter-Text durch Ihren OpenAI-Schlüssel: OPENAI_API_KEY: "sk-..."

Denken Sie daran, Ihren OpenAI-API-Schlüssel sicher zu verwahren. Teilen Sie ihn niemals mit unbefugten Personen oder committen Sie ihn nicht in ein öffentliches Repository.

Anwendungsfall-Illustration

Ich gab das Ziel, ein CLI-basiertes Stein-Schere-Papier-Spiel zu entwickeln, und MetaGPT führte die Aufgabe erfolgreich aus.

Unten finden Sie ein Video, das die tatsächliche Ausführung des generierten Spielcodes zeigt.

MetaGPT-Demo-Lauf

MetaGPT lieferte ein System-Design-Dokument in Markdown – einer weit verbreiteten leichten Markup-Sprache. Dieses Markdown-File war voller UML-Diagramme und bot somit eine detaillierte Ansicht der architektonischen Blueprints. Darüber hinaus wurden API-Spezifikationen mit HTTP-Methoden, Endpunkten, Anforderungs-/Antwort-Objekten und Statuscodes detailliert.

MetaGPT-Ausgabe - System-Design

MetaGPT-Ausgabe – System-Design Markdown

Das Klassendiagramm zeigt die Attribute und Methoden unserer Game-Klasse und bietet eine Abstraktion, die leicht zu verstehen ist. Es visualisiert sogar den Aufruf der Programm-Logik und wandelt somit abstrakte Ideen in greifbare Schritte um.

Dies reduziert nicht nur den manuellen Aufwand bei der Planung, sondern beschleunigt auch den Entscheidungsprozess und stellt sicher, dass Ihre Entwicklungs-Pipeline agil bleibt. Mit MetaGPT automatisieren Sie nicht nur die Code-Generierung, sondern auch die intelligente Projektplanung und bieten somit einen Wettbewerbsvorteil bei der schnellen Anwendungs-Entwicklung.

Zusammenfassung: MetaGPT – Revolutionierung der Software-Entwicklung

MetaGPT definiert die Landschaft der generativen KI und der Software-Entwicklung neu und bietet eine nahtlose Kombination aus intelligenter Automatisierung und agiler Projektverwaltung. Es übertrifft die Fähigkeiten von ChatGPT, AutoGPT und traditionellen LangChain-Modellen und zeichnet sich durch eine hervorragende Aufgabenzerlegung, effiziente Code-Generierung und Projektplanung aus. Erfahren Sie mehr darüber.

Hier sind die wichtigsten Punkte aus diesem Artikel:

  1. Die Macht der Meta-Programmierung: Durch die Verwendung von Meta-Programmierung bietet MetaGPT eine agile und adaptive Software-Architektur. Es durchbricht die engen Funktionen von Legacy-Tools und führt einen transformativen Ansatz ein, der nicht nur die Codierung, sondern auch die Projektverwaltung und Entscheidungsfindung umfasst.
  2. Zwei-Schichten-Architektur: Mit seinen grundlegenden und kollaborativen Schichten schafft MetaGPT ein synergetisches Ökosystem, in dem Agenten zusammenarbeiten können, ähnlich wie ein gut geführtes Software-Team.
  3. Optimiertes Code-Review: MetaGPT bietet nicht nur Code-Generierung, sondern auch vorherige Ausführung, was im Wesentlichen ein Frühwarnsystem für Fehler ist. Dies spart nicht nur Debugging-Zeit, sondern stellt auch die Code-Qualität sicher.
  4. Kognitive Agenten: Die intelligenten Agenten von MetaGPT sind mit kognitiven Funktionen wie _observe(), _think() und _publish_message() ausgestattet und können sich anpassen und evolvieren, um sicherzustellen, dass Ihre Software-Lösung nicht nur codiert, sondern auch “intelligent” ist.
  5. Installation und Bereitstellung: Wir haben gezeigt, dass MetaGPT leicht über NPM und Python oder Containerisierung mit Docker installiert werden kann.

Ich habe die letzten fünf Jahre damit verbracht, mich in die faszinierende Welt des Machine Learning und Deep Learning zu vertiefen. Mein Engagement und meine Expertise haben mich dazu geführt, an über 50 verschiedenen Software-Entwicklungsprojekten mit einem besonderen Fokus auf AI/ML beizutragen. Meine anhaltende Neugier hat mich auch zum Bereich der Natural Language Processing hingezogen, einem Feld, das ich weiter erforschen möchte.