notícias

OpenDevin lançou um relatório técnico, uma leitura obrigatória para desenvolvedores de grandes modelos de agentes

2024-08-02

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



Relatório do coração da máquina

Editor: Chen Chen, Zenan

Plataforma popular de agente de modelo grande de uso geral.

Em março deste ano, Devin, "o primeiro engenheiro de software de IA do mundo", detonou o círculo de IA. Ao contrário dos assistentes de programação de IA anteriores, Devin não desempenha apenas o papel de auxiliar na programação, mas pode concluir todo o projeto de desenvolvimento de forma independente e de ponta a ponta.



O nascimento de Devin nos permitiu apreciar as poderosas capacidades de grandes modelos de Agentes. Logo, muitos projetos de código aberto apareceram na indústria tentando copiá-lo. Entre eles, o OpenDevin se destacou e recebeu mais atenção.

OpenDevin é uma plataforma para o desenvolvimento de agentes de uso geral que interagem com o mundo por meio de software. Os recursos incluem:

O mecanismo de interação entre agente de modelo grande, interface e ambiente;

Sistema operacional sandbox + ambiente de navegador web disponível para Agente;

Uma interface para criar e executar código;

Suporte multiagente;

Quadro de avaliação.

Atualmente, o GitHub do OpenDevin recebeu mais de 29.000 estrelas.



Recentemente, a equipe OpenaDevin divulgou um relatório técnico sobre esta ferramenta.



Endereço do relatório: https://arxiv.org/pdf/2407.16741

Em um relatório técnico, os autores do OpenDevin, acadêmicos da Universidade de Illinois em Urbana-Champaign, da Universidade Carnegie Mellon e de outras instituições, detalham o OpenDevin, uma plataforma voltada para a comunidade para o desenvolvimento de IA geral e especializada que interage com o mundo por meio de software.

Mais importante ainda, OpenDevin não é apenas uma estrutura conceitual, mas também inclui um agente, ambiente e implementação de avaliação abrangente e pronto para uso. No lançamento deste relatório, o OpenDevin contém um Agent Center, que implementou mais de 10 agentes, incluindo um poderoso agente geral baseado na arquitetura CodeAct, e adicionou funções para navegação na Web e edição de código. A interação do usuário com o agente é realizada por meio de uma interface de chat, que visualiza as operações atuais do agente e permite feedback em tempo real. Além disso, a estrutura de avaliação suporta atualmente 15 benchmarks que podem ser usados ​​para avaliar o desempenho do agente.

Arquitetura OpenDevin

Neste artigo, o autor descreve o OpenDevin a partir dos seguintes aspectos: (1) como definir e implementar agentes; (2) como a execução da ação promove a observação; (3) como gerenciar e expandir as habilidades comumente utilizadas pelos agentes; como integrar vários agentes trabalhando juntos para resolver uma tarefa.



Como definir e implementar um agente

Os agentes podem sentir o estado do ambiente e gerar ações a serem executadas ao resolver tarefas especificadas pelo usuário.

Fluxo de estado e evento. No OpenDevin, estado é uma estrutura de dados que encapsula todas as informações relevantes para um agente executar tarefas. Um componente chave deste estado é o streaming de eventos, uma coleção cronológica de ações e observações passadas.

Ação. Inspirado no CodeAct, o OpenDevin conecta agentes ao ambiente por meio de um conjunto básico de ações. As ações IPythonRunCellAction e CmdRunAction permitem que os agentes executem códigos Python arbitrários e comandos bash em um ambiente sandbox (por exemplo, um sistema operacional Linux isolado com segurança). O BrowserInteractiveAction oferece suporte à interação entre o agente e o navegador da Web.

observar. As observações descrevem mudanças no ambiente observadas pelo agente. Pode ou não ser causado por uma ação do agente: pode ser 1) uma instrução em linguagem natural dada pelo usuário, 2) o resultado da execução da ação anterior do agente (por exemplo, resultado da execução do código, etc.).

Implementar novos agentes. O design do agente é simples, mas poderoso, permitindo aos usuários criar e personalizar facilmente agentes para diversas tarefas. O núcleo está na função step, que toma o estado atual como entrada e gera ações apropriadas com base na lógica do agente. A Figura 2 mostra um exemplo de código simplificado para a abstração do agente.



Observe os resultados da execução da ação

O Agent Runtime fornece aos agentes um espaço de ação comparável ao dos desenvolvedores de software humanos, permitindo que o OpenDevin lide com uma variedade de desenvolvimento de software e tarefas baseadas na Web, incluindo fluxos de trabalho complexos de desenvolvimento de software, projetos de análise de dados, tarefas de navegação na Web, etc. Ele permite que os agentes acessem um terminal bash para executar ferramentas de código e linha de comando, aproveitem os notebooks Jupyter para escrever e executar código em tempo real e interajam com um navegador da web para executar tarefas baseadas na web (por exemplo, pesquisa de informações).

Agente Escalável - Interface de Computador

Os autores construíram uma biblioteca AgentSkills, uma caixa de ferramentas projetada para aprimorar os recursos dos agentes, fornecendo utilitários que não estão prontamente disponíveis com comandos bash básicos ou código python.

Interação multiagente

OpenDevin permite que vários agentes interajam. Para conseguir isso, os autores usaram um tipo de ação especial, AgentDelegateAction, que permite a um agente delegar subtarefas específicas a outro agente.

Avalie

Esta seção compara o OpenDevin (abreviado como OD nos resultados experimentais a seguir) com métodos de linha de base reproduzíveis de código aberto. Os 15 benchmarks cobrem tarefas como engenharia de software e navegação na web.



A Tabela 3 mostra que embora o agente OpenDevin possa não atingir o desempenho ideal em todas as categorias, ele foi projetado tendo em mente a generalidade.



A Tabela 4 relata os resultados do agente em benchmarks de engenharia de software.



em particular:

O SWE-bench foi projetado para avaliar a capacidade de um agente de resolver problemas do GitHub, como relatórios de bugs ou solicitações de recursos. Conforme mostrado na Tabela 4, a versão mais recente do CodeActAgent v1.8 neste artigo, baseada em claude-3.5-sonnet, tem uma taxa de resolução de problemas de até 26% em comparação com outros agentes de código aberto usados ​​especificamente para desenvolvimento de software.

HumanEvalFix. OpenDevin CodeActAgent corrigiu com sucesso 79,3% dos erros em divisões Python, superando significativamente todos os métodos sem agente e quase dobrando o desempenho do StarCoder2-15B.

O agente OpenDevin baseado em GPT-4o alcançou a maior taxa de sucesso de 76,47% no ML-Bench, o que é melhor que o SWE-Agent (42,64%).

Gorilla APIBench examina a capacidade de um agente de usar APIs. OpenDevin usando GPT-4o tem uma taxa de sucesso de 36,4%, o que é melhor do que a linha de base que não é especificamente ajustada para chamadas de API.

ToolQA avalia a capacidade de um agente de usar ferramentas externas. OpenDevin com GPT-4o mostra o desempenho mais alto em comparação com todas as linhas de base. O agente teve melhor desempenho em tarefas relacionadas ao uso de CSV e ferramentas de banco de dados, mas precisava de melhorias no uso de ferramentas matemáticas e calculadoras.

A Tabela 5 relata os resultados da avaliação para o benchmark de navegação na web.



A Tabela 6 relata os resultados de vários benchmarks auxiliares.



Entre eles, o GAIA é utilizado para avaliar a capacidade do agente em resolver tarefas gerais. Os resultados mostram que o agente alcançou 32,1 pontos no GAIA, o que é significativamente melhorado em comparação com o AutoGPT original.

O GPQA é usado para avaliar a capacidade de um agente de coordenar o uso de ferramentas enquanto resolve problemas desafiadores em nível de pós-graduação. Os resultados são mostrados nas Tabelas 6 e 7. OpenDevin integra funções que suportam o uso de múltiplas ferramentas e pesquisas na web, permitindo ao agente resolver melhor problemas complexos de várias etapas.



Para obter mais resultados, consulte o artigo original.