¿Qué es MetaGPT?

Autores

Vanna Winland

AI Advocate & Technology Writer

Meredith Syed

AI Developer Advocate Lead

¿Qué es MetaGPT?

MetaGPT es un marco de código abierto que orquesta el uso del conocimiento procedimental humano y agentes de IA impulsados por modelos de lenguaje de gran tamaño (LLM) para desarrollar una amplia gama de soluciones de software. Actuando como una empresa de software de IA, MetaGPT cuenta con agentes de IA especializados que desempeñan funciones como las de las empresas de software tradicionales.

MetaGPT es la tecnología patentada de DeepWisdom fundada por Chenglin Wu. El marco ganó popularidad rápidamente en GitHub, despertando interés en torno al objetivo subyacente de MetaGPT de impulsar el avance de la programación en lenguaje natural utilizando sistemas multiagente (MAS).

El popular documento de investigación "MetaGPT: Metaprogramming for A Multi-Agent Collaborative Framework" explica la orquestación de la colaboración entre agentes del marco. A medida que continúa la investigación en torno a la orquestación LLM y los agentes de IA, MetaGPT es uno de los primeros contribuyentes que ofrece un enfoque sencillo para la colaboración multiagente mediante el uso de flujos de trabajo familiares.

Las últimas tendencias en IA, presentadas por expertos

Obtenga conocimientos organizados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Qué es la colaboración multiagente?

Los agentes que actúan dentro de un sistema multiagente (MAS) siguen siendo autónomos, pero también cooperan y coordinan en estructuras de agencia o marcos como MetaGPT1. Un MAS coordina agentes individuales para operar e interactuar dentro de su entorno para completar tareas complejas para lograr un objetivo común. Esta idea forma parte de la inteligencia colectiva, un concepto popular a veces relacionado con AGI.

Un sistema multiagente consiste en una red de agentes de resolución de problemas que trabajan juntos para abordar desafíos más allá de la capacidad de un solo agente2. Uno de los retos clave a la hora de diseñar un MAS eficaz es coordinar a los agentes para garantizar su colaboración en un objetivo compartido. El éxito de la colaboración depende de la capacidad de cada agente para resolver tareas individuales, así como de su capacidad para interactuar eficazmente entre sí3.

Las consideraciones en la planificación de un entorno MAS incluyen:

  • las limitaciones que crean las actividades de otros agentes para la toma de decisiones de un agente;
  • las restricciones que surgen de los compromisos de un agente con otros con respecto a sus acciones disponibles;
  • y la evolución impredecible del mundo causada por agentes externos no modelados4.

Un enfoque para este reto de diseño es la coordinación de la colaboración entre agentes mediante el modelado explícito del trabajo en equipo. Este patrón de diseño multicolaborativo desglosa una instrucción compleja y delega las tareas abstraídas a agentes que las ejecutan en función de sus roles especializados5.

Dentro del marco colaborativo multiagente de MetaGPT, un equipo de agentes de IA opera de acuerdo con un flujo de trabajo estructurado guiado por procedimientos operativos estándar (SOP) que definen roles e instrucciones distintos. Al integrar protocolos de comunicación y flujos de trabajo optimizados dentro de sistemas multiagente impulsados por LLM, los usuarios pueden crear aplicaciones con una sola línea de entrada.

Agentes de IA

Cinco tipos de agentes de IA: funciones autónomas y aplicaciones del mundo real

Descubra cómo la IA basada en objetivos y servicios se adapta a flujos de trabajo y entornos complejos.

¿Cómo funciona MetaGPT?

MetaGPT actúa como un marco colaborativo multiagente capaz de resolver tareas complejas. El marco de colaboración multiagente funciona simulando una empresa de software completa que utiliza agentes especializados que interactúan en función de procedimientos operativos estándar y un paradigma de línea de montaje para dividir las tareas. Cada agente desempeña un papel especializado según sus funciones dentro de la empresa de software. Por ejemplo, el marco incluye agentes que actúan como gestores de productos, arquitectos, gestores de proyectos e ingenieros que proporcionan todo el proceso de una empresa de software.

Estos agentes en sus diferentes roles actúan dentro de un espacio de trabajo virtual para tomar un requisito de una línea como entrada y salida de varias soluciones de software. Esta entrada incluye estructuras de datos, interfaces de programación de aplicaciones (API), análisis competitivos y documentos. Los agentes se comunican a través de resultados estructurados basados en los requisitos establecidos por un paradigma de cadena de montaje. Cada agente genera la información necesaria para incitar al siguiente agente a completar el objetivo colectivo: producir una aplicación de software basada en la solicitud del usuario. Este proceso de desarrollo incremental se debe a la forma en que MetaGPT integra los flujos de trabajo humanos para agilizar la coordinación en una tarea compleja.

Conocimiento procedimental humano para la colaboración multiagente

Se han adoptado procedimientos operativos estándar en varios ámbitos, ya que desempeñan un papel crítico en el apoyo a la descomposición de tareas y a una coordinación eficaz6. En el desarrollo de software, los SOP promueven la colaboración entre equipos al deconstruir las tareas del proyecto en procedimientos más pequeños y prácticos que luego se asignan a roles específicos y especializados. MetaGPT codifica los SOP en secuencias de instrucciones para organizar y promover flujos de trabajo multiagente. Los flujos de trabajo SOP introducen estructura y oportunidades de perfeccionamiento. 

Por ejemplo, se da una instrucción al agente del gestor de proyectos para que cree un documento de requisitos del producto (PRD). Al agente gestor de producto se le pide una vez y luego que refine ciertos elementos del PRD debido al desarrollo incremental del proyecto. Por ejemplo, se indica al agente que cree una sección dentro del PRD para "objetivos del producto". A continuación, se le da instrucción de nuevo para que refine esos objetivos actualizando los objetivos originales del producto para asegurarse de que se alinean con la dirección actual del proyecto7. Este método de refinamiento se emplea para garantizar que la tarea global sea reconocida y cohesiva por todos los agentes.

En el siguiente ejemplo, se le da una instrucción al agente gestor de productos para que genere un análisis de requisitos. Después de esta instrucción inicial, se le pide al agente que genere un análisis refinado que tenga en cuenta las nuevas características y mejoras de la colaboración en curso.

Instrucción de análisis de requisitos: "Proporcione un análisis detallado de los requisitos"8.

Instrucciones de análisis refinadas: "Revise y refine el análisis de requisitos existente en una lista de cadenas para alinearlo con las necesidades cambiantes del proyecto debido al desarrollo incremental. Asegúrese de que el análisis cubra de forma exhaustiva las nuevas características y mejoras necesarias para el alcance refinado del proyecto"9.

Este ejemplo muestra un PRD generado como salida estandarizada que se pasa del agente del gestor de productos al agente del arquitecto. La instrucción basada en SOP para cada output generada se lista junto a ellos. Tenga en cuenta que la instrucción se basa de manera similar en el flujo de trabajo, incluidas las definiciones de requisitos, los métodos para completar las tareas y el orden para completarlas:

Instrucción del usuario“Constrúyame una aplicación basada en React para que los gestores de patrimonios la utilicen para revisar los portfolios de sus clientes y hacer recomendaciones de fondos apropiados para su uso. Esta aplicación necesita funcionar en América, el Reino Unido y España”.

Requisitos originales
Instrucción rápida: "Coloque aquí los requisitos del usuario original"10.

"Constrúyame una aplicación web basada en React para que los gestores patrimoniales la utilicen para revisar los portfolios de sus clientes y hacerles recomendaciones de fondos adecuados. Esta aplicación debe funcionar en Estados Unidos, el Reino Unido y España".

Objetivos del producto 
Instrucción rápida: "Proporcione hasta tres objetivos de producto claros y ortogonales"11.

  1. Desarrolle una aplicación web segura y fiable para gestores de patrimonios.
  2. Garantice la compatibilidad multilingüe para inglés, español y variaciones regionales.
  3. Cree una interfaz intuitiva y fácil de usar para la gestión y recomendación de portfolio.

Historias de usuario 
Instrucción rápida: "Proporcione hasta 3 a 5 historias de usuario basadas en escenarios".12

  1. Como gestora de patrimonios, quiero revisar los portfolios de mis clientes y ofrecer un asesoramiento personalizado.
  2. Como gestor de patrimonios, quiero recomendar fondos a mis clientes en función de sus objetivos de inversión y tolerancia al riesgo.
  3. Como gestor de patrimonios, quiero acceder a la aplicación en inglés o español en función de mi ubicación.

Análisis competitivo
Instrucción rápida: "Proporcione de 5 a 7 productos competitivos"13.

  1. "Wealthfront: servicio de inversión automatizado con una interfaz limpia, pero carece de recomendaciones de fondos personalizadas".
  2. "Personal Capital: ofrece herramientas integrales de gestión de patrimonios, pero puede ser abrumador para los nuevos usuarios".
  3. "Betterment: se centra en la inversión automatizada con una personalización limitada para los gestores de patrimonios".

Análisis de requisitos
Instrucción rápida: "Proporcione un análisis detallado de los requisitos"14.

La aplicación debe construirse utilizando React, lo que garantia que sea escalable y mantenible. Debe tener una interfaz multilingüe para atender a los usuarios de América, el Reino Unido y España. La aplicación debe ser segura para proteger los datos financieros confidenciales y cumplir con la normativa regional. También debe integrarse con varias fuentes de datos financieros para proporcionar análisis de portfolio en tiempo real y recomendaciones de fondos.

Grupo de requisitos
Instrucción rápida: "Enumere los 5 a 7 requisitos principales con su prioridad (P0, P1, P2)", "Cubra tanto el contenido heredado como el contenido incremental. Conservar el contenido no relacionado con el desarrollo incremental"15.

  •  ("Autenticación segura de usuarios y cifrado de datos para proteger la información del cliente"., “P0”),
  • ("Soporte multilingüe para inglés y español, con variaciones regionales"., “P0”),
  •  ("Integración en tiempo real con fuentes de datos financieros para el portfolio"., “P0”),
  •  ("Panel de control fácil de usar para revisar y gestionar portfolios de clientes.", “P1”),
  • ("Motor de recomendaciones para sugerir los fondos adecuados en función de los perfiles de los clientes.", “P2”)

Borrador de diseño de la interfaz de usuario
Instrucción rápida: "Proporcione una descripción simple de los elementos, funciones, estilo y diseño de la interfaz de usuario"16.

La IU contará con un diseño limpio y moderno con un panel de control que proporciona una visión general de los portfolios de clientes. Incluirá gráficos interactivos para el análisis de portfolio, una sección de recomendaciones para la selección de fondos y un fácil cambio entre inglés y español.

Cualquier cosa que no esté CLARA
Instrucción rápida: "Mencione los aspectos del proyecto que no estén claros e intente aclararlos"17.

No hay puntos poco claros.

El ejemplo anterior es una entrega al agente arquitecto para el diseño, aquí está la instrucción basada en SOP que se proporciona junto con el PRD:

"Aquí está el documento de requisitos del producto (PRD): basado en este PRD, revise si este diseño de API cumple con los requisitos del PRD y si cumple con las buenas prácticas de diseño"18.

El arquitecto sigue su propio flujo de trabajo SOP para diseñar el sistema para la aplicación.

Un SOP describe las responsabilidades del rol de cada agente y establece estándares para outputs intermedios. Estos SOP se codifican para influir en el comportamiento del agente. Esta práctica permite a los agentes generar resultados estructurados, como documentos de requisitos de alta calidad, artefactos de diseño, diagramas de flujo y especificaciones de interfaz. Todos los traspasos entre agentes deben cumplir con ciertos estándares establecidos que reducen el riesgo de alucinaciones causadas por conversaciones ociosas entre LLM. El uso de salidas estructuradas mejora en gran medida la tasa de éxito de la generación de código objetivo19.

Cómo MetaGPT utiliza los SOP para dar instrucciones a los agentes

Todos los agentes de MetaGPT actúan como empleados que deben seguir un flujo de trabajo estricto y optimizado. Hay dos partes principales dentro del SOP que definen el comportamiento de los agentes: la especialización de roles y el flujo de trabajo entre agentes.

Especialización del rol del agente: MetaGPT define cinco roles dentro de la empresa de software: gestor de producto, arquitecto, gestor de proyecto, ingeniero e ingeniero de control de calidad. El perfil de cada agente se inicializa con información específica, como el nombre del agente, el perfil, el objetivo y las restricciones de cada función, así como el contexto y las habilidades específicas de cada función20. Cada agente es como un organismo digital que actúa dentro de un entorno21El concepto de roles predefinidos es diferente a los marcos multiagente como CrewAI, que permiten a los usuarios definir la función del agente dentro de un equipo para casos de uso más generales.

Flujo de trabajo entre agentes: la definición de las funciones y las habilidades operativas de los agentes establece un flujo de trabajo básico que los agentes deben seguir dentro del proceso de desarrollo de software. Los agentes trabajan dentro de un orden secuencial o un paradigma de línea de montaje para desglosar tareas complejas para una mayor eficiencia entre el equipo.

¿Cómo interactúan los agentes en MetaGPT?

MetaGPT postula que una colaboración significativa requiere procesos de resolución de problemas eficaces, coherentes y precisos. Los agentes de IA son sistemas complejos; sin embargo, sus procesos no tienen por qué serlo, al menos no según MetaGPT y su herencia de flujos de trabajo humanos sencillos.

Protocolo de comunicación

Los agentes interactúan dentro de una interfaz de comunicación estructurada denominada protocolo de comunicación. MetaGPT difiere de la mayoría de los marcos multiagente basados en LLM porque no utiliza el lenguaje natural sin restricciones como interfaz de comunicación y, en su lugar, propone el uso de comunicación estructurada para formular la interacción entre agentes. Por ejemplo, en ChatDev, otro marco de colaboración multiagente, los agentes se comunican a través del diálogo, mientras que los agentes en MetaGPT se comunican a través de outputs estructurados como documentos y diagramas.

Para facilitar este protocolo de comunicación, MetaGPT establece un esquema y un formato para cada agente y solicita que cada rol diferente proporcione los resultados necesarios en función de su objetivo y contexto específicos22. En un ejemplo, el agente arquitecto genera dos resultados: el diseño de la interfaz del sistema y un diagrama de flujo de secuencia. Ambos resultados contienen secuencias de diseño e interacción del módulo del sistema que sirven como entregables primordiales para los agentes de ingeniería23.

Mecanismo de publicación y suscripción

Para mejorar la eficiencia de la comunicación, MetaGPT utiliza un grupo de mensajes global para almacenar información que permite a los agentes intercambiar mensajes directamente. Los agentes publican sus mensajes estructurados en el grupo y pueden acceder a los mensajes de otros agentes de forma transparente. Este enfoque permite a los agentes acceder directamente a la información necesaria del grupo compartido, eliminando la necesidad de preguntar a otros agentes y esperar sus respuestas24.

Proceso de desarrollo de MetaGPT

El proceso de desarrollo comienza con el comando de entrada de un usuario y termina con el software diseñado de acuerdo con las especificaciones del usuario. Por ejemplo, la entrada del usuario podría ser "Escriba una aplicación GUI de Python de modo que pueda dibujar una imagen con ella". La instrucción del usuario se transmite a la empresa de software, un equipo de agentes de juego de roles: gestor de producto, arquitecto, gestor de proyecto, ingeniero, ingeniero de control de calidad

Después de recibir la instrucción del usuario para crear una aplicación específica, el gerente de producto genera un PRD que abarca objetivos, historias de usuario, análisis competitivo, análisis de requisitos y grupo de requisitos. Además, el agente gestor del producto también genera un gráfico de cuadrante competitivo basado en las especificaciones de la aplicación. Estos documentos y gráficos se entregan al agente arquitecto para el diseño del sistema.

El agente arquitecto elabora las especificaciones técnicas basadas en los requisitos del PRD. Las especificaciones incluyen diagramas de arquitectura del sistema y definiciones de interfaz para la trayectoria técnica general del proyecto. La arquitectura del proyecto, incluidos los archivos, las clases y el diagrama de flujo de secuencias, se diseña en función de las definiciones técnicas del agente arquitecto. La documentación generada por el arquitecto se entrega al gestor del proyecto para la asignación y ejecución de tareas.

El gestor del proyecto desglosa el proyecto en una lista de tareas. Cada archivo de código se analiza en función de su funcionalidad prevista y luego se trata como una tarea separada asignada a los ingenieros.

El agente ingeniero genera el código necesario con habilidades de desarrollo fundamentales para completar las tareas de desarrollo. Tras recibir la salida de código del agente ingeniero, el agente ingeniero de control de calidad genera código de prueba unitario y lo revisa para identificar y corregir cualquier error.

Integración de LLM en MetaGPT

Los agentes de MetaGPT se basan en la serie de modelos GPT (transformador generativo preentrenado) de OpenAI GPT-3.5 y GPT-4. Sin embargo, MetaGPT y su comunidad de código abierto han contribuido a la adición de varios otros modelos que se pueden inicializar a través de la configuración de la API LLM. MetaGPT ofrece un tutorial que facilita la exploración de cómo integrarse con LLM de código abierto en su sitio de documentos de GitHub. El primer paso para integrar un LLM es configurar un repositorio de inferencia (repo) como LLaMA-Factory, FastChat, Ollama, etc. Este repositorio permite la implementación del modelo LLM correspondiente que se configura a través de sus credenciales de API. Todos los repositorios de inferencia compatibles, excepto Ollama, admiten la publicación de interfaces compatibles con OpenAI. MetaGPT busca dar soporte a la interfaz Ollama en el futuro.

¿Pueden los agentes de IA sobresalir en la metaprogramación?

Los marcos de metaprogramación proporcionan la funcionalidad para crear programas que pueden escribir, manipular y analizar otros programas, así como el propio programa. MetaGPT modela este propósito incorporando flujos de trabajo humanos para impulsar la IA generativa utilizando técnicas basadas en agentes para mejorar la metaprogramación.

Los agentes basados en LLM contienen varias capacidades básicas que tienen tareas avanzadas de programación automática25. Entre esos avances se encuentran ReAct y Reflexion, paradigmas de razonamiento utilizados por agentes que emplean una cadena de instrucciones de pensamiento para generar trayectorias de razonamiento y planes de acción con LLM26.

El bucle de diseño de agentes ReAct demuestra un proceso eficaz para la programación automática debido a su bucle de diseño iterativo que permite a los agentes razonar, actuar y observar27. La reflexión refuerza a los agentes lingüísticos a través del feedback lingüístico, siguiendo un bucle de diseño iterativo similar para inducir una mejor toma de decisiones28. Ambos diseños de paradigma permiten a los agentes aprender y mejorar continuamente su flujo de trabajo.

Los LLM tradicionales, como el modelo GPT-3 de OpenAI, los modelos Llama de Meta y los modelos IBM Granite, tienen un conocimiento y un razonamiento limitados. Generan respuestas basadas en los datos de entrenamiento, que con frecuencia pueden incluir información obsoleta. Por el contrario, la tecnología agéntica aprovecha las llamadas a herramientas de backend para acceder a la información actual, agilizar los flujos de trabajo y crear de forma autónoma tareas específicas para lograr objetivos complejos. Durante este proceso, el agente autónomo aprende a ajustarse a las expectativas del usuario a lo largo del tiempo, proporcionando una experiencia personalizada y respuestas más completas. Esta llamada de herramientas puede producirse sin intervención humana, ampliando las posibles aplicaciones reales de estos sistemas de IA.

Cómo utiliza MetaGPT los agentes de metaprogramación

Los agentes ingenieros de MetaGPT participan en la programación iterativa con feedback ejecutables. Los procesos de depuración y optimización son importantes en las tareas diarias de programación. Otras implementaciones carecen de mecanismos de autocorrección de agentes que conducen a resultados no deseados, como alucinaciones de código o código que no funciona. Para mitigar estos riesgos, MetaGPT introduce un mecanismo de feedback ejecutable para mejorar el código en cada iteración.

El agente ingeniero escribe código basado en los requisitos y el diseño originales del producto. Esto permite al agente mejorar continuamente el código utilizando su propia memoria histórica de ejecución y depuración. El ingeniero obtiene más información para mejorar el código escribiendo y ejecutando los casos de prueba unitario correspondientes. Después de recibir los resultados, el ingeniero continúa con tareas de desarrollo adicionales o depura el código antes de reanudar la programación. Este proceso iterativo continúa hasta que se supera la prueba o se alcanza un máximo de tres reintentos29.

Otros marcos multiagente

crewAI: crewAI es un marco de código abierto basado en Python que utiliza agentes autónomos que interactúan como si fueran personajes de un juego de rol y trabajan juntos como un equipo para completar tareas. Los usuarios pueden crear y personalizar agentes en función de las necesidades o el uso de su aplicación. Los casos de uso incluyen fines generalizados, como la planificación y creación de contenidos, el análisis de datos y las tareas de automatización. CrewAI presenta la integración con watsonx.ai de IBM y ofrece varias integraciones LLM y compatibilidad con Ollama30.

ChatDev: ChatDev es un marco multiagente de código abierto que simula una empresa de software virtual que opera a través de varios agentes inteligentes que desempeñan diferentes funciones organizativas. Los agentes cooperan a través del diálogo para producir un producto de software que incluya código ejecutable y documentación. ChatDev es compatible con los modelos GPT-3.5-turbo y GPT-4 de OpenAI para impulsar a sus agentes inteligentes31.

AutoGPT: AutoGPT es un marco multiagente de código abierto que aplica el procesamiento del lenguaje natural (PLN) para comprender los objetivos del usuario y la descomposición de tareas complejas. Los agentes cooperan en un flujo de trabajo automatizado para procesar una instrucción de usuario de alto nivel que divide cada tarea en una secuencia de subtareas más pequeñas. Los casos de uso incluyen soluciones generalizadas como investigación y análisis de mercado, desarrollo de productos, asistencia virtual y más. Este marco está construido con agentes de IA basados en GPT-4 de OpenAI32.

Soluciones relacionadas
Desarrollo de agentes de IA de IBM 

Permita a los desarrolladores crear, implementar y monitorizar agentes de IA con el estudio IBM watsonx.ai.

 

Explore watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Tanto si opta por personalizar las aplicaciones y habilidades prediseñadas como si prefiere crear e implementar servicios agentivos personalizados mediante un estudio de IA, la plataforma IBM watsonx le ofrece todo lo que necesita.

Explore watsonx Orchestrate Explore watsonx.ai