IAG et IA du futur

MetaGPT : Guide Complet du Meilleur Agent IA Disponible Actuellement

mm
Ajouter Unite.AI à vos sources préférées sur Google

Avec les Modèles de Langage à Grande Échelle (LLM) tels que ChatGPT, OpenAI a connu un essor dans l’adoption d’entreprise et d’utilisateur, générant actuellement environ 80 millions de dollars de revenus mensuels. Selon un rapport récent de The Information, la société basée à San Francisco est reportedly sur la voie de atteindre 1 milliard de dollars de revenus annuels.

Dernièrement, nous avons exploré AutoGPT et GPT-Engineering, les premiers agents IA open-source basés sur LLM conçus pour automatiser des tâches complexes. Bien que prometteurs, ces systèmes avaient leurs propres problèmes : résultats inconsistants, goulets d’étranglement de performance et limitations dans la gestion de demandes multifacettes. Ils montrent une compétence dans la génération de code, mais leurs capacités s’arrêtent souvent là. Ils manquent de fonctionnalités de gestion de projet critiques comme la génération de PRD, la génération de conception technique et la prototypage d’interface API.

Entrez MetaGPT — un système multi-agent qui utilise des modèles de langage à grande échelle par Sirui Hong qui combine des procédures opérationnelles standardisées (SOP) avec des systèmes multi-agents basés sur LLM. Ce paradigme émergent perturbe les limitations existantes des LLM dans la promotion d’une collaboration efficace et d’une décomposition de tâches dans des applications complexes et réelles.

La beauté de MetaGPT réside dans sa structure. Il capitalise sur des techniques de méta-programmation pour manipuler, analyser et transformer le code en temps réel. L’objectif ? Réaliser une architecture logicielle agile et flexible qui peut s’adapter à des tâches de programmation dynamiques.

Développement Agile - Metagpt

Développement Agile

Les SOP agissent comme une méta-fonction ici, coordonnant les agents pour auto-générer du code en fonction de saisies définies. En termes simples, c’est comme si vous aviez transformé une équipe de logiciels hautement coordonnée en un système logiciel intelligent et adaptable.

Comprendre le Cadre MetaGPT

Couches Fondationnelles et de Collaboration

L’architecture de MetaGPT est divisée en deux couches : la couche de composants fondamentaux et la couche de collaboration.

  1. Couche de Composants Fondamentaux : Cette couche se concentre sur les opérations d’agent individuelles et facilite les échanges d’informations à l’échelle du système. Elle introduit des blocs de construction essentiels tels que l’Environnement, la Mémoire, les Rôles, les Actions et les Outils. L’Environnement définit le cadre pour les espaces de travail partagés et les voies de communication, tandis que la Mémoire sert d’archive de données historiques. Les Rôles encapsulent l’expertise spécifique au domaine, les Actions exécutent des tâches modulaires, et les Outils offrent des services communs. Cette couche sert essentiellement de système d’exploitation pour les agents. Plus de détails sur la façon dont ils travaillent ensemble sont disponibles dans l’article ‘Beyond ChatGPT; AI Agent : Un Nouveau Monde de Travailleurs
  2. Couche de Collaboration : Construite sur les composants fondamentaux, cette couche gère et rationalise les efforts collaboratifs des agents individuels. Elle introduit deux mécanismes : le Partage de Connaissances et l’Encapsulation de Flux de Travail.
    • Partage de Connaissances : Ceci agit comme la colle collaborative qui lie les agents ensemble. Les agents peuvent stocker, récupérer et partager des informations à différents niveaux, réduisant ainsi la redondance et améliorant l’efficacité opérationnelle.
    • Encapsulation de Flux de Travail : C’est là que les Procédures Opérationnelles Standardisées (SOP) entrent en jeu. Les SOP agissent comme des plans directeurs qui décomposent les tâches en composants gérables. Les agents sont assignés à ces sous-tâches, et leur performance est alignée sur des sorties standardisées.

MetaGPT utilise également des “Définitions de Rôles” pour initier divers agents spécialisés tels que les gestionnaires de produits, les architectes, etc. comme nous l’avons discuté plus haut. Ces rôles sont caractérisés par des attributs clés tels que le nom, le profil, l’objectif, les contraintes et la description.

De plus, les “Agents Ancres” fournissent des conseils spécifiques aux rôles à ces agents. Par exemple, le rôle d’un gestionnaire de produits pourrait être initialisé avec la contrainte de “créer efficacement un produit réussi”. Les agents ancre assurent que les comportements des agents s’alignent sur les objectifs globaux, optimisant ainsi les performances.

Processus Cognitifs dans les Agents MetaGPT

MetaGPT peut observer, réfléchir, penser et agir. Ils opèrent à travers des fonctions comportementales spécifiques comme _think(), _observe(), _publish_message(), etc. Ce modèle cognitif équipe les agents pour être des apprenants actifs qui peuvent s’adapter et évoluer.

  1. Observer : Les agents analysent leur environnement et incorporent des données clés dans leur Mémoire.
  2. Réfléchir et Penser : À travers la fonction _think(), les rôles délibèrent avant d’entreprendre des actions.
  3. Diffuser des Messages : Les agents utilisent _publish_message() pour partager les statuts actuels des tâches et les enregistrements d’actions associés.
  4. Précipitation des Connaissances et Agir : Les agents évaluent les messages entrants et mettent à jour leurs référentiels internes avant de décider du prochain plan d’action.
  5. Gestion d’État : Avec des fonctionnalités telles que le verrouillage de tâches et la mise à jour de statut, les rôles peuvent traiter plusieurs actions de manière séquentielle sans interruption, mirroring la collaboration humaine dans le monde réel.

Mécanismes de Révision de Code pour MetaGPT

La révision de code est un composant critique dans le cycle de vie du développement logiciel, mais elle est absente dans plusieurs cadres populaires. MetaGPT et AgentVerse prennent en charge les capacités de révision de code, mais MetaGPT va plus loin. Il intègre également l’exécution précompilation, qui aide à la détection précoce des erreurs et améliore ainsi la qualité du code. Étant donné la nature itérative de la programmation, cette fonctionnalité n’est pas seulement un ajout, mais une exigence pour tout cadre de développement mature.

Des expériences quantitatives menées sur plusieurs tâches ont révélé que MetaGPT a surpassé ses homologues dans presque tous les scénarios. Pass@1 est une mesure de la capacité du cadre à générer du code précis en une seule itération. Cette métrique offre une réflexion plus réaliste de l’utilité d’un cadre dans un contexte pratique. Un taux Pass@1 plus élevé signifie moins de débogage et plus d’efficacité, impactant directement les cycles de développement et les coûts. Lorsqu’il est comparé à d’autres outils avancés de génération de code tels que CodeX, CodeT, et même GPT-4, MetaGPT surpasse tous. La capacité du cadre à atteindre un taux Pass@1 de 81,7% à 82,3% sur les benchmarks HumanEval et MBPP.

Comparaison des métriques MBPP et HumanEval entre MetaGPT et les principaux modèles (https://arxiv.org/pdf/2308.00352.pdf)

Comparaison des métriques MBPP et HumanEval entre MetaGPT et les principaux modèles (https://arxiv.org/pdf/2308.00352.pdf)

Le cadre utilise également moins de jetons et de ressources computationnelles, atteignant un taux de réussite élevé à une fraction des coûts traditionnels de génie logiciel. Les données ont indiqué un coût moyen de seulement 1,09 $ par projet avec MetaGPT, soit une fraction de ce que un développeur facturerait pour la même tâche.

Étapes pour Installer MetaGPT sur Votre Système en Local

Installation NPM, Python

  1. Vérifiez et Installez NPM : Tout d’abord, assurez-vous que NPM est installé sur votre système. Si ce n’est pas le cas, vous devrez installer node.js. Pour vérifier si vous avez npm, exécutez cette commande dans votre terminal : npm --version. Si vous voyez un numéro de version, vous êtes prêt.
  2. Pour installer mermaid-js, une dépendance pour MetaGPT, exécutez : sudo npm install -g @mermaid-js/mermaid-cli ou npm install -g @mermaid-js/mermaid-cli
  3. Vérifiez la Version de Python : Assurez-vous d’avoir Python 3.9 ou supérieur. Pour vérifier votre version de Python, ouvrez votre terminal et tapez : python --version. Si vous n’êtes pas à jour, téléchargez la dernière version à partir du site officiel de Python.
  4. Clonez le Dépôt MetaGPT : Commencez par cloner le dépôt GitHub de MetaGPT en utilisant la commande git clone https://github.com/geekan/metagpt. Assurez-vous d’avoir Git installé sur votre système pour cela. Si ce n’est pas le cas, visitez ici.
  5. Naviguez vers le Répertoire : Une fois cloné, naviguez vers le répertoire MetaGPT en utilisant la commande cd metagpt.
  6. Installation : Exécutez le script de configuration Python pour installer MetaGPT avec la commande python setup.py install.
  7. Créez une Application : Exécutez python startup.py "ENTREZ-UNE-INVITATION" --code_review True

Remarque :

  • Votre nouveau projet devrait maintenant se trouver dans le répertoire workspace/.
  • --code_review True permettra au modèle GPT d’effectuer des opérations supplémentaires qui assurent que le code s’exécute avec précision, mais notez que cela coûtera plus.
  • Si vous rencontrez une erreur de permission lors de l’installation, essayez d’exécuter python setup.py install --user à la place.
  • Pour accéder à des versions spécifiques et à plus de détails, visitez la page des versions officielles de MetaGPT sur GitHub : Versions MetaGPT.

Installation Docker

Pour ceux qui préfèrent la conteneurisation, Docker simplifie le processus :

  • Tirez l’Image Docker : Téléchargez l’image officielle de MetaGPT et préparez le fichier de configuration :
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
  • Exécutez le Conteneur MetaGPT : Exécutez le conteneur avec la commande suivante :
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 "Créez un jeu de pierre, feuille, ciseaux interactif en ligne de commande" --code_review True

Configurer MetaGPT avec Votre Clé API OpenAI

Après la configuration initiale, vous devrez intégrer MetaGPT avec votre clé API OpenAI. Voici les étapes à suivre :

  1. Localisez ou Générez Votre Clé OpenAI : Vous pouvez trouver cette clé dans votre tableau de bord OpenAI sous les paramètres d’API.
  2. Définissez la Clé API : Vous avez la possibilité de placer la clé API dans soit config/key.yaml, config/config.yaml, soit de la définir comme une variable d’environnement (env). L’ordre de priorité est config/key.yaml > config/config.yaml > env.
  3. Pour définir la clé, naviguez vers config/key.yaml et remplacez le texte de remplacement par votre clé OpenAI : OPENAI_API_KEY: "sk-..."

N’oubliez pas de protéger votre clé API OpenAI. Ne la commitez jamais dans un référentiel public ou ne la partagez avec des personnes non autorisées.

Illustration de Cas d’Utilisation

J’ai donné l’objectif de développer un jeu de pierre, feuille, ciseaux en ligne de commande, et MetaGPT a réussi à exécuter la tâche.

Ci-dessous se trouve une vidéo qui montre l’exécution réelle du code généré.

Démo MetaGPT

MetaGPT a fourni un document de conception de système en Markdown — un langage de balisage léger couramment utilisé. Ce fichier Markdown était rempli de diagrammes UML, offrant ainsi une vue granulaire de la conception architecturale. De plus, les spécifications d’API ont été détaillées avec des méthodes HTTP, des points de terminaison, des objets de requête/réponse et des codes d’état

Sortie MetaGPT - Conception de Système Markdown

Sortie MetaGPT – Conception de Système Markdown

Le diagramme de classe détaille les attributs et les méthodes de notre classe Game, fournissant une abstraction facile à comprendre. Il visualise même le flux d’appel du programme, transformant ainsi des idées abstraites en étapes concrètes.

Non seulement cela réduit considérablement la charge manuelle de planification, mais cela accélère également le processus de prise de décision, garantissant que votre pipeline de développement reste agile. Avec MetaGPT, vous n’automatisez pas seulement la génération de code, vous automatez la planification de projet intelligente, offrant ainsi un avantage concurrentiel dans le développement d’applications rapides.

Conclusion : MetaGPT — Révolutionnant le Développement Logiciel

MetaGPT redéfinit le paysage de l’IA générative et du développement logiciel, offrant un mélange fluide d’automatisation intelligente et de gestion de projet agile. Dépassant les capacités de ChatGPT, AutoGPT et des modèles LangChain traditionnels, il excelle dans la décomposition de tâches, la génération de code efficace et la planification de projet. En savoir plus sur

Voici les points clés de cet article :

  1. Le Pouvoir de la Programmation Méta : En utilisant la programmation méta, MetaGPT fournit un cadre logiciel agile et adaptable. Il transcende la fonctionnalité étroite des outils hérités et introduit une approche transformative qui gère non seulement la programmation, mais également les aspects de gestion de projet et de prise de décision.
  2. Architecture à Deux Couches : Avec ses couches fondationnelles et de collaboration, MetaGPT crée efficacement un écosystème synergique où les agents peuvent travailler de manière cohérente, similaire à une équipe de logiciels gérée avec expertise.
  3. Révision de Code Optimisée : Au-delà de la simple génération de code, MetaGPT propose des fonctionnalités d’exécution précompilation, qui constituent essentiellement un système d’alerte précoce pour les erreurs. Cela ne sauve pas seulement le temps de débogage mais assure également la qualité du code.
  4. Agents Cognitifs : Les agents intelligents de MetaGPT, dotés de fonctions cognitives comme _observe(), _think() et _publish_message(), évoluent et s’adaptent, garantissant que votre solution logicielle n’est pas seulement codée mais également « intelligente ».
  5. Installation et Déploiement : Nous avons illustré que MetaGPT peut être facilement configuré, que vous préfériez une installation locale via npm et Python ou une conteneurisation via Docker.

J'ai passé les cinq dernières années à plonger dans le monde fascinant de l'apprentissage automatique et du deep learning. Ma passion et mon expertise m'ont conduit à contribuer à plus de 50 projets de génie logiciel divers, avec un focus particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique des langues, un domaine que je suis impatient d'explorer plus en profondeur.