AGI
MetaGPT: Komplett guide till den bästa AI-agenten som finns tillgänglig just nu

Med stora språkmodeller (LLM) som ChatGPT har OpenAI sett en ökning av antalet företags- och användaradopter, och genererar för närvarande cirka 80 miljoner dollar i månatlig omsättning. Enligt en ny rapport från The Information är det San Francisco-baserade företaget på väg att nå 1 miljard dollar i årlig omsättning.
Senast vi gick igenom AutoGPT och GPT-Engineering, de tidiga öppna källkods-baserade LLM-baserade AI-agenterna som är utformade för att automatisera komplexa uppgifter. Medan de var lovande, hade dessa system sina egna problem: inkonsekventa resultat, prestandabottleneck och begränsningar i hantering av multifacetterade krav. De visar kompetens i kodgenerering, men deras förmågor slutar ofta där. De saknar kritiska projekthanteringsfunktioner som PRD-generering, teknisk designgenerering och API-gränssnittsprototyper.
Kom in i MetaGPT — ett multi-agent-system som använder stora språkmodeller av Sirui Hong som kombinerar standardiserade driftsprocedurer (SOP) med LLM-baserade multi-agent-system. Denna nya paradigm rubbar de befintliga begränsningarna för LLM i främjandet av effektivt samarbete och uppgiftsdekomposition i komplexa, verkliga tillämpningar.
Skönheten i MetaGPT ligger i dess struktur. Den kapitaliserar på meta-programmeringstekniker för att manipulera, analysera och omvandla kod i realtid. Målet? Att förverkliga en agil, flexibel programvaruarkitektur som kan anpassa sig till dynamiska programmeringsuppgifter.
SOP fungerar som en meta-funktion här, samordnar agenter för att auto-generera kod baserat på definierade indata. I enkla termer är det som om du har förvandlat ett högt samordnat team av programvaruutvecklare till ett anpassningsbart, intelligent programvarusystem.
Att förstå MetaGPT-ramverket

MetaGPT-ramverk (https://arxiv.org/pdf/2308.00352.pdf)
Grundläggande och samarbetslager
MetaGPT:s arkitektur är uppdelad i två lager: det grundläggande komponentlagret och samarbetslagret.
- Grundläggande komponentlager: Detta lager fokuserar på enskilda agentoperationer och underlättar systemomfattande informationsutbyte. Det introducerar kärnbyggstenar som Miljö, Minne, Roller, Åtgärder och Verktyg. Miljön sätter scenen för delade arbetsytor och kommunikationsvägar, medan Minne fungerar som det historiska dataarkivet. Roller inkapslar domänspecifik expertis, Åtgärder utför modulära uppgifter och Verktyg erbjuder gemensamma tjänster. Detta lager fungerar i princip som operativsystemet för agenterna. Mer information om hur dessa fungerar tillsammans finns i artikeln ‘Beyond ChatGPT; AI Agent: A New World of Workers‘
- Samarbetslager: Byggt ovanpå de grundläggande komponenterna hanterar och strömlinjeformar detta lager de samarbetsinsatserna från enskilda agenter. Det introducerar två mekanismer: Kunskapsdelning och Inkapsling av arbetsflöden.
- Kunskapsdelning: Detta fungerar som det samarbetsglue som binder agenter samman. Agenter kan lagra, hämta och dela information på olika nivåer, vilket reducerar redundans och förbättrar operativ effektivitet.
- Inkapsling av arbetsflöden: Här kommer Standardiserade driftsprocedurer (SOP) in i bilden. SOP fungerar som ritningar som bryter ner uppgifter i hanterbara komponenter. Agenter tilldelas dessa underuppgifter och deras prestationer är anpassade till standardiserade utdata.
MetaGPT använder också “Rolldefinitioner” för att initiera olika specialiserade agenter som Produktchefer, Arkitekter etc. som vi diskuterade ovan. Dessa roller karakteriseras av nyckelattribut som namn, profil, mål, begränsningar och beskrivning.
Ytterligare “Ankaragenter” tillhandahåller rollspecifik vägledning till dessa agenter. Till exempel kan en Produktchefs roll initieras med begränsningen “att effektivt skapa en framgångsrik produkt.” Ankaragenter säkerställer att agenternas beteenden är anpassade till de övergripande målen, vilket optimerar prestandan.
Kognitiva processer i MetaGPT-agenter
MetaGPT kan observera, tänka, reflektera och agera. De opererar genom specifika beteendefunktioner som _think(), _observe(), _publish_message() etc. Denna kognitiva modellering utrustar agenterna med att vara aktiva lärande som kan anpassa sig och utvecklas.
- Observera: Agenter skannar sin miljö och inkorporerar nyckeldata i sitt Minne.
- Tänka och reflektera: Genom
_think()-funktionen överväger roller innan de vidtar åtgärder. - Sända meddelanden: Agenter använde
_publish_message()för att dela aktuella uppgiftsstatus och relaterade åtgärdsregister. - Kunskapsnederbörd och agera: Agenter utvärderar inkommande meddelanden och uppdaterar sina interna lagringsutrymmen innan de beslutar om nästa åtgärd.
- Tillståndshantering: Med funktioner som uppgiftslåsning och statusuppdatering kan roller bearbeta flera åtgärder sekventiellt utan avbrott, vilket speglar mänskligt samarbete.
Kodgranskningsmekanismer för MetaGPT
Kodgranskning är en kritisk komponent i programvaruutvecklingslivscykeln, men den saknas i flera populära ramverk. Både MetaGPT och AgentVerse stöder kodgranskningsfunktioner, men MetaGPT går ett steg längre. Det inkorporerar också förkompileringsexekvering, som hjälper till tidig felupptäckt och höjer därmed kodkvaliteten. Med tanke på den iterativa naturen av kodning är denna funktion inte bara ett tillägg, utan ett krav för alla mogna utvecklingsramverk.
Kvantitativa experiment som utfördes över flera uppgifter visade att MetaGPT överträffade sina motståndare i nästan alla scenarier. Pass@1 är ett mått på ramverkets förmåga att generera korrekt kod i en enda iteration. Denna metric erbjuder en mer realistisk reflektion av ramverkets användbarhet i en praktisk miljö. En högre Pass@1-takt innebär mindre felsökning och mer effektivitet, vilket direkt påverkar utvecklingscykler och kostnader. När det jämförs med andra avancerade kodgenereringsverktyg som CodeX, CodeT och till och med GPT-4, överträffar MetaGPT dem alla. Ramverkets förmåga att uppnå en 81,7% till 82,3% Pass@1-takt på HumanEval och MBPP-benchmark.

Jämförelse av MBPP och HumanEval-mått mellan MetaGPT och andra ledande modeller (https://arxiv.org/pdf/2308.00352.pdf)
Ramverket använder också färre token och beräkningsresurser, och uppnår en hög framgångstakt till en bråkdel av de traditionella programvaruutvecklingskostnaderna. Data indikerade en genomsnittlig kostnad på endast 1,09 dollar per projekt med MetaGPT, vilket är en bråkdel av vad en utvecklare skulle ta betalt för samma uppgift.
Steg för att lokalt installera MetaGPT på din system
NPM, Python-installation
- Kontrollera och installera NPM: Först och främst, se till att NPM är installerat på din system. Om det inte är det, måste du installera node.js. För att kontrollera om du har npm, kör kommandot i din terminal:
npm --version. Om du ser en versionsnummer, är du redo att gå. - För att installera
mermaid-js, en beroende för MetaGPT, kör:sudo npm install -g @mermaid-js/mermaid-cliellernpm install -g @mermaid-js/mermaid-cli - Verifiera Python-version: Se till att du har Python 3.9 eller senare. För att kontrollera din Python-version, öppna din terminal och skriv:
python --version. Om du inte är uppdaterad, ladda ner den senaste versionen från Python officiella webbplats. - Klona MetaGPT-repositoriet: Börja med att klona MetaGPT GitHub-repositoriet med kommandot
git clone https://github.com/geekan/metagpt. Se till att du har Git installerat i ditt system för detta. Om inte, besök här. - Navigera till katalogen: När du har klonat, navigera till MetaGPT-katalogen med kommandot
cd metagpt. - Installation: Kör Python- installations skriptet för att installera MetaGPT med kommandot
python setup.py install. - Skapa ett program: Kör
python startup.py "ANGE-PROMPT" --code_review True
Notera:
- Ditt nya projekt bör nu finnas i
workspace/-katalogen. --code_review Truekommer att tillåta GPT-modellen att utföra extra operationer som kommer att säkerställa att koden körs korrekt, men notera att det kommer att kosta mer.- Om du möter ett behörighetsfel under installationen, försök att köra
python setup.py install --usersom ett alternativ. - För tillgång till specifika versioner och ytterligare information, besök den officiella MetaGPT GitHub-utgåvorna: MetaGPT-utgåvor.
Docker-installation
För de som föredrar containerisering, förenklar Docker processen:
- Hämta Docker-avbildningen: Ladda ner den officiella MetaGPT-avbildningen och förbered konfigurationsfilen:
docker pull metagpt/metagpt:v0.3.1mkdir -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
- Kör MetaGPT-containern: Kör containern med följande kommando:
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 "Skapa ett enkelt och interaktivt CLI-baserat sten, sax och påse-spel" --code_review True
Konfigurera MetaGPT med din OpenAI API-nyckel
Efter den första installationen måste du integrera MetaGPT med din OpenAI API-nyckel. Här är stegen för att göra det:
- Locate eller generera din OpenAI-nyckel: Du kan hitta denna nyckel i din OpenAI-kontrollpanel under API-inställningar.
- Ställ in API-nyckeln: Du har möjlighet att placera API-nyckeln i antingen
config/key.yaml,config/config.yamleller ställa in den som en miljövariabel (env). Företrädesordningen ärconfig/key.yaml > config/config.yaml > env. - För att ställa in nyckeln, navigera till
config/key.yamloch ersätt placeholder-texten med din OpenAI-nyckel:OPENAI_API_KEY: "sk-..."
Kom ihåg att skydda din OpenAI API-nyckel. Dela aldrig den med obehöriga personer eller lägg upp den i en offentlig repository.
Användningsfall-illustration
Jag gav målet att utveckla ett CLI-baserat sten, sax och påse-spel, och MetaGPT utförde uppgiften framgångsrikt.
Här är en video som visar den faktiska körningen av den genererade spelkoden.
MetaGPT-demo
MetaGPT tillhandahöll ett systemdesign-dokument i Markdown — ett vanligt använt lättviktsmärkspråk. Detta Markdown-fil var fullt av UML-diagram, vilket erbjuder en detaljerad vy av den arkitektoniska ritningen. Dessutom var API-specifikationer detaljerade med HTTP-metoder, slutpunkter, begäran/svarsobjekt och statuskoder
Klassdiagrammet detaljerar attributen och metoderna för vår Game-klass, vilket erbjuder en abstraktion som är lätt att förstå. Det visualiserar även anropsflödet för programmet, vilket effektivt omvandlar abstrakta idéer till tangibla steg.
Inte bara minskar detta den manuella överbelastningen i planeringen, utan det accelererar också beslutsprocessen, vilket säkerställer att din utvecklingspipeline förblir agil. Med MetaGPT automatiserar du inte bara kodgenerering, du automatiserar intelligent projekthantering, vilket ger en konkurrensfördel i snabb programvaruutveckling.
Slutsats: MetaGPT — Revolutionerar programvaruutveckling
MetaGPT omdefinierar landskapet för generativ AI och programvaruutveckling, och erbjuder en smidig blandning av intelligent automatisering och agil projekthantering. Långt överträffande förmågan hos ChatGPT, AutoGPT och traditionella LangChain-modeller, den excellerar i uppgiftsdekomposition, effektiv kodgenerering och projekthantering. Lär dig mer om
Här är de viktigaste slutsatserna från denna artikel:
- Kraften i meta-programmering: Genom att använda meta-programmering, erbjuder MetaGPT en agil och anpassningsbar programvaruarkitektur. Den transcenderar den smala funktionaliteten hos äldre verktyg och introducerar en transformerande approach som hanterar inte bara kodning, utan också projekthantering och beslutsfattande aspekter.
- Två-lagers arkitektur: Med sina grundläggande och samarbetslager, skapar MetaGPT effektivt en synergistisk ekosystem där agenter kan arbeta samordnat, liknande ett expertledande programvaruteam.
- Optimerad kodgranskning: Utöver att generera kod, erbjuder MetaGPT förkompileringsexekveringsfunktioner, vilket i princip är ett tidigt varningssystem för fel. Detta inte bara sparar felsöknings tid, utan säkerställer också kodkvalitet.
- Kognitiva agenter: MetaGPT:s intelligenta agenter, fullständiga med kognitiva funktioner som
_observe(),_think()och_publish_message(), utvecklas och anpassar sig, vilket säkerställer att din programvarulösning inte bara är kodad, utan är “intelligent”. - Installation och distribution: Vi har illustrerat att MetaGPT kan installeras lokalt, antingen via npm och Python, eller containeriseras via Docker.















