AGI en toekomstige AI

MetaGPT: Complete Gids voor de Beste AI-Agent die Nu Beschikbaar is

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

Met Large Language Models (LLM’s) zoals ChatGPT heeft OpenAI een toename van de adoptie door bedrijven en gebruikers gezien, en maakt momenteel ongeveer 80 miljoen dollar per maand aan omzet. Volgens een recent rapport van The Information, is het in San Francisco gevestigde bedrijf naar verluidt op koers om 1 miljard dollar aan jaaromzet te behalen.

De vorige keer dat we ons verdiepten in AutoGPT en GPT-Engineering, de eerste mainstream open-source LLM-gebaseerde AI-agents die zijn ontworpen om complexe taken te automatiseren. Hoewel deze systemen veelbelovend waren, hadden ze hun eigen set aan problemen: inconsistentie in de resultaten, prestatiebeperkingen en beperkingen in het omgaan met multifacetteuze eisen. Ze laten vaardigheid zien in codegeneratie, maar hun mogelijkheden houden daar meestal op. Ze missen kritieke projectmanagementfunctionaliteiten zoals PRD-generatie, technisch ontwerpgeneratie en API-interfaceprototyping.

Enter MetaGPT— een multi-agentsysteem dat Large Language-modellen van Sirui Hong combineert met gestandaardiseerde operationele procedures (SOP’s) en LLM-gebaseerde multi-agentsystemen. Deze opkomende paradigma doorbreekt de bestaande beperkingen van LLM’s in het bevorderen van effectieve samenwerking en taakverdeling in complexe, real-worldtoepassingen.

De schoonheid van MetaGPT ligt in zijn structuur. Het maakt gebruik van meta-programmeringstechnieken om code in real-time te manipuleren, analyseren en transformeren. Het doel? Het creëren van een agile, flexibele softwarearchitectuur die zich kan aanpassen aan dynamische programmeertaken.

Agile Development - Metagpt

Agile Development

SOP’s fungeren hier als een meta-functie, die agents coördineert om code te genereren op basis van gedefinieerde invoer. In eenvoudige bewoordingen, het is alsof je een hooggecoördineerd team van software-ingenieurs hebt omgezet in een aanpasbare, intelligente software-systeem.

MetaGPT Framework Begrijpen

Foundational & Collaboration Layers

MetaGPT’s architectuur is verdeeld in twee lagen: de Foundational Components Layer en de Collaboration Layer.

  1. Foundational Components Layer: Deze laag richt zich op individuele agentoperaties en faciliteert systeembrede gegevensuitwisseling. Het introduceert core-bouwstenen zoals Environment, Memory, Roles, Actions en Tools. De Environment creëert een gedeelde werkruimte en communicatiepaden, terwijl Memory fungeert als het historische gegevensarchief. Roles omvatten domeinspecifieke expertise, Actions voeren modulaire taken uit en Tools bieden algemene diensten. Deze laag fungeert als het besturingssysteem voor de agents. Meer details over hoe deze samenwerken, zijn beschikbaar in het artikel ‘Beyond ChatGPT; AI Agent: A New World of Workers
  2. Collaboration Layer: Gebouwd op de fundamenten van de Foundational Components Layer, beheert en stroomlijnt deze laag de samenwerkingsinspanningen van individuele agents. Het introduceert twee mechanismen: Knowledge Sharing en Encapsulating Workflows.
    • Knowledge Sharing: Dit fungeert als het collaboratieve lijm dat agents samenbindt. Agents kunnen informatie opslaan, ophalen en delen op verschillende niveaus, waardoor redundantie wordt verminderd en operationele efficiëntie wordt verbeterd.
    • Encapsulating Workflows: Dit is waar Standardized Operating Procedures (SOP’s) een rol spelen. SOP’s fungeren als blauwdrukken die taken in beheersbare componenten opdelen. Agents worden deze sub-taken toegewezen en hun prestaties worden afgestemd op gestandaardiseerde uitvoer.

MetaGPT maakt ook gebruik van “Role Definitions” om verschillende gespecialiseerde agents te initiëren, zoals Product Managers, Architects, enz. Deze rollen worden gekenmerkt door sleutelkenmerken zoals naam, profiel, doel, beperkingen en beschrijving.

Bovendien biedt “Anchor Agents” rol-specifieke richtlijnen voor deze agents. Bijvoorbeeld, de rol van een Product Manager kan worden geïnitialiseerd met de beperking van “efficiënt een succesvol product creëren”. Anchor agents zorgen ervoor dat het gedrag van agents in overeenstemming is met de overkoepelende doelen, waardoor de prestaties worden geoptimaliseerd.

Cognitive Processes in MetaGPT Agents

MetaGPT kan observeren, denken, reflecteren en handelen. Ze opereren via specifieke gedragsfuncties zoals _think(), _observe(), _publish_message(), enz. Deze cognitieve modellering richt de agents in als actieve leerlingen die kunnen aanpassen en evolueren.

  1. Observeren: Agents scannen hun omgeving en nemen belangrijke gegevens op in hun Memory.
  2. Denken & Reflecteren: Via de _think()-functie, overwegen rollen voordat ze actie ondernemen.
  3. Uitzenden van berichten: Agents gebruiken _publish_message() om de huidige taakstatus en actierecords te delen.
  4. Kennisprecipitatie & Handelen: Agents beoordelen inkomende berichten en updaten hun interne repositories voordat ze beslissen over de volgende actie.
  5. Statemanagement: Met functies zoals taakvergrendeling en statusupdaten, kunnen rollen meerdere acties sequentieel verwerken zonder onderbreking, waardoor ze menselijke samenwerking nabootsen.

Code-Review Mechanismen voor MetaGPT

Code-review is een kritisch onderdeel in de software-ontwikkelingslevenscyclus, maar het ontbreekt in verschillende populaire frameworks. Zowel MetaGPT als AgentVerse ondersteunen code-reviewmogelijkheden, maar MetaGPT gaat een stap verder. Het omvat ook precompilatie-uitvoering, waardoor vroegtijdige foutdetectie wordt ondersteund en de codekwaliteit wordt verhoogd. Gezien de iteratieve aard van codering, is deze functie niet alleen een toevoeging, maar een vereiste voor elk volwassen ontwikkelingsframework.

Kwantitatieve experimenten die zijn uitgevoerd over verschillende taken, hebben aangetoond dat MetaGPT zijn tegenhangers in bijna elk scenario overtrof. Pass@1 is een maatstaf voor de mogelijkheid van het framework om accurate code in één iteratie te genereren. Deze maatstaf biedt een realistischer reflectie van de bruikbaarheid van een framework in een praktische setting. Een hogere Pass@1-snelheid betekent minder debuggen en meer efficiëntie, wat rechtstreeks de ontwikkelingscycli en -kosten beïnvloedt. Wanneer het wordt gestapeld tegen andere geavanceerde codegeneratietools zoals CodeX, CodeT en zelfs GPT-4, overtroeft MetaGPT ze allemaal. Het frameworks vermogen om een Pass@1-snelheid van 81,7% tot 82,3% te bereiken op HumanEval en MBPP-benchmarks.

Vergelijking van MBPP- en HumanEval-metrics tussen MetaGPT en andere toonaangevende modellen (https://arxiv.org/pdf/2308.00352.pdf)

Vergelijking van MBPP- en HumanEval-metrics tussen MetaGPT en andere toonaangevende modellen (https://arxiv.org/pdf/2308.00352.pdf)

Het framework gebruikt ook minder tokens en computationele resources, waardoor het een hoog succespercentage bereikt tegen een fractie van de traditionele software-ontwikkelingskosten. De gegevens gaven een gemiddelde kosten van slechts $1,09 per project met MetaGPT, wat slechts een fractie is van wat een ontwikkelaar zou berekenen voor dezelfde taak.

Stappen voor het Lokale Installeren van MetaGPT op uw Systeem

NPM, Python Installatie

  1. Controleer & Installeer NPM: Eerst en vooral, zorg ervoor dat NPM op uw systeem is geïnstalleerd. Als het niet is geïnstalleerd, moet u node.js installeren. Om te controleren of u NPM heeft, voert u de volgende opdracht uit in uw terminal: npm --version. Als u een versienummer ziet, bent u klaar om verder te gaan.
  2. Om mermaid-js te installeren, een afhankelijkheid voor MetaGPT, voert u de volgende opdracht uit: sudo npm install -g @mermaid-js/mermaid-cli of npm install -g @mermaid-js/mermaid-cli
  3. Controleer de Python-versie: Zorg ervoor dat u Python 3.9 of hoger heeft. Om uw Python-versie te controleren, opent u uw terminal en typt u: python --version. Als u niet up-to-date bent, downloadt u de laatste versie van de Python-officiële website.
  4. Kloon de MetaGPT-repository: Start door de MetaGPT-GitHub-repository te klonen met de volgende opdracht: git clone https://github.com/geekan/metagpt. Zorg ervoor dat u Git op uw systeem heeft geïnstalleerd voor deze stap. Als u Git nog niet heeft geïnstalleerd, bezoekt u hier.
  5. Navigeer naar de Directory: Zodra u de repository heeft gekloond, navigeert u naar de MetaGPT-directory met de volgende opdracht: cd metagpt.
  6. Installatie: Voert de Python-opzetscript uit om MetaGPT te installeren met de volgende opdracht: python setup.py install.
  7. Maak een toepassing: Voer python startup.py "ENTER-PROMPT" --code_review True uit

Opmerking:

  • Uw nieuwe project moet nu in de workspace/-directory staan.
  • --code_review True zal de GPT-model toelaten om extra bewerkingen uit te voeren, waardoor de code nauwkeurig zal worden uitgevoerd, maar houd er rekening mee dat dit meer zal kosten.
  • Als u een toestemmingfout tegenkomt tijdens de installatie, probeert u python setup.py install --user als alternatief.
  • Voor toegang tot specifieke releases en meer details, bezoekt u de officiële MetaGPT-GitHub-releases-pagina: MetaGPT-releases.

Docker Installatie

Voor diegenen die containerisatie prefereren, vereenvoudigt Docker het proces:

  • Trek de Docker-afbeelding: Download de officiële MetaGPT-afbeelding en bereid de configuratiebestand voor:
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
  • Voer de MetaGPT-container uit: Voer de container uit met de volgende opdracht:
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 "Maak een eenvoudig en interactief CLI-gebaseerd steen, papier en schaar-spel" --code_review True

MetaGPT Configureren met uw OpenAI API-sleutel

Na de initiële installatie, moet u MetaGPT integreren met uw OpenAI API-sleutel. Hier zijn de stappen om dit te doen:

  1. Vind of genereer uw OpenAI-sleutel: U kunt deze sleutel vinden in uw OpenAI-dashboard onder API-instellingen.
  2. Stel de API-sleutel in: U heeft de optie om de API-sleutel in config/key.yaml, config/config.yaml of als omgevingsvariabele (env) te plaatsen. De volgorde van voorkeur is config/key.yaml > config/config.yaml > env.
  3. Om de sleutel in te stellen, navigeert u naar config/key.yaml en vervangt u de placeholder-tekst met uw OpenAI-sleutel: OPENAI_API_KEY: "sk-..."

Onthoud om uw OpenAI API-sleutel te beschermen. Deel deze nooit met ongeautoriseerde personen of commit deze nooit naar een openbare repository.

Gebruiksvoorbeeld

Ik gaf de opdracht om een CLI-gebaseerd steen, papier en schaar-spel te ontwikkelen, en MetaGPT voerde deze taak succesvol uit.

Hieronder vindt u een video die de daadwerkelijke uitvoering van de gegenereerde spelcode laat zien.

MetaGPT Demo Run

MetaGPT leverde een systeemontwerpdossier in Markdown, een veelgebruikte lichtgewicht-opmaaktaal. Dit Markdown-bestand was vol met UML-diagrammen, waardoor een gedetailleerd overzicht van de architectonische blauwdruk werd geboden. Bovendien werden API-specificaties gedetailleerd met HTTP-methoden, eindpunten, aanvraag-/antwoordobjecten en statuscodes

MetaGPT-uitvoer - Systeemontwerp Markdown

MetaGPT-uitvoer – Systeemontwerp Markdown

De klassendiagram toont de attributen en methoden van onze Game-klasse, waardoor een abstractie ontstaat die gemakkelijk te begrijpen is. Het visualiseert zelfs de oproepstroom van het programma, waardoor abstracte ideeën worden omgezet in concrete stappen.

Dit vermindert niet alleen de handmatige overhead in de planning, maar versnelt ook het beslissingsproces, waardoor uw ontwikkelingspijplijn agile blijft. Met MetaGPT automatiseert u niet alleen codegeneratie, maar ook intelligent projectplanning, waardoor u een concurrentievoordeel krijgt in snelle applicatieontwikkeling.

Conclusie: MetaGPT—Revolutionerend Software-ontwikkeling

MetaGPT herdefinieert het landschap van generatieve AI en software-ontwikkeling, door een naadloze combinatie van intelligente automatisering en agile projectmanagement te bieden. Het gaat verder dan de mogelijkheden van ChatGPT, AutoGPT en traditionele LangChain-modellen, en excelleert in taakverdeling, efficiënte codegeneratie en projectplanning. Leer meer over

Hier zijn de belangrijkste punten uit dit artikel:

  1. Het Vermogen van Meta-Programmering: Door meta-programmering te gebruiken, biedt MetaGPT een agile en adaptieve software-framework. Het gaat verder dan de beperkte functionaliteit van legacy-tools en introduceert een transformatieve aanpak die niet alleen codering, maar ook projectmanagement en beslissingsaspecten omvat.
  2. Tweelaags Architectuur: Met zijn fundamenten- en collaboratielagen creëert MetaGPT een synergetisch ecosysteem waarin agents samenwerken, net als een deskundig beheerd softwareteam.
  3. Geoptimaliseerde Code-Review: MetaGPT biedt niet alleen codegeneratie, maar ook precompilatie-uitvoering, waardoor vroegtijdige foutdetectie wordt ondersteund en de codekwaliteit wordt verhoogd.
  4. Cognitieve Agents: MetaGPT’s intelligente agents, die zijn uitgerust met cognitieve functies zoals _observe(), _think() en _publish_message(), evolueren en passen zich aan, waardoor uw software-oplossing niet alleen wordt gecodeerd, maar ook ‘intelligent’ wordt.
  5. Installatie & Implementatie: We hebben aangetoond dat MetaGPT gemakkelijk kan worden geïnstalleerd, ofwel lokaal via NPM en Python, ofwel via containerisatie met Docker.

Ik heb de afgelopen vijf jaar doorgebracht met het onderdompelen van mezelf in de fascinerende wereld van Machine Learning en Deep Learning. Mijn passie en expertise hebben me geleid om bij te dragen aan meer dan 50 diverse software-engineeringprojecten, met een bijzondere focus op AI/ML. Mijn voortdurende nieuwsgierigheid heeft me ook aangetrokken tot Natural Language Processing, een vakgebied dat ik graag verder wil verkennen.