nouvelles

OpenDevin a publié un rapport technique, une lecture incontournable pour les développeurs d'agents de grands modèles

2024-08-02

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



Rapport sur le cœur de la machine

Editeur : Chen Chen, Zenan

Plateforme d'agent grand modèle à usage général populaire.

En mars de cette année, Devin, « le premier ingénieur logiciel d'IA au monde », a fait exploser le cercle de l'IA. Contrairement aux précédents assistants de programmation IA, Devin ne joue pas seulement le rôle d'assistance à la programmation, mais peut mener à bien l'ensemble du projet de développement de manière indépendante et de bout en bout.



La naissance de Devin nous a permis d’apprécier les puissantes capacités des Agents grands modèles. Bientôt, de nombreux projets open source sont apparus dans l'industrie pour tenter de le copier. Parmi eux, OpenDevin s'est démarqué et a reçu le plus d'attention.

OpenDevin est une plate-forme pour développer des agents à usage général qui interagissent avec le monde via des logiciels. Les fonctionnalités incluent :

Le mécanisme d'interaction entre l'agent grand modèle, l'interface et l'environnement ;

Système d'exploitation Sandbox + environnement de navigateur Web disponible pour l'agent ;

Une interface pour créer et exécuter du code ;

Prise en charge multi-agents ;

Cadre d’évaluation.

Actuellement, le GitHub d'OpenDevin a reçu plus de 29 000 étoiles.



Récemment, l'équipe OpenaDevin a publié un rapport technique sur cet outil.



Adresse du rapport : https://arxiv.org/pdf/2407.16741

Dans un rapport technique, les auteurs d'OpenDevin, des universitaires de l'Université de l'Illinois à Urbana-Champaign, de l'Université Carnegie Mellon et d'autres institutions, détaillent OpenDevin, une plateforme communautaire conçue pour développer une IA générale et spécialisée qui interagit avec le monde via un agent logiciel. .

Plus important encore, OpenDevin n'est pas seulement un cadre conceptuel, il comprend également une implémentation complète et prête à l'emploi d'un agent, d'un environnement et d'une évaluation. Depuis la publication de ce rapport, OpenDevin contient un Agent Center, qui a implémenté plus de 10 agents, dont un puissant agent général basé sur l'architecture CodeAct, et a ajouté des fonctions de navigation Web et d'édition de code. L'interaction de l'utilisateur avec l'agent s'effectue via une interface de chat, qui visualise les opérations en cours de l'agent et permet un retour d'information en temps réel. De plus, le cadre d'évaluation prend actuellement en charge 15 critères qui peuvent être utilisés pour évaluer les performances des agents.

Architecture OpenDevin

Dans cet article, l'auteur décrit OpenDevin sous les aspects suivants : (1) comment définir et mettre en œuvre des agents ; (2) comment l'exécution d'actions favorise l'observation (3) comment gérer et développer les compétences couramment utilisées par les agents ; comment intégrer plusieurs agents travaillant ensemble pour résoudre une tâche.



Comment définir et implémenter un agent

Les agents peuvent détecter l'état de l'environnement et générer des actions à effectuer lors de la résolution des tâches spécifiées par l'utilisateur.

Flux d’états et d’événements. Dans OpenDevin, l'état est une structure de données qui encapsule toutes les informations pertinentes permettant à un agent d'effectuer des tâches. Un élément clé de cet état est le streaming d’événements, une collection chronologique d’actions et d’observations passées.

action. Inspiré de CodeAct, OpenDevin connecte les agents à l'environnement via un ensemble d'actions de base. Les actions IPythonRunCellAction et CmdRunAction permettent aux agents d'exécuter du code Python arbitraire et des commandes bash dans un environnement sandbox (par exemple, un système d'exploitation Linux isolé de manière sécurisée). BrowserInteractiveAction prend en charge l’interaction entre l’agent et le navigateur Web.

observer. Les observations décrivent les changements dans l'environnement observés par l'agent. Cela peut ou non être provoqué par une action de l'agent : il peut s'agir 1) d'une instruction en langage naturel donnée par l'utilisateur, 2) du résultat de l'exécution de l'action précédente de l'agent (par exemple, le résultat de l'exécution de code, etc.).

Implémenter de nouveaux agents. La conception de l'agent est simple mais puissante, permettant aux utilisateurs de créer et de personnaliser facilement des agents pour diverses tâches. Le cœur réside dans la fonction step, qui prend l'état actuel comme entrée et génère les actions appropriées basées sur la logique de l'agent. La figure 2 montre un exemple de code simplifié pour l'abstraction d'agent.



Observer les résultats de l’exécution des actions

Agent Runtime fournit aux agents un espace d'action comparable à celui des développeurs de logiciels humains, permettant à OpenDevin de gérer une variété de tâches de développement de logiciels et basées sur le Web, y compris des flux de travail de développement de logiciels complexes, des projets d'analyse de données, des tâches de navigation sur le Web, etc. Il permet aux agents d'accéder à un terminal bash pour exécuter du code et des outils de ligne de commande, d'exploiter les notebooks Jupyter pour écrire et exécuter du code à la volée et d'interagir avec un navigateur Web pour effectuer des tâches Web (par exemple, recherche d'informations).

Agent évolutif - Interface ordinateur

Les auteurs ont construit une bibliothèque AgentSkills, une boîte à outils conçue pour améliorer les capacités des agents, fournissant des utilitaires difficilement disponibles avec les commandes bash de base ou le code Python.

Interaction multi-agents

OpenDevin permet à plusieurs agents d'interagir. Pour y parvenir, les auteurs ont utilisé un type d'action spécial, AgentDelegateAction, qui permet à un agent de déléguer des sous-tâches spécifiques à un autre agent.

Évaluer

Cette section compare OpenDevin (abrégé en OD dans les résultats expérimentaux suivants) avec des méthodes de base reproductibles open source. Les 15 benchmarks couvrent des tâches telles que l'ingénierie logicielle et la navigation Web.



Le tableau 3 montre que même si l'agent OpenDevin n'atteint pas des performances optimales dans chaque catégorie, il est conçu dans un souci de généralité.



Le tableau 4 rapporte les résultats de l'agent sur les benchmarks de génie logiciel.



en particulier:

SWE-bench est conçu pour évaluer la capacité d'un agent à résoudre les problèmes GitHub, tels que les rapports de bugs ou les demandes de fonctionnalités. Comme le montre le tableau 4, la dernière version de CodeActAgent v1.8 présentée dans cet article, basée sur Claude-3.5-sonnet, présente un taux de résolution de problèmes allant jusqu'à 26 % par rapport à d'autres agents open source spécifiquement utilisés pour le développement de logiciels.

HumanEvalFix. OpenDevin CodeActAgent a corrigé avec succès 79,3 % des erreurs dans les divisions Python, surpassant considérablement toutes les méthodes non-agent et doublant presque les performances de StarCoder2-15B.

L'agent OpenDevin basé sur GPT-4o a obtenu le taux de réussite le plus élevé de 76,47 % sur ML-Bench, ce qui est meilleur que SWE-Agent (42,64 %).

Gorilla APIBench examine la capacité d'un agent à utiliser les API. OpenDevin utilisant GPT-4o a un taux de réussite de 36,4 %, ce qui est meilleur que la ligne de base qui n'est pas spécifiquement adaptée aux appels d'API.

ToolQA évalue la capacité d'un agent à utiliser des outils externes. OpenDevin avec GPT-4o affiche les performances les plus élevées par rapport à toutes les références. L'agent a mieux performé dans les tâches liées à l'utilisation des outils CSV et de base de données, mais avait besoin d'amélioration dans l'utilisation des outils mathématiques et de calculatrice.

Le tableau 5 présente les résultats de l'évaluation du test de navigation Web.



Le tableau 6 présente les résultats de divers repères auxiliaires.



Parmi eux, GAIA est utilisé pour évaluer la capacité de l'agent à résoudre des tâches générales. Les résultats montrent que l'agent a obtenu 32,1 points sur GAIA, ce qui est considérablement amélioré par rapport à l'AutoGPT d'origine.

GPQA est utilisé pour évaluer la capacité d'un agent à coordonner l'utilisation d'outils tout en résolvant des problèmes difficiles de niveau universitaire. Les résultats sont présentés dans les tableaux 6 et 7. OpenDevin intègre des fonctions qui prennent en charge l'utilisation de plusieurs outils et recherches sur le Web, permettant à l'agent de mieux résoudre des problèmes complexes en plusieurs étapes.



Pour plus de résultats, veuillez vous référer à l’article original.