MetaGPT Guía completa del mejor agente de IA disponible en este momento

MetaGPT Guía del mejor agente de IA disponible

Con los Modelos de Lenguaje Grandes (LLMs) como ChatGPT, OpenAI ha presenciado un aumento en la adopción empresarial y de usuarios, generando actualmente alrededor de $80 millones en ingresos mensuales. Según un informe reciente de The Information, se dice que la compañía con sede en San Francisco está en camino de alcanzar $1 mil millones en ingresos anuales.

La última vez que exploramos AutoGPT y GPT-Engineering, los primeros agentes de IA basados en LLM de código abierto diseñados para automatizar tareas complejas. Si bien son prometedores, estos sistemas tienen sus propios problemas: resultados inconsistentes, cuellos de botella de rendimiento y limitaciones para manejar demandas multifacéticas. Muestran habilidad en la generación de código, pero a menudo se quedan ahí. Carecen de funcionalidades críticas de gestión de proyectos como generación de PRD, generación de diseño técnico y prototipado de interfaz de API.

Entra en escena MetaGPT, un sistema multiagente que utiliza modelos de lenguaje grandes diseñado por Sirui Hong que fusiona Procedimientos Operativos Estandarizados (SOPs) con sistemas multiagente basados en LLM. Este paradigma emergente rompe con las limitaciones existentes de LLM en la promoción de la colaboración efectiva y la descomposición de tareas en aplicaciones complejas del mundo real.

La belleza de MetaGPT radica en su estructura. Capitaliza técnicas de metaprogramación para manipular, analizar y transformar código en tiempo real. ¿El objetivo? Lograr una arquitectura de software ágil y flexible que se pueda adaptar a tareas de programación dinámicas.

Desarrollo Ágil

Aquí, los SOPs actúan como una metafunción, coordinando a los agentes para generar automáticamente código basado en entradas definidas. En pocas palabras, es como si hubieras convertido a un equipo altamente coordinado de ingenieros de software en un sistema de software inteligente y adaptable.

Comprendiendo el Marco de MetaGPT

Marco de MetaGPT (https://arxiv.org/pdf/2308.00352.pdf)

Capas Fundamentales y de Colaboración

La arquitectura de MetaGPT se divide en dos capas: la Capa de Componentes Fundamentales y la Capa de Colaboración.

  1. Capa de Componentes Fundamentales: Esta capa se centra en las operaciones individuales de los agentes y facilita el intercambio de información en todo el sistema. Introduce bloques de construcción fundamentales como Entorno, Memoria, Roles, Acciones y Herramientas. El Entorno establece el escenario para espacios de trabajo compartidos y vías de comunicación, mientras que la Memoria sirve como archivo de datos históricos. Los Roles encapsulan la experiencia específica del dominio, las Acciones ejecutan tareas modulares y las Herramientas ofrecen servicios comunes. Esta capa sirve básicamente como el sistema operativo de los agentes. Más detalles sobre cómo funcionan juntos están disponibles en el artículo ‘Más allá de ChatGPT; Agente de IA: Un Nuevo Mundo de Trabajadores’.
  2. Capa de Colaboración: Construida sobre los componentes fundamentales, esta capa administra y agiliza los esfuerzos colaborativos de los agentes individuales. Introduce dos mecanismos: Compartir Conocimiento y Encapsular Flujos de Trabajo.
    • Compartir Conocimiento: Esto actúa como el pegamento colaborativo que une a los agentes. Los agentes pueden almacenar, recuperar y compartir información en diferentes niveles, reduciendo así la redundancia y mejorando la eficiencia operativa.
    • Encapsular Flujos de Trabajo: Aquí es donde entran en juego los Procedimientos Operativos Estandarizados (SOPs). Los SOPs actúan como planos que descomponen las tareas en componentes manejables. A los agentes se les asignan estas sub tareas y su rendimiento se alinea con los resultados estandarizados.

MetaGPT también utiliza “Definiciones de Roles” para iniciar varios agentes especializados como Gerentes de Producto, Arquitectos, etc., como discutimos anteriormente. Estos roles se caracterizan por atributos clave como nombre, perfil, objetivo, restricciones y descripción.

https://arxiv.org/pdf/2308.00352.pdf

Además, los “Agentes Ancla” proporcionan orientación específica del rol a estos agentes. Por ejemplo, el rol de un Gerente de Producto podría iniciarse con la restricción de “crear un producto exitoso de manera eficiente”. Los agentes ancla aseguran que los comportamientos de los agentes se alineen con los objetivos generales, optimizando así el rendimiento.

Procesos Cognitivos en Agentes de MetaGPT

MetaGPT puede observar, pensar, reflexionar y actuar. Operan a través de funciones de comportamiento específicas como _think(), _observe(), _publish_message(), etc. Este modelado cognitivo equipa a los agentes para ser aprendices activos que pueden adaptarse y evolucionar.

  1. Observar: Los agentes escanean su entorno e incorporan datos clave en su Memoria.
  2. Pensar y Reflexionar: A través de la función _think(), los roles deliberan antes de emprender acciones.
  3. Difundir Mensajes: Los agentes utilizan _publish_message() para compartir estados de tareas actuales y registros de acciones relacionadas.
  4. Precipitación de Conocimiento y Actuar: Los agentes evalúan los mensajes entrantes y actualizan sus repositorios internos antes de decidir el próximo curso de acción.
  5. Gestión de Estado: Con características como el bloqueo de tareas y la actualización de estados, los roles pueden procesar múltiples acciones secuencialmente sin interrupciones, reflejando la colaboración humana del mundo real.

Mecanismos de Revisión de Código para MetaGPT

La revisión de código es un componente crítico en el ciclo de vida del desarrollo de software, sin embargo, está ausente en varios marcos populares. Tanto MetaGPT como AgentVerse admiten capacidades de revisión de código, pero MetaGPT va un paso más allá. También incorpora ejecución de precompilación, lo que ayuda a detectar errores tempranos y, posteriormente, mejora la calidad del código. Dada la naturaleza iterativa de la programación, esta característica no es solo un complemento sino un requisito para cualquier marco de desarrollo maduro.

Experimentos cuantitativos realizados en varias tareas revelaron que MetaGPT superó a sus contrapartes en casi todos los escenarios. Pass@1 es una medida de la capacidad del marco para generar código preciso en una sola iteración. Esta métrica ofrece una reflexión más realista de la utilidad de un marco en un entorno práctico. Una tasa de Pass@1 más alta significa menos depuración y más eficiencia, lo que afecta directamente los ciclos de desarrollo y los costos. Cuando se compara con otras herramientas avanzadas de generación de código como CodeX, CodeT e incluso GPT-4, MetaGPT las supera a todas. La capacidad del marco para lograr una tasa de Pass@1 del 81.7% al 82.3% en HumanEval y los benchmarks de MBPP.

Comparación de Métricas MBPP y HumanEval entre MetaGPT y otros Modelos Líderes (https://arxiv.org/pdf/2308.00352.pdf)

El marco también utiliza menos tokens y recursos computacionales, logrando una alta tasa de éxito a una fracción de los costos tradicionales de ingeniería de software. Los datos indicaron un costo promedio de solo $1.09 por proyecto con MetaGPT, lo cual es solo una fracción de lo que un desarrollador cobraría por la misma tarea.

Pasos para Instalar Localmente MetaGPT en tu Sistema

Instalación de NPM, Python

  1. Verificar e Instalar NPM: Lo primero es lo primero, asegúrate de tener instalado NPM en tu sistema. Si no lo tienes, deberás instalar node.js. Para verificar si tienes npm, ejecuta este comando en tu terminal: npm --version. Si ves un número de versión, estás listo para continuar.
  2. Para instalar mermaid-js, una dependencia de MetaGPT, ejecuta: sudo npm install -g @mermaid-js/mermaid-cli o npm install -g @mermaid-js/mermaid-cli
  3. Verificar la Versión de Python: Asegúrate de tener Python 3.9 o superior. Para verificar la versión de Python, abre tu terminal y escribe: python --version. Si no estás actualizado, descarga la última versión desde el sitio web oficial de Python.
  4. Clonar el Repositorio de MetaGPT: Comienza clonando el repositorio de MetaGPT en GitHub utilizando el comando git clone https://github.com/geekan/metagpt. Asegúrate de tener Git instalado en tu sistema para esto. Si no lo tienes, visita aquí.
  5. Navegar al Directorio: Una vez clonado, navega al directorio de MetaGPT utilizando el comando cd metagpt.
  6. Instalación: Ejecuta el script de configuración de Python para instalar MetaGPT con el comando python setup.py install.
  7. Crear una Aplicación: Ejecuta python startup.py "INGRESA-PROMPT" --code_review True

Nota:

  • Tu nuevo proyecto debería estar ahora en el directorio workspace/.
  • --code_review True permitirá al modelo GPT realizar operaciones adicionales que garantizarán que el código se ejecute con precisión, pero ten en cuenta que esto tendrá un costo adicional.
  • Si encuentras un error de permisos durante la instalación, intenta ejecutar python setup.py install --user como alternativa.
  • Para acceder a versiones específicas y obtener más detalles, visita la página oficial de lanzamientos de MetaGPT en GitHub: Lanzamientos de MetaGPT.

Instalación de Docker

Para aquellos que prefieren la contenedorización, Docker simplifica el proceso:

  • Descargar la imagen de Docker: Descarga la imagen oficial de MetaGPT y prepara el archivo de configuración:

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

  • Ejecutar el contenedor de MetaGPT: Ejecuta el contenedor con el siguiente comando:

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 "Crear un juego de piedra, papel y tijera simple e interactivo basado en CLI" --code_review True

Configuración de MetaGPT con tu clave de API de OpenAI

Después de la configuración inicial, deberás integrar MetaGPT con tu clave de API de OpenAI. Aquí están los pasos para hacerlo:

  1. Localiza o genera tu clave de OpenAI: Puedes encontrar esta clave en tu panel de control de OpenAI en la sección de configuración de la API.
  2. Establece la clave de la API: Tienes la opción de colocar la clave de API en config/key.yaml, config/config.yaml o establecerla como una variable de entorno (env). El orden de precedencia es config/key.yaml > config/config.yaml > env.
  3. Para establecer la clave, ve a config/key.yaml y reemplaza el texto de marcador de posición con tu clave de OpenAI:OPENAI_API_KEY: "sk-..."

Recuerda proteger tu clave de API de OpenAI. Nunca la incluyas en un repositorio público ni la compartas con personas no autorizadas.

Ilustración del caso de uso

Le di el objetivo de desarrollar un juego de piedra, papel y tijera basado en CLI, y MetaGPT ejecutó exitosamente la tarea.

A continuación se muestra un video que muestra la ejecución real del código del juego generado.

Ejecución de demostración de MetaGPT

MetaGPT proporcionó un documento de diseño del sistema en Markdown, un lenguaje de marcado ligero comúnmente utilizado. Este archivo de Markdown estaba repleto de diagramas UML, lo que ofrecía una vista detallada del diseño arquitectónico. Además, las especificaciones de la API se detallaron con métodos HTTP, puntos finales, objetos de solicitud/respuesta y códigos de estado.

Salida de MetaGPT: Diseño del sistema en Markdown

El diagrama de clases detalla los atributos y métodos de nuestra clase Game, proporcionando una abstracción fácil de entender. Incluso visualiza el flujo de llamadas del programa, convirtiendo ideas abstractas en pasos tangibles de manera efectiva.

Esto no solo reduce significativamente la carga manual en la planificación, sino que también acelera el proceso de toma de decisiones, asegurando que tu pipeline de desarrollo se mantenga ágil. Con MetaGPT, no solo estás automatizando la generación de código, sino que también estás automatizando la planificación inteligente del proyecto, lo que te brinda una ventaja competitiva en el desarrollo rápido de aplicaciones.

Conclusión: MetaGPT—Revolucionando el Desarrollo de Software

MetaGPT redefine el panorama de la inteligencia artificial generativa y el desarrollo de software, ofreciendo una combinación perfecta de automatización inteligente y gestión ágil de proyectos. Superando con creces las capacidades de ChatGPT, AutoGPT y los modelos tradicionales de LangChain, sobresale en la descomposición de tareas, generación eficiente de código y planificación de proyectos. Obtenga más información en

A continuación, se presentan los puntos clave de este artículo:

  1. El poder de la meta-programación: Al emplear la meta-programación, MetaGPT proporciona un marco de software ágil y adaptable. Trasciende la funcionalidad limitada de las herramientas heredadas e introduce un enfoque transformador que aborda no solo la codificación, sino también la gestión de proyectos y los aspectos de toma de decisiones.
  2. Arquitectura de dos capas: Con sus capas fundamentales y colaborativas, MetaGPT crea eficazmente un ecosistema sinérgico donde los agentes pueden trabajar de manera cohesiva, similar a un equipo de software gestionado de manera experta.
  3. Revisión de código optimizada: Más allá de la simple generación de código, MetaGPT ofrece características de ejecución de precompilación, que es esencialmente un sistema de alerta temprana para errores. Esto no solo ahorra tiempo de depuración, sino que también asegura la calidad del código.
  4. Agentes cognitivos: Los agentes inteligentes de MetaGPT, dotados de funciones cognitivas como _observe(), _think() y _publish_message(), evolucionan y se adaptan, asegurando que su solución de software no solo esté codificada, sino que también sea ‘inteligente’.
  5. Instalación y despliegue: Hemos ilustrado que MetaGPT se puede configurar fácilmente, ya sea que prefiera una instalación local a través de npm y Python, o la contenerización a través de Docker.