Skip to main content

Devin AI - Overview

Introdução

Em março de 2024, a Cognition AI apresentou o Devin, descrito como o primeiro engenheiro de software de IA. Diferente de assistentes de código que auxiliam desenvolvedores, o Devin foi projetado para atuar como um colega de trabalho autônomo, capaz de receber uma tarefa e executá-la de ponta a ponta.

Esta aula é relevante porque o Devin representa um marco na evolução de agentes autônomos para desenvolvimento de software. Compreender suas capacidades e limitações ajuda a contextualizar o estado atual da tecnologia e o que esperar do futuro próximo.

Definição

O Devin é um agente de IA autônomo desenvolvido pela Cognition AI, focado em tarefas de engenharia de software. Ele possui acesso a ferramentas de desenvolvedor comuns, incluindo shell, editor de código e navegador, tudo executando em um ambiente de computação isolado (sandbox).

A proposta do Devin é ser um teammate incansável e habilidoso, pronto para construir ao seu lado ou completar tarefas de forma independente para sua revisão posterior.

Explicação Técnica

Conceitos-Chave

O Devin se diferencia de outros assistentes de código por algumas características fundamentais:

Ambiente Completo de Desenvolvimento: O Devin não é apenas um modelo de linguagem respondendo perguntas. Ele tem acesso a um ambiente de desenvolvimento completo com terminal, editor de código e navegador web. Isso permite que ele execute código, instale dependências, navegue documentações e interaja com serviços externos.

Planejamento de Longo Prazo: A Cognition AI destaca avanços em raciocínio e planejamento de longo prazo. O Devin pode planejar e executar tarefas de engenharia complexas que requerem milhares de decisões, recordando contexto relevante em cada etapa.

Aprendizado e Correção: O Devin pode aprender ao longo do tempo e corrigir seus próprios erros. Quando encontra um problema, ele analisa, tenta soluções alternativas e itera até resolver.

Colaboração Ativa: O Devin reporta seu progresso em tempo real, aceita feedback e trabalha junto com o usuário em decisões de design quando necessário.

Funcionamento e Detalhes Internos

O Devin opera em um fluxo que simula o trabalho de um desenvolvedor humano:

  1. Recebe uma tarefa ou link para uma issue do GitHub
  2. Analisa o problema e planeja a abordagem
  3. Configura o ambiente de desenvolvimento
  4. Navega documentações e aprende tecnologias necessárias
  5. Implementa a solução, escrevendo e editando código
  6. Executa testes para validar a implementação
  7. Itera sobre erros até a solução funcionar
  8. Entrega o resultado para revisão

Capacidades Demonstradas

A Cognition AI demonstrou o Devin realizando diversas tarefas:

Aprender Tecnologias Desconhecidas: Após ler um blog post, o Devin executou ControlNet no Modal para produzir imagens com mensagens ocultas.

Construir e Fazer Deploy de Aplicações: O Devin criou um site interativo simulando o Game of Life, adicionou features solicitadas e fez deploy no Netlify.

Encontrar e Corrigir Bugs: O Devin ajudou a manter e debugar um livro open source de programação competitiva.

Treinar Modelos de IA: Dado apenas um link para um repositório de pesquisa, o Devin configurou fine-tuning para um modelo de linguagem.

Resolver Issues em Repositórios Open Source: Dado um link para uma issue do GitHub, o Devin fez todo o setup e coleta de contexto necessários.

Contribuir em Repositórios de Produção: O Devin resolveu bugs em projetos maduros como o sympy, configurando o ambiente, reproduzindo o bug, implementando e testando a correção.

Executar Trabalhos Reais: O Devin completou tarefas do Upwork, incluindo escrever e debugar código para executar modelos de visão computacional.

Performance no SWE-bench

O Devin foi avaliado no SWE-bench, um benchmark desafiador que pede para agentes resolverem issues reais do GitHub em projetos open source como Django e scikit-learn.

Na época do lançamento, o Devin resolveu corretamente 13.86% das issues de ponta a ponta, muito acima do estado da arte anterior de 1.96%. Mesmo quando outros modelos recebiam indicação de quais arquivos editar, o melhor resultado era apenas 4.80%.

Dicas e Cuidados

Ao avaliar o Devin e ferramentas similares:

Considere o custo-benefício: agentes autônomos podem ser mais lentos e caros que abordagens tradicionais. Avalie se a autonomia adicional justifica o investimento para seu caso de uso.

Mantenha revisão humana: mesmo com alta taxa de sucesso, revisão humana continua crucial para garantir que soluções estão alinhadas com requisitos mais amplos do sistema.

Entenda as limitações: nenhum agente atual alcança performance de nível humano. O SWE-bench tem baseline humano de aproximadamente 90%, enquanto os melhores agentes ficam abaixo de 50%.

Exemplo Prático

Exemplo de fluxo de trabalho com o Devin:

Entrada: Link para issue do GitHub relatando bug em cálculo de logaritmo

Passos do Devin:
1. Acessa a issue e lê a descrição do problema
2. Clona o repositório localmente
3. Configura ambiente Python com dependências
4. Cria script para reproduzir o bug
5. Localiza o arquivo fonte com o problema
6. Implementa correção no código
7. Executa suite de testes do projeto
8. Verifica que testes passam
9. Prepara commit com a correção

Saída: Pull request pronto para revisão

Conclusão

O Devin representa um avanço significativo na automação de desenvolvimento de software. Sua capacidade de operar autonomamente em um ambiente de desenvolvimento completo, aprender tecnologias novas e iterar sobre erros demonstra o potencial dos agentes autônomos.

Embora ainda longe da performance humana, ferramentas como o Devin indicam a direção da indústria: agentes que podem assumir tarefas completas, liberando desenvolvedores para focar em problemas de maior valor e decisões estratégicas.