AGI och framtidens AI

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

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Med stora språkmodeller (LLM) som ChatGPT har OpenAI sett en ökning av antalet företags- och användaradopter, och omsätter för närvarande cirka 80 miljoner dollar i månadsintäkter. Enligt en nylig rapport från The Information är det San Francisco-baserade företaget på väg att nå 1 miljard dollar i årsomsättning.

Förra gången vi gick in på AutoGPT och GPT-Engineering, de tidiga mainstream-öppen källkods-LLM-baserade AI-agenterna som är utformade för att automatisera komplexa uppgifter. Dessa system hade 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 projektledningsfunktioner som PRD-generering, teknisk designgenerering och API-gränssnittsprototyper.

Stig in i MetaGPT – ett multiagent-system som använder stora språkmodeller av Sirui Hong som kombinerar standardiserade driftsprocesser (SOP) med LLM-baserade multiagent-system. Denna framväxande paradigm rubbar de befintliga begränsningarna för LLM i främjandet av effektivt samarbete och uppgiftsdekomposition i komplexa, realvärldstillämpningar.

Skönheten i MetaGPT ligger i dess struktur. Den utnyttjar 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.

Agil utveckling - Metagpt

Agil utveckling

SOP fungerar som en metafunktion här, som 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

Grundläggande och samarbetslager

MetaGPT:s arkitektur är indelad i två lager: det grundläggande komponentlagret och samarbetslagret.

  1. Grundläggande komponentlager: Detta lager fokuserar på enskilda agentoperationer och underlättar systemomfattande informationsutbyte. Det introducerar grundläggande byggblock som Miljö, Minne, Roller, Åtgärder och Verktyg. Miljön skapar 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 operativsystem för agenterna. Mer information om hur dessa fungerar tillsammans finns i artikeln ‘Beyond ChatGPT; AI Agent: A New World of Workers
  2. 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 minskar redundans och förbättrar driftseffektiviteten.
    • Inkapsling av arbetsflöden: Detta är där Standardiserade driftsprocesser (SOP) kommer 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 Product Managers, Architects etc. som vi diskuterade ovan. Dessa roller karakteriseras av nyckelattribut som namn, profil, mål, begränsningar och beskrivning.

Dessutom “Ankaragenter” ger rollspecifik vägledning till dessa agenter. Till exempel kan en Product Managers 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 fungerar 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.

  1. Observera: Agenter skannar sin miljö och inkorporerar nyckeldata i sin Minne.
  2. Tänka & Reflektera: Genom _think()-funktionen, roller överväger innan de utför åtgärder.
  3. Sända meddelanden: Agenter använder _publish_message() för att dela aktuella uppgiftsstatus och relaterade åtgärdsrekord.
  4. Kunskapsprecipitation & Agera: Agenter utvärderar inkommande meddelanden och uppdaterar sina interna repository innan de beslutar om nästa åtgärd.
  5. Tillståndshantering: Med funktioner som uppgiftslåsning och statusuppdatering kan roller bearbeta flera åtgärder sekventiellt utan avbrott, vilket speglar samarbete i verkligheten.

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 förbättrar kodkvalitet. 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 genomfö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 inställning. En högre Pass@1-takt innebär mindre felsökning och mer effektivitet, vilket direkt påverkar utvecklingscykler och kostnader. När den 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)

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ångsgrad till en bråkdel av traditionella programvarukostnader. 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 installera MetaGPT lokalt på din system

NPM, Python-installation

  1. 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 npm --version i din terminal. Om du ser en versionsnummer, är du redo att gå.
  2. För att installera mermaid-js, en beroende för MetaGPT, kör: sudo npm install -g @mermaid-js/mermaid-cli eller npm install -g @mermaid-js/mermaid-cli
  3. Verifiera Python-version: Se till att du har Python 3.9 eller högre. 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.
  4. 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.
  5. Navigera till katalogen: När du har klonat, navigera till MetaGPT-katalogen med kommandot cd metagpt.
  6. Installation: Kör Python-installationsskriptet för att installera MetaGPT med kommandot python setup.py install.
  7. Skapa ett program: Kör python startup.py "ENTER-PROMPT" --code_review True

Obs:

  • Ditt nya projekt bör nu finnas i workspace/-katalogen.
  • --code_review True kommer att tillåta GPT-modellen att utföra extra operationer som säkerställer att koden körs korrekt, men observera 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 --user som ett alternativ.
  • För tillgång till specifika versioner och mer information, besök MetaGPT GitHub-releases-sidan: MetaGPT Releases.

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.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
  • Kör MetaGPT-container: 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:

  1. Hitta eller generera din OpenAI-nyckel: Du kan hitta denna nyckel i din OpenAI-kontrollpanel under API-inställningar.
  2. Ange API-nyckeln: Du har möjlighet att placera API-nyckeln i antingen config/key.yaml, config/config.yaml eller ange den som en miljövariabel (env). Företrädesordningen är config/key.yaml > config/config.yaml > env.
  3. För att ange nyckeln, navigera till config/key.yaml och 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 kommitt den till en offentlig repository.

Användningsexempel

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 Demokörning

MetaGPT tillhandahöll ett systemdesign-dokument i Markdown – ett vanligt använt lätt markup-språk. Detta Markdown-fil var fullt av UML-diagram, vilket gav en detaljerad vy av den arkitektoniska ritningen. Dessutom var API-specifikationer detaljerade med HTTP-metoder, slutpunkter, begäran/svar-objekt och statuskoder

MetaGPT-utdata - Systemdesign Markdown

MetaGPT-utdata – Systemdesign Markdown

Klassdiagrammet visar attribut och metoder för vår Game-klass, vilket ger en abstraktion som är lätt att förstå. Det visualiserar även anropsflödet för programmet, vilket effektivt omvandlar abstrakta idéer till konkreta 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, utan också intelligent projektplanering, 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 kombination av intelligent automatisering och agil projektledning. Långt bortom förmågan hos ChatGPT, AutoGPT och traditionella LangChain-modeller, överträffar den i uppgiftsdekomposition, effektiv kodgenerering och projektplanering. Lär dig mer om

Här är de viktigaste slutsatserna från den här artikeln:

  1. Kraften i meta-programmering: Genom att använda meta-programmering, erbjuder MetaGPT en agil och anpassningsbar programvaruarkitektur. Den överträffar den smala funktionaliteten hos äldre verktyg och introducerar en omvandlande strategi som hanterar inte bara kodning, utan också projektledning och beslutsfattande aspekter.
  2. Två-lagersarkitektur: Med sina grundläggande och samarbetslager skapar MetaGPT effektivt en synergistisk ekosystem där agenter kan arbeta samfällt, liknande ett expertledt programvaruteam.
  3. Optimerad kodgranskning: Utöver att bara generera kod, erbjuder MetaGPT förkompileringsexekveringsfunktioner, vilket i princip är ett tidigt varningssystem för fel. Detta sparar inte bara felsökningstid, utan säkerställer också kodkvalitet.
  4. Kognitiva agenter: MetaGPT:s intelligenta agenter, fulla av 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 också “intelligent”.
  5. Installation och distribution: Vi har visat att MetaGPT kan installeras lokalt via npm och Python, eller containeriseras via Docker.

Jag har tillbringat de senaste fem åren med att dyka djupt in i den fascinerande världen av Maskinlärning och Djupinlärning. Min passion och expertis har lett mig till att bidra till över 50 olika mjukvaruprojekt, med särskild fokus på AI/ML. Min pågående nyfikenhet har också lett mig mot Naturlig Språkbehandling, ett område som jag är angelägen om att utforska vidare.