Connect with us

Intelligence artificielle

OpenAgents: Une plateforme ouverte pour les agents de langage dans la nature

mm

Les développements récents ont démontré que les agents de langage, en particulier ceux construits sur des modèles de langage de grande échelle (LLM), ont le potentiel de réaliser une large gamme de tâches complexes dans des environnements diversifiés en utilisant le langage naturel. Cependant, la principale focalisation de la plupart des cadres d’agents de langage actuels est de faciliter la construction d’agents de langage de preuve de concept. Cette focalisation est souvent accompagnée d’une attention limitée aux conceptions au niveau de l’application et néglige fréquemment l’accessibilité de ces agents aux utilisateurs non experts.

Pour combler les limitations actuelles des agents de langage, les développeurs ont créé le cadre OpenAgents, une plateforme ouverte pour héberger et déployer des agents de langage dans la nature, et à travers une série de tâches quotidiennes. Le cadre OpenAgents est construit autour de trois agents

  • Agent de données : Aide à l’analyse de données à l’aide d’outils de données et de langages de requête tels que SQL, ou des langages de programmation tels que Python. 
  • Agents de plug-in : Aide en fournissant l’accès à plus de 200+ outils API utiles pour les tâches quotidiennes. 
  • Agents Web : Aide à la navigation sur le Web tout en maintenant votre anonymat. 

Le cadre OpenAgents utilise une interface utilisateur Web optimisée pour les défaillances courantes et les réponses rapides dans le but de permettre aux utilisateurs généraux d’interagir avec les fonctionnalités de l’agent, tout en offrant aux chercheurs et aux développeurs une expérience de déploiement sans effort sur leurs configurations locales. Il serait sage de dire que le cadre OpenAgents est une tentative pour fournir une base solide pour faciliter les évaluations du monde réel, et créer des agents de langage innovants, efficaces et avancés. 

Dans l’article d’aujourd’hui, nous allons plonger plus profondément dans le cadre OpenAgents, et discuter du cadre dans plus de détail. Nous allons discuter du fonctionnement et de l’architecture du cadre, tout en discutant des défis courants et des résultats. Alors commençons. 

OpenAgents et agents de langage : Une introduction

Les agents de langage, à leur base, sont dérivés des agents intelligents. Ces agents intelligents sont conçus pour posséder des capacités de résolution de problèmes autonomes, ainsi que la capacité de détecter leur environnement, de prendre des décisions et d’agir en conséquence. Avec les progrès des modèles de langage de grande échelle, la communauté de développement mondiale a exploité le concept d’agents intelligents et de LLM pour créer des agents de langage. Ces agents utilisent la programmation de langage naturel (NLP) pour réaliser une large gamme de tâches complexes dans des environnements diversifiés, et ils ont récemment montré un potentiel remarquable.

Les cadres d’agents de langage actuels, tels que Gravitas et Chase, fournissent principalement une interface de console adaptée aux développeurs, ainsi que des implémentations de preuve de concept. Cependant, ils restreignent souvent l’accessibilité à un public plus large, en particulier ceux qui ne sont pas compétents en codage. De plus, les benchmarks d’agents actuels sont construits par des développeurs avec des exigences spécifiques pour une évaluation déterministe, en particulier dans les scénarios qui nécessitent la navigation sur le Web, la programmation, l’utilisation d’outils ou une combinaison de ceux-ci.

Dans le but de développer des agents de langage intelligents et puissants par LLM pour une base d’utilisateurs plus large, des acteurs établis comme OpenAI et Microsoft ont déployé une série de produits bien conçus, notamment l’analyse de données avancée, également connue sous le nom d’interpréteur de code, et des plug-ins de navigateur. Bien que ces agents soient efficaces dans leurs fonctions, ils offrent une aide limitée à la communauté de développement. Cette limitation découle du fait que le code logique commercial et les implémentations de modèles n’ont pas été open source, ce qui entrave les opportunités pour les développeurs et les chercheurs de les explorer plus en détail, ainsi que de limiter l’accès gratuit pour les utilisateurs.

Pour résoudre ce problème, les développeurs ont créé OpenAgents, une plateforme open source pour héberger et utiliser des agents, et elle est actuellement construite sur une base de trois agents internes

  • Agent de données : Aide à l’analyse de données à l’aide d’outils de données et de langages de requête tels que SQL, ou des langages de programmation tels que Python. 
  • Agents de plug-in : Aide en fournissant l’accès à plus de 200+ outils API utiles pour les tâches quotidiennes. 
  • Agents Web : Aide à la navigation sur le Web tout en maintenant votre anonymat. 

La figure suivante montre la plateforme OpenAgents pour les utilisateurs généraux, les développeurs et les chercheurs. 

  1. Au lieu d’utiliser un package orienté programmeur ou des consoles, les utilisateurs généraux peuvent interagir avec les trois agents du cadre OpenAgents en utilisant une interface Web en ligne. 
  2. Les développeurs peuvent utiliser les codes logiques et de recherche fournis par le cadre OpenAgents pour déployer sans effort le backend et le frontend pour de nouveaux développements. 
  3. Les chercheurs ont la flexibilité de soit construire de nouveaux agents de langage à partir de zéro, soit de mettre en œuvre des méthodes liées aux agents en utilisant les composants et les exemples partagés, et d’évaluer leurs performances en utilisant l’interface Web. 

Pour résumer, le cadre OpenAgents est à l’origine destiné à être une plateforme holistique et réaliste pour l’évaluation des agents de langage avec boucle humaine qui permet aux utilisateurs d’interagir avec ces agents pour réaliser une large gamme de tâches, et ces interactions humaines-agent ainsi que les commentaires des utilisateurs sont stockés et analysés pour un développement et une évaluation ultérieurs. 

Pour ceux qui ne sont pas au courant, LLM prompting est un processus qui permet aux développeurs de créer des instructions qui protègent contre les entrées adverses ou incorrectes, améliorent l’esthétique de la sortie et répondent à la logique du backend. Lors de la phase de développement, les développeurs travaillant sur le cadre OpenAgents utilisent la technique de LLM prompting pour souligner l’importance de spécifier les exigences d’application de manière efficace. Cependant, les développeurs ont observé que la construction de ces instructions ou de LLM prompts peut être importante à certains moments et peut affecter les capacités de gestion du contexte des cadres LLM ainsi que les limitations de jetons. Les développeurs ont également observé que pour déployer ces agents de manière efficace dans le monde réel, les modèles d’agents ne devraient pas seulement présenter des performances exceptionnelles, mais devraient également être en mesure de gérer une large gamme de scénarios interactifs en temps réel. Bien que les cadres d’agents actuels aient des performances couvertes, ils ignorent souvent les considérations du monde réel, en particulier en temps réel, ce qui peut obscurcir le véritable potentiel des cadres LLM en échangeant la rapidité de réponse ou la précision. 

Dans la figure suivante, nous comparons le cadre OpenAgents directement avec les travaux existants sur les benchmarks sur le concept d’agent et la construction de prototypes. 

OpenAgents : Conception et mise en œuvre de la plateforme

La conception systématique ou l’architecture de la plateforme OpenAgents peut être divisée en deux composants principaux : Interface utilisateur, y compris le backend et le frontend, et Agent de langage, comprenant des outils, des modèles de langage et des environnements. Le cadre OpenAgents fournit une interface pour la communication entre les utilisateurs et les agents. Le flux d’interaction dans le cadre est le suivant.

Les agents utilisent les outils disponibles pour planifier et prendre les actions requises dans les environnements une fois qu’ils ont reçu les entrées des utilisateurs. L’architecture ou la conception systématique du cadre est démontrée dans l’image suivante. 

Interface utilisateur

Les développeurs du cadre OpenAgents ont mis beaucoup de réflexion et d’effort pour développer non seulement une interface utilisateur très fonctionnelle mais également conviviale après avoir résolu un grand nombre d’agents hôtes et de logique commerciale réutilisable. En conséquence, le cadre OpenAgents se targue de fournir un soutien à une large gamme de tâches techniques, y compris la gestion des erreurs, les opérations du serveur backend, le streaming de données et bien plus encore, avec l’objectif principal de rendre le cadre OpenAgents convivial mais très efficace et utilisable en même temps. 

Agent de langage

Dans le cadre OpenAgents, l’agent de langage a trois composants essentiels : une interface d’outils, un modèle de langage et l’environnement lui-même. La méthode de prompting mise en œuvre dans le cadre OpenAgents crée un processus séquentiel pour les agents à suivre qui commence par Observation -> Délibération -> Action. Le cadre promet également à l’LLM de générer du texte analysable avec une efficacité améliorée, et l’interface d’outils est composée de parseurs qui peuvent traduire ces textes analysables générés par les LLM en actions exécutables comme des appels d’API ou la génération de code. Ces actions sont ensuite exécutées par le cadre dans les limites de l’environnement correspondant. 

Agents OpenAgents

Au cœur d’OpenAgents, il y a trois agents distincts : Agent de données qui aide à l’analyse de données à l’aide d’outils de données et de langages de requête tels que SQL, ou des langages de programmation tels que Python, Agents de plug-in qui aide en fournissant l’accès à plus de 200+ outils API utiles pour les tâches quotidiennes, et Agents Web qui aide à la navigation sur le Web tout en maintenant votre anonymat. Ces agents ont une expertise de domaine individuelle similaire aux plug-ins de ChatGPT, cependant, contrairement à ChatGPT, la mise en œuvre sur OpenAgents est basée purement sur le dessus des API de langage d’application ouvertes. 

Agent de données

L’agent de données dans le cadre OpenAgents a été conçu et déployé de manière à traiter une large gamme de tâches liées aux données que les utilisateurs finaux rencontrent régulièrement. Les agents de données prennent en charge la génération et l’exécution de code dans deux langages de programmation, à savoir SQL et Python, et l’agent dispose également de plusieurs outils de données à sa disposition, notamment Profiling de données pour fournir des informations de base sur les données, Recherche de données Kaggle pour rechercher des ensembles de données, et Outil ECharts pour tracer des graphiques ECharts interactifs. De plus, le cadre OpenAgents incite l’agent de données à utiliser ces outils de manière proactive pour répondre efficacement aux demandes des utilisateurs finaux. De plus, étant donné les exigences de codage exhaustives, le cadre OpenAgents opte pour des modèles de langage intégrés pour l’agent de données, et plutôt que l’agent générant le code, ce sont des outils comme Python, ECharts et SQL qui génèrent le code. Avec cette approche, le cadre est en mesure de tirer pleinement parti des capacités de programmation des modèles de langage, et réduit ainsi la charge sur l’agent de données. 

Avec l’aide de ces outils de données, l’agent de données est capable de gérer de nombreuses demandes centrées sur les données, et effectue la visualisation, la manipulation et les requêtes de données de manière compétente, dépassant ainsi les limites de la génération de code et de texte. La figure suivante met en évidence un agent de données en action, et les outils disponibles aux utilisateurs courants. 

Agent de plug-in

L’agent de plug-in dans le cadre OpenAgents a été conçu par les développeurs de manière méticuleuse pour répondre aux besoins multifacétés des utilisateurs pour les tâches quotidiennes, y compris la recherche sur Internet, les achats en ligne, la lecture de nouvelles ou la création de sites Web et d’applications en fournissant l’accès à plus de 200 plug-ins, avec une attention particulière portée sur l’interface d’appel de fonction, les appels d’API et les longueurs de réponse d’API. Certains des plug-ins les plus importants incluent 

  1. Recherche Google 
  2. Wolfram Alpha
  3. Zapier
  4. Klarna
  5. Coursera
  6. Show Me
  7. Speak
  8. AskYourPDF
  9. BizTok
  10. Klook

En fonction de leurs besoins et de leurs exigences, les utilisateurs peuvent choisir le nombre de plug-ins qu’ils veulent que les agents de plug-in utilisent, et le fonctionnement est démontré dans la figure ci-dessous. 

De plus, pour aider les utilisateurs dans les situations où ils ne sont pas sûrs du plug-in qui conviendra le mieux à leurs besoins, le cadre OpenAgents offre aux utilisateurs une fonctionnalité qui sélectionne automatiquement les plug-ins les plus pertinents pour leurs instructions. 

Agents Web

Le cadre OpenAgents présente l’agent Web comme un outil spécialisé chargé d’améliorer l’efficacité et les capacités de l’agent de conversation. Bien que l’agent de conversation abrite toujours l’interface d’interaction principale, il intègre sans effort l’agent Web lorsque cela est nécessaire. La réponse finale est ensuite livrée à l’utilisateur final par l’agent Web, et le processus est illustré dans la figure ci-dessous. 

La stratégie de conception mise en œuvre dans ces agents Web s’avère très bénéfique car l’agent de conversation traite les paramètres importants ou initie les URL de manière systématique, avant qu’elles ne soient transmises à l’agent Web, garantissant ainsi une meilleure correspondance entre les besoins de l’utilisateur et la sortie générée, ce qui entraîne une communication claire. De plus, la stratégie permet également aux agents Web d’accueillir des requêtes utilisateur stratifiées et adaptables en utilisant une navigation Web dynamique et multi-tour couplée avec des dialogues de conversation. Par conséquent, en démarquant les rôles et les responsabilités des agents de conversation et de navigation Web de manière distincte, le cadre OpenAgents ouvre la voie à l’affinement et à l’évolution de chaque module individuel. 

OpenAgents : Applications pratiques et déploiement dans le monde réel

Dans cette section, nous allons discuter du parcours du cadre OpenAgents de la théorisation au déploiement dans le monde réel, ainsi que des défis rencontrés et des enseignements tirés, ainsi que des complexités d’évaluation que les développeurs ont résolues. 

Utilisation de prompts pour transformer les grands modèles de langage en applications du monde réel

Lors de l’utilisation de prompts LLM pour construire des applications du monde réel pour les utilisateurs finaux, le cadre OpenAgents utilise des instructions de prompt pour spécifier certaines exigences. L’objectif de certaines instructions est de garantir que la sortie est conforme à un format spécifique, permettant ainsi à la logique du backend de traiter, tandis que l’objectif d’autres instructions est d’améliorer l’esthétique de la sortie, tandis que le reste protège le cadre contre les attaques malveillantes potentielles. 

Facteurs du monde réel incontrôlables

Lorsque les développeurs ont déployé le cadre OpenAgents dans le monde réel, ils ont été confrontés à une série de facteurs du monde réel incontrôlables déclenchés par l’infrastructure Internet, les utilisateurs, la logique commerciale et plus encore. Ces facteurs incontrôlables ont forcé les développeurs à réévaluer et à ajuster certaines hypothèses sur la base de recherches antérieures, et ils pourraient finalement conduire à des situations où les utilisateurs finaux ne sont pas satisfaits de la réponse que le cadre génère. 

Complexité d’évaluation

Bien que les agents construits directement pour les applications puissent avoir une application plus large et facilitent une meilleure évaluation, cela ajoute à la complexité de la construction d’applications alimentées par LLM, ce qui rend difficile l’analyse des performances des applications. De plus, cette approche ajoute également à l’instabilité et à la chaîne de systèmes des LLM, ce qui rend difficile pour le cadre de s’adapter à différents composants. Il est donc logique de raffiner la conception du système et la logique de fonctionnement de ces agents pour simplifier les procédures et garantir une sortie efficace. 

Pensées finales

Dans cet article, nous avons discuté du cadre OpenAgents, une plateforme ouverte pour héberger et déployer des agents de langage dans la nature, et à travers une série de tâches quotidiennes. Le cadre OpenAgents est construit autour de trois agents : Agent de données, aide à l’analyse de données à l’aide d’outils de données et de langages de requête tels que SQL, ou des langages de programmation tels que Python, Agents de plug-in, aide en fournissant l’accès à plus de 200+ outils API utiles pour les tâches quotidiennes, et Agents Web aide à la navigation sur le Web tout en maintenant votre anonymat. Le cadre OpenAgents utilise une interface utilisateur Web optimisée pour les défaillances courantes et les réponses rapides dans le but de permettre aux utilisateurs généraux d’interagir avec les fonctionnalités de l’agent, tout en offrant aux chercheurs et aux développeurs une expérience de déploiement sans effort sur leurs configurations locales. En fournissant une plateforme transparente, holistique et déployable, OpenAgents vise à rendre le potentiel des LLM accessible à un éventail plus large d’utilisateurs, non limité aux chercheurs et aux développeurs, mais également aux utilisateurs finaux ayant une expertise technique limitée. 

Un ingénieur de profession, un écrivain de cœur. Kunal est un rédacteur technique avec une profonde affection et une compréhension de l'IA et du ML, dédié à simplifier les concepts complexes dans ces domaines grâce à sa documentation engageante et informative.