Modelos y plataformas de IA

OpenAgents: Una plataforma abierta para agentes de lenguaje en el mundo real

mm
Añade Unite.AI a tus fuentes preferidas en Google

Los desarrollos recientes han demostrado que los agentes de lenguaje, particularmente aquellos construidos sobre modelos de lenguaje grande (LLM), tienen el potencial de realizar una amplia variedad de tareas intrincadas en entornos diversos utilizando lenguaje natural. Sin embargo, el enfoque principal de la mayoría de los marcos de agentes de lenguaje actualmente se centra en facilitar la construcción de agentes de lenguaje de prueba de concepto. Este enfoque a menudo se realiza con poca o ninguna atención a los diseños de nivel de aplicación y frecuentemente descuida la accesibilidad de estos agentes para los usuarios no expertos.

Para superar las limitaciones actuales experimentadas por los agentes de lenguaje, los desarrolladores han creado el marco de OpenAgents, una plataforma abierta para alojar y desplegar agentes de lenguaje en el mundo real, y en una variedad de tareas cotidianas. El marco de OpenAgents se basa en tres agentes

  • Agente de datos: Ayuda con el análisis de datos utilizando herramientas de datos y lenguajes de consulta como SQL, o lenguajes de programación como Python.
  • Agentes de complementos: Ayuda proporcionando acceso a más de 200 herramientas de API útiles para tareas diarias.
  • Agentes web: Ayuda a navegar por la web mientras mantiene su anonimato.

El marco de OpenAgents utiliza una interfaz de usuario web optimizada para errores comunes y respuestas rápidas, con el fin de permitir que los usuarios generales interactúen con las funcionalidades de los agentes, al mismo tiempo que ofrece a los investigadores y desarrolladores una experiencia de implementación sin problemas en sus configuraciones locales. Sería seguro decir que el marco de OpenAgents es un intento de proporcionar una base sólida para facilitar evaluaciones del mundo real, y crear agentes de lenguaje innovadores, efectivos y avanzados.

En este artículo, nos sumergiremos más profundamente en el marco de OpenAgents, y hablaremos sobre el marco en mayor detalle. Hablaremos sobre el funcionamiento y la arquitectura del marco, al mismo tiempo que discutiremos los desafíos comunes que se enfrentan, y los resultados. Así que comencemos.

OpenAgents y agentes de lenguaje: Una introducción

Los agentes de lenguaje, en su núcleo, se derivan de agentes inteligentes. Estos agentes inteligentes se conceptualizan para poseer capacidades de resolución de problemas autónomos, junto con la capacidad de percibir su entorno, tomar decisiones y actuar en consecuencia. Con los avances en los modelos de lenguaje grande, la comunidad de desarrollo global ha aprovechado el concepto de agentes inteligentes y LLM para crear agentes de lenguaje. Estos agentes utilizan la programación de lenguaje natural (NLP) para realizar una amplia variedad de tareas intrincadas en entornos diversos, y recientemente han demostrado un potencial notable.

Los marcos de agentes de lenguaje actuales, como Gravitas y Chase, proporcionan principalmente una interfaz de consola adaptada para desarrolladores, junto con implementaciones de prueba de concepto. Sin embargo, a menudo restringen el acceso a una audiencia más amplia, particularmente aquellos que no son expertos en codificación. Además, las pruebas de los agentes actuales se construyen con requisitos específicos para la evaluación determinista, especialmente en escenarios que requieren navegación web, codificación, utilización de herramientas o una combinación de estos.

En un esfuerzo por desarrollar agentes de lenguaje y LLM potentes para una base de usuarios más amplia, jugadores establecidos como OpenAI y Microsoft (MSFT ) han desplegado una serie de productos bien diseñados, incluyendo Análisis de datos avanzado, también conocido como Intérprete de código, y complementos de navegador. Aunque estos agentes son efectivos en sus funciones, ofrecen una ayuda limitada a la comunidad de desarrollo. Esta limitación se debe a que la lógica de negocio y las implementaciones de modelo no se han abierto, lo que obstaculiza las oportunidades para que los desarrolladores y los investigadores exploren más a fondo, y limita el acceso gratuito para los usuarios.

Para abordar este problema, los desarrolladores han creado OpenAgents, una plataforma de código abierto para alojar y utilizar agentes, y actualmente se basa en tres agentes internos

  • Agente de datos: Ayuda con el análisis de datos utilizando herramientas de datos y lenguajes de consulta como SQL, o lenguajes de programación como Python.
  • Agentes de complementos: Ayuda proporcionando acceso a más de 200 herramientas de API útiles para tareas diarias.
  • Agentes web: Ayuda a navegar por la web mientras mantiene su anonimato.

La siguiente figura muestra la plataforma OpenAgents para usuarios generales, desarrolladores e investigadores.

  1. En lugar de utilizar un paquete orientado a programadores o consolas, los usuarios generales pueden interactuar con los tres agentes en el marco de OpenAgents utilizando una interfaz web en línea.
  2. Los desarrolladores pueden utilizar la lógica de negocio y los códigos de investigación proporcionados por el marco de OpenAgents para implementar sin problemas el backend y el frontend para desarrollar más.
  3. Los investigadores tienen la flexibilidad de construir nuevos agentes de lenguaje desde cero, o implementar métodos relacionados con los agentes utilizando los componentes compartidos y los ejemplos, y evaluar su rendimiento utilizando la interfaz de usuario web.

En resumen, el marco de OpenAgents está originalmente diseñado para ser una plataforma holística y realista para la evaluación de agentes de lenguaje con intervención humana, que permite a los usuarios interactuar con estos agentes para completar una amplia variedad de tareas, y estas interacciones entre humanos y agentes, junto con la retroalimentación del usuario, se almacenan y analizan para un desarrollo y evaluación posteriores.

Para aquellos que no están al tanto, la ingeniería de prompts es un proceso que permite a los desarrolladores crear instrucciones que protegen contra entradas adversas o incorrectas, mejoran la estética de la salida y se adaptan a la lógica de backend. Durante la fase de desarrollo, los desarrolladores que trabajan en el marco de OpenAgents utilizan la técnica de ingeniería de prompts para subrayar la importancia de especificar los requisitos de la aplicación de manera efectiva. Sin embargo, los desarrolladores pronto observaron que la acumulación de estas instrucciones o prompts de LLM puede ser sustancial en ocasiones, lo que puede afectar las capacidades de manejo de contexto de los marcos de LLM, junto con las limitaciones de tokens. Los desarrolladores también observaron que, para desplegar estos agentes de manera efectiva en el mundo real, los modelos de los agentes no solo deben exhibir un rendimiento excepcional, sino que también deben poder abordar una amplia variedad de escenarios interactivos en tiempo real. Aunque los marcos de agentes actuales tienen cubierto el rendimiento, a menudo ignoran las consideraciones del mundo real, especialmente en tiempo real, lo que a menudo oculta el verdadero potencial de los marcos de LLM al intercambiar la respuesta o la precisión.

En la siguiente figura, estamos comparando el marco de OpenAgents directamente con trabajos existentes sobre benchmarks en concepto de agente y construcción de prototipos.

OpenAgents: Diseño y implementación de la plataforma

El diseño sistemático o la arquitectura de la plataforma OpenAgents se puede dividir en dos componentes principales: Interfaz de usuario, que incluye tanto el backend como el frontend, y Agente de lenguaje, que comprende herramientas, modelos de lenguaje y entornos. El marco de OpenAgents proporciona una interfaz para la comunicación entre los usuarios y los agentes. El flujo de interacción en el marco es el siguiente.

Los agentes utilizan las herramientas disponibles para planificar y tomar las acciones necesarias en los entornos una vez que han recibido las entradas de los usuarios. La arquitectura o el diseño sistemático del marco se muestra en la siguiente imagen.

Interfaz de usuario

Los desarrolladores del marco de OpenAgents han puesto mucho pensamiento y esfuerzo en desarrollar no solo una interfaz de usuario muy funcional, sino también amigable, después de abordar una gran cantidad de agentes y lógica de negocio reutilizable. Como resultado, el marco de OpenAgents se jacta de proporcionar soporte para una amplia variedad de tareas técnicas, incluyendo el manejo de errores, las operaciones del servidor de backend, la transmisión de datos y mucho más, con el objetivo principal de hacer que el marco de OpenAgents sea amigable para el usuario, pero altamente efectivo y utilizable al mismo tiempo.

Agente de lenguaje

Dentro del marco de OpenAgents, el agente de lenguaje tiene tres componentes esenciales: una interfaz de herramientas, un modelo de lenguaje y el entorno en sí. El método de prompting implementado en el marco de OpenAgents crea un proceso secuencial para que los agentes sigan que comienza con Observación -> Deliberación -> Acción. El marco también induce al LLM a generar texto parsable con mayor eficiencia, y la interfaz de herramientas consiste en analizador que puede traducir estos textos parsables generados por LLM en acciones ejecutables, como hacer llamadas a API o generar código. Estas acciones se ejecutan luego dentro de los límites del entorno correspondiente.

Agentes de OpenAgents

En el núcleo de OpenAgents, hay tres agentes distintos: Agente de datos que ayuda con el análisis de datos utilizando herramientas de datos y lenguajes de consulta como SQL, o lenguajes de programación como Python, Agentes de complementos que ayuda proporcionando acceso a más de 200 herramientas de API útiles para tareas diarias, y Agentes web que ayuda a navegar por la web mientras mantiene su anonimato. Estos agentes tienen una experiencia en el dominio individual similar a los complementos de ChatGPT, sin embargo, a diferencia de ChatGPT, la implementación en OpenAgents se basa puramente en la API de aplicación de lenguaje abierta o API.

Agente de datos

El agente de datos en el marco de OpenAgents se ha diseñado y desplegado para abordar una amplia variedad de tareas relacionadas con los datos que los usuarios finales encuentran con regularidad. El agente de datos admite la generación y ejecución de código en dos lenguajes de programación, a saber, SQL y Python, y el agente también tiene varias herramientas de datos a su disposición, incluyendo Perfilado de datos para proporcionar información básica de datos, Búsqueda de datos de Kaggle para buscar conjuntos de datos, y Herramienta de ECharts para trazar gráficos interactivos de ECharts. Además, el marco de OpenAgents induce al agente de datos a utilizar estas herramientas de manera proactiva para responder eficazmente a las solicitudes de los usuarios finales. Además, dado los requisitos de codificación exhaustivos, el marco de OpenAgents opta por modelos de lenguaje integrados para el agente de datos, y en lugar de que el agente genere el código, son las herramientas como Python, ECharts y SQL las que generan el código. Con este enfoque, el marco puede aprovechar al máximo la capacidad de programación de los modelos de lenguaje y, por lo tanto, reduce la carga en el agente de datos.

Con la ayuda de estas herramientas de datos, el agente de datos es capaz de gestionar numerosas solicitudes centradas en los datos y realiza la visualización, manipulación y consultas de datos de manera competente, lo que supera los límites del código y la generación de texto. La siguiente figura destaca un agente de datos en acción y las herramientas disponibles para los usuarios comunes.

Agente de complementos

El agente de complementos en el marco de OpenAgents se ha diseñado cuidadosamente por los desarrolladores para satisfacer las necesidades multifacéticas de los usuarios para tareas diarias, incluyendo la búsqueda en Internet, las compras en línea, la lectura de noticias o la creación de sitios web y aplicaciones, proporcionando acceso a más de 200 complementos, con especial atención a la interfaz de llamada de función, las llamadas a API y las longitudes de respuesta de API. Algunos de los complementos destacados incluyen

  1. Búsqueda de Google
  2. Wolfram Alpha
  3. Zapier
  4. Klarna
  5. Coursera
  6. Muéstrame
  7. Habla
  8. Pregúntame tu PDF
  9. BizTok
  10. Klook

En función de sus necesidades y requisitos, los usuarios pueden elegir el número de complementos que desean que el agente de complementos utilice, y el funcionamiento se muestra en la figura a continuación.

Además, para ayudar a los usuarios en situaciones en las que no están seguros de qué complemento se adapta mejor a sus necesidades, el marco de OpenAgents ofrece a los usuarios una función que selecciona automáticamente los complementos más relevantes para sus instrucciones.

Agentes web

El marco de OpenAgents presenta el agente web como una herramienta especializada encargada de mejorar la eficiencia y las capacidades del agente de chat. Aunque el agente de chat todavía alberga la interfaz de interacción principal, incorpora sin problemas el agente web cuando es necesario. La respuesta final se entrega al usuario final por el agente web, y el proceso se ilustra en la figura a continuación.

La estrategia de diseño implementada en estos agentes web resulta muy beneficiosa, ya que el agente de chat procesa parámetros importantes o inicia URLs de manera sistemática, antes de que se transfieran al agente web, lo que garantiza una mejor alineación entre los requisitos del usuario y la salida generada, lo que da como resultado una comunicación clara. Además, la estrategia también permite que los agentes web aborden consultas de usuario en capas y adaptables mediante una navegación web dinámica y diálogos de chat. Por lo tanto, al delimitar los roles y responsabilidades de los agentes de chat y navegación web de manera distinta, el marco de OpenAgents permite la mejora y evolución de cada módulo individual.

OpenAgents: Aplicaciones prácticas y despliegue en el mundo real

En esta sección, hablaremos sobre la trayectoria del marco de OpenAgents desde la teorización hasta el despliegue en el mundo real, junto con los desafíos que se enfrentaron y las lecciones aprendidas, y evaluaremos las complejidades de la evaluación que los desarrolladores abordaron.

Utilizando prompts para transformar grandes modelos de lenguaje en aplicaciones del mundo real

Al utilizar prompts de LLM para construir aplicaciones del mundo real para los usuarios finales, el marco de OpenAgents utiliza instrucciones de prompts para especificar ciertos requisitos. El objetivo de algunas de estas instrucciones es garantizar que la salida esté en consonancia con un formato específico, lo que permite que la lógica de backend procese, mientras que el objetivo de otras instrucciones es mejorar la estética de la salida, mientras que el resto protege el marco contra posibles ataques maliciosos.

Factores del mundo real incontrolables

Cuando los desarrolladores desplegaron el marco de OpenAgents en el mundo real, se encontraron con una serie de factores del mundo real incontrolables desencadenados por la infraestructura de Internet, los usuarios, la lógica de negocio y más. Estos factores incontrolables obligaron a los desarrolladores a reevaluar y ajustar algunos supuestos basados en investigaciones anteriores, y podrían llevar finalmente a situaciones en las que los usuarios finales no estén satisfechos con la respuesta que genera el marco.

Complejidad de la evaluación

Aunque los agentes construidos directamente para aplicaciones pueden tener una aplicación más amplia y facilitar una mejor evaluación, esto agrega complejidad a la construcción de aplicaciones potenciadas por LLM, lo que hace que sea difícil analizar el rendimiento de las aplicaciones. Además, este enfoque también agrega inestabilidad y extiende la cadena de sistema de los LLM, lo que hace que sea un desafío para que el marco se adapte a diferentes componentes. Por lo tanto, tiene sentido refinar el diseño del sistema y la lógica de funcionamiento de estos agentes para simplificar los procedimientos y garantizar una salida efectiva.

Pensamientos finales

En este artículo, hemos hablado sobre el marco de OpenAgents, una plataforma abierta para alojar y desplegar agentes de lenguaje en el mundo real, y en una variedad de tareas cotidianas. El marco de OpenAgents se basa en tres agentes: Agente de datos, que ayuda con el análisis de datos utilizando herramientas de datos y lenguajes de consulta como SQL, o lenguajes de programación como Python, Agentes de complementos, que ayuda proporcionando acceso a más de 200 herramientas de API útiles para tareas diarias, y Agentes web, que ayuda a navegar por la web mientras mantiene su anonimato. El marco de OpenAgents utiliza una interfaz de usuario web optimizada para errores comunes y respuestas rápidas, con el fin de permitir que los usuarios generales interactúen con las funcionalidades de los agentes, al mismo tiempo que ofrece a los investigadores y desarrolladores una experiencia de implementación sin problemas en sus configuraciones locales. Al proporcionar una plataforma transparente, holística y desplegable, OpenAgents tiene como objetivo hacer que el potencial de los LLM sea accesible a una gama más amplia de usuarios, no solo limitado a investigadores y desarrolladores, sino también a usuarios finales con habilidades técnicas limitadas.

Kunal Kejriwal es un ingeniero de backend especializado en Python, PostgreSQL, Redis e infraestructura en la nube en GCP y AWS. Con tres años de experiencia construyendo y escalando sistemas de producción, escribe sobre infraestructura de IA, sistemas distribuidos y la arquitectura detrás del despliegue de cargas de trabajo de aprendizaje automático.