Connect with us

Inteligencia artificial

OpenAgents: Una plataforma abierta para agentes de lenguaje en la vida silvestre

mm

Los desarrollos recientes han demostrado que los agentes de lenguaje, particularmente aquellos construidos sobre grandes modelos de lenguaje (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 viene con poca o ninguna atención a los diseños de nivel de aplicación y frecuentemente descuida la accesibilidad de estos agentes para usuarios no expertos.

Para salvar 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 la vida silvestre, 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 en un intento de permitir que los usuarios generales interactúen con las funcionalidades del agente, mientras que al mismo tiempo 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 el artículo de hoy, nos sumergiremos más a fondo en el marco de OpenAgents, y hablaremos del marco en mayor detalle. Hablaremos del funcionamiento y la arquitectura del marco, mientras también discutimos los desafíos comunes 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 grandes modelos de lenguaje, 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 han demostrado un potencial notable recientemente.

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, restringen el acceso a una audiencia más amplia, particularmente aquellos que no son expertos en codificación. Además, las actuales pruebas de agente 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 agentes inteligentes impulsados por LLM para una base de usuarios más amplia, jugadores establecidos como OpenAI y Microsoft 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 del navegador. Aunque estos agentes son efectivos en sus funciones, ofrecen poca ayuda a la comunidad de desarrollo. Esta limitación surge porque el código de lógica empresarial y las implementaciones del modelo no se han abierto, lo que obstaculiza las oportunidades para que los desarrolladores y los investigadores exploren más a fondo, así como limita el acceso gratuito para los usuarios.

En un intento de 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 el código de lógica empresarial y la investigación proporcionados por el marco de OpenAgents para implementar sin problemas el backend y el frontend para desarrollos adicionales. 
  3. Los investigadores tienen la flexibilidad de construir nuevos agentes de lenguaje desde cero, o implementar métodos relacionados con el agente utilizando los componentes y ejemplos compartidos, y evaluar su rendimiento utilizando la interfaz 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 el desarrollo y la evaluación adicionales. 

Para aquellos que no están al tanto, LLM prompting es un proceso que permite a los desarrolladores crear instrucciones que protegen contra entradas adversarias o incorrectas, mejora la estética de la salida y se adapta 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 LLM prompting para subrayar la importancia de especificar los requisitos de la aplicación de manera efectiva. Sin embargo, los desarrolladores pronto observaron que la creación de estas instrucciones o LLM prompts puede ser sustancial en ocasiones y 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 agente no solo deben exhibir un rendimiento excepcional, sino que también deben ser capaces de abordar una amplia variedad de escenarios interactivos en tiempo real. Aunque los marcos de agente actuales tienen el rendimiento cubierto, a menudo ignoran las consideraciones del mundo real, especialmente en tiempo real, lo que a menudo oscurece 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 las obras existentes sobre benchmarks sobre el concepto de agente y la creació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 ellos 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 demuestra 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 fácil de usar después de abordar una gran cantidad de agentes hospedados y lógica empresarial 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 fácil de usar, pero altamente efectivo y usable 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 promueve que el LLM genere texto analizable con mayor eficiencia, y la interfaz de herramientas consiste en analizador que puede traducir estos textos analizables generados por LLM en acciones ejecutables como hacer llamadas de 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 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 API de aplicación de lenguaje abierta. 

Agente de datos

El agente de datos en el marco de OpenAgents se ha diseñado y desplegado para tratar con 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 Perfil 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 promueve que el agente de datos utilice estas herramientas de manera proactiva para responder de manera efectiva 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 incrustados 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 es capaz de 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 de datos, la manipulación y las consultas de manera competente, lo que supera los límites de la generación de código y 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 atender a 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 de 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úntale a tu PDF
  9. BizTok
  10. Klook

En función de sus necesidades y requisitos, los usuarios pueden elegir la cantidad de complementos que desean que el agente de complementos utilice, y el funcionamiento se demuestra 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 requisitos, 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 aún alberga la interfaz de interacción principal, incorpora sin problemas el agente web cuando es necesario. La respuesta final se entrega luego 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 acomoden consultas de usuario en capas y adaptables mediante una navegación web dinámica y multi-giro acoplada con diálogos de chat. Por lo tanto, al demarcar los roles y las responsabilidades de los agentes de chat y navegación web de manera distinta, el marco de OpenAgents permite el perfeccionamiento y la 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 encontrados y las lecciones aprendidas, así como la complejidad de la evaluación que los desarrolladores abordaron. 

Usar instrucciones para transformar grandes modelos de lenguaje en aplicaciones del mundo real

Al utilizar instrucciones de LLM para construir aplicaciones del mundo real para usuarios finales, el marco de OpenAgents utiliza instrucciones para especificar ciertos requisitos. El objetivo de algunas de las instrucciones es garantizar que la salida esté en alineación con un formato específico, lo que permite que la lógica de backend la 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 empresarial y más. Estos factores incontrolables obligaron a los desarrolladores a reevaluar y ajustar algunos supuestos basados en investigaciones anteriores, y podrían llevar eventualmente a situaciones en las que los usuarios finales no estén satisfechos con la respuesta que el marco genera. 

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 impulsadas 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 desafiante para el marco adaptarse a diferentes componentes. Por lo tanto, tiene sentido refinar el diseño del sistema y la lógica de operación 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 la vida silvestre, 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, y 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 en un intento de permitir que los usuarios generales interactúen con las funcionalidades del agente, mientras que al mismo tiempo 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 limitada a investigadores y desarrolladores, sino también a usuarios finales con habilidades técnicas limitadas. 

Un ingeniero por profesión, un escritor por corazón. Kunal es un escritor técnico con un profundo amor y comprensión de la IA y el ML, dedicado a simplificar conceptos complejos en estos campos a través de su documentación atractiva e informativa.