Aprendizagem pessoal com IA
e orientação prática

Transforme o Cursor em Devin em uma hora e aprenda a diferença!

Este artigo faz parte de uma série sobre Compreensão e implementação de IA inteligente:

 

Em uma postagem anterior, falamos sobre o Devin, uma IA de corpo inteligente capaz de programação totalmente automatizada. Assim como o Cursor e o Windsurf Ele tem alguns pontos fortes principais no planejamento de processos, na autoevolução, no uso de ferramentas estendidas e em operações totalmente automatizadas em comparação com outras ferramentas de IA para corpos inteligentes, como o Devin. Isso faz com que o Devin pareça ser uma ferramenta de última geração, diferenciando-o das ferramentas de IA de corpos inteligentes existentes.


No entanto, depois de usá-lo por algum tempo, minha "mentalidade de construtor" foi reacendida e fui levado a modificar o Windsurf e o Cursor para implementar a funcionalidade do Devin 90%. Também abri o código aberto dessas modificações para que você possa converter o Cursor ou o Windsurf em Devin em apenas um minuto, e este artigo se concentra nos detalhes de como essas modificações foram feitas, e esse exemplo demonstra como a construção e o dimensionamento podem ser eficientes na era da IA inteligente. Para simplificar nossa discussão, usaremos o Cursor para nos referirmos a essas ferramentas e, por fim, discutiremos quais pequenos ajustes precisam ser feitos se você quiser usar o Windsurf.

artefato planejamento de processos auto-evolução Extensão da ferramenta Implementação automatizada preços
Devin Sim (automático, completo) Sim (estudo autônomo) suficiente apoiar algo $500/mês
Cursor (antes da modificação) restrições entupido Conjunto de ferramentas limitado Confirmação manual $20/mês
Cursor (modificado) Perto de Devin. ser Próximo ao Devin, escalável Confirmação ou solução alternativa ainda necessária $20/mês
Windsurf (modificado) Perto de Devin. Sim, mas indiretamente Próximo ao Devin, escalável Suporte para automação completa em contêineres do Docker $15/mês

 

Planejamento de processos e autoevolução

Conforme mencionado no post anterior, um aspecto interessante do Devin é que ele se comporta mais como um estagiário organizado. Ele sabe que primeiro deve criar um plano e depois continuar atualizando o progresso do plano à medida que ele é executado. Isso torna mais fácil para nós, como gerentes de IA, acompanhar o progresso atual da IA e, ao mesmo tempo, evitar que ela se desvie do plano original, o que leva a um pensamento mais profundo e à qualidade da conclusão da tarefa.

Embora esse recurso pareça impressionante, na verdade é muito fácil de implementar usando o Cursor.

Para o Cursor, há um arquivo no diretório raiz da pasta aberta chamado .cursorrules Em outras palavras, tudo nesse arquivo se torna parte do prompt enviado para a IA de back-end (por exemplo, GPT ou GPT). O que há de especial nisso é que ele permite modificar os prompts que o Cursor envia para o modelo de linguagem grande de back-end; em outras palavras, tudo nesse arquivo se torna um prompt que é enviado para a IA de back-end (por exemplo, GPT ou Claude) faz parte do prompt. Isso nos dá muita flexibilidade para personalização.

Por exemplo, podemos colocar o conteúdo do plano nesse arquivo para que, toda vez que interagirmos com o Cursor, ele receba a versão mais recente do plano. Também poderíamos dar instruções mais detalhadas nesse arquivo, como fazer com que ele pense e planeje no início da tarefa e atualize o plano após cada etapa. Como o Cursor pode usar o agente para modificar arquivos, e o .cursorrules É um arquivo em si, que cria um loop fechado. Ele lê automaticamente o conteúdo do arquivo todas as vezes para descobrir quais são as atualizações mais recentes e, ao refletir, grava o progresso atualizado e as próximas etapas nesse arquivo, garantindo que sempre recebamos as atualizações mais recentes.

Uma abordagem semelhante pode ser usada para obter uma função autoevolutiva. Na .cursorrules adicionamos alguns prompts para fazer com que o Cursor reflita sobre seus erros quando corrigidos pelo usuário e considere se há alguma lição reutilizável a ser registrada. Em caso afirmativo, ele atualizará o arquivo .cursorrules parte relevante do documento. Dessa forma, ele acumula conhecimento específico do projeto.

Um exemplo típico é que muitos dos grandes modelos de linguagem atuais não conhecem o modelo GPT-4o devido a prazos de conhecimento relativamente curtos. Se você pedir a eles que invoquem o GPT-4o, eles excluirão o 'o', achando que é um erro de digitação. Mas se você corrigi-los, "Esse modelo realmente existe, você só não o conhece", eles documentarão a lição aprendida no .cursorrules e não cometer os mesmos erros novamente, aprendendo e melhorando assim. No entanto, isso ainda depende da eficácia do prompt - às vezes, ele pode perder pontos e nem sempre registrar o conhecimento que achamos que deveríamos conhecer. Nesse caso, também podemos usar a linguagem natural para solicitar a IA, dizendo-lhe diretamente para anotar o ponto. Essa abordagem mais direta também permite que a IA ganhe experiência e cresça.

Portanto, ao usar apenas o .cursorrules e alguns truques de prontidão, podemos adicionar os impressionantes recursos de planejamento de processos e autoevolução do Devin às ferramentas de programação de IA existentes para inteligências.

Se o Windsurf for usado, há uma diferença: provavelmente por motivos de segurança, ele não permite que a IA modifique diretamente o .windsurfrules arquivo. Portanto, precisamos dividi-lo em duas partes, usando outro arquivo, como o scratchpad.md. Em .windsurfrules No documento, mencionamos que, antes de cada processo de pensamento, você deve verificar o Scratchpad e atualizar o plano lá. Essa abordagem indireta pode não ser tão boa quanto colocá-la diretamente no .cursorrules Isso funciona na prática porque ainda exige que a IA ligue para o agente e pense com base no feedback, mas funciona na prática.

 

Uso prolongado da ferramenta

Uma das principais vantagens do Devin em relação ao Cursor é sua capacidade de usar mais ferramentas. Por exemplo, ele pode chamar o navegador para pesquisar, navegar na Web e até mesmo usar seu próprio cérebro para analisar o conteúdo usando a inteligência do Big Language Model. Embora o Cursor não ofereça suporte a isso por padrão, a boa notícia é que, como podemos usar o .cursorrules O controle direto do prompt do Cursor e o fato de ele ter recursos de execução de comandos criam outro loop fechado. Podemos preparar programas pré-escritos, como bibliotecas Python ou ferramentas de linha de comando, e depois adicioná-los ao prompt .cursorrules em que elas são introduzidas, para que ele possa aprender instantaneamente e entender naturalmente como usar essas ferramentas para realizar suas tarefas.

De fato, as próprias ferramentas podem ser escritas em um ou dois minutos usando o Cursor. Por exemplo, para a funcionalidade de navegação na Web, forneço uma implementação de referência no projeto de código aberto. Há algumas decisões técnicas que devem ser levadas em conta, como o uso de uma ferramenta de automação de navegador, como o playwright, em vez da biblioteca de solicitações do Python para sites com muito JavaScript. Além disso, para nos comunicarmos melhor com o modelo de linguagem grande e facilitar a compreensão e o rastreamento do conteúdo subsequente, não usamos simplesmente uma sopa bonita para extrair o conteúdo textual de uma página da Web. Em vez disso, nós o convertemos para o formato markdown de acordo com determinadas regras, preservando, assim, informações básicas mais detalhadas, como nomes de classes e hiperlinks, para dar suporte ao Big Language Model na escrita de rastreadores subsequentes em um nível mais básico.

Da mesma forma, para as ferramentas de pesquisa, há uma pequena ressalva: tanto o Bing quanto o Google têm pesquisas na API que são muito inferiores em qualidade às pesquisas no lado do cliente, em grande parte devido ao histórico de diferentes equipes que lidam com APIs e interfaces da Web. No entanto, o DuckDuckGo não tem esse problema, portanto, nossa implementação de referência usa a API gratuita do DuckDuckGo.

Uma análise aprofundada do uso que o Cursor faz de sua própria capacidade intelectual é relativamente mais complexa. Por um lado, o Cursor tem algum grau desse recurso: em ambas as ferramentas, quando imprimimos o conteúdo de uma página da Web no stdout, ele se torna parte do prompt que o Cursor envia para o Big Language Model, permitindo que ele analise de forma inteligente o conteúdo do texto. De outra perspectiva, no entanto, o Devin tem a capacidade exclusiva de processar em lote quantidades relativamente grandes de texto usando o Big Language Model de uma forma que o Cursor não consegue. Portanto, para dar a ele essa capacidade, implementamos uma ferramenta adicional - muito simples, basta predefinir nossa chave de API no sistema e, em seguida, fazer com que a ferramenta chame o GPT ou o Claude ou nossa API local do Big Language Models para permitir que o Cursor processe o texto em lote usando o Big Language Models. Na minha implementação de referência, estou usando meu próprio cluster vllm local, mas é muito simples de modificar - basta remover a linha base_url.

No entanto, mesmo com essas modificações, ainda não conseguimos implementar duas ferramentas devido às limitações do Cursor:

  1. O Devin parece ter compreensão de imagens, e é por isso que ele pode realizar interações e testes de front-end, mas, devido às limitações do Cursor, não podemos passar imagens como entrada para a IA de back-end, o que exigiria alterações em sua implementação.
  2. Misteriosamente, o Devin não é sinalizado como um bot por algoritmos anti rastreadores durante o processo de coleta de dados, mas nossa ferramenta de recuperação da Web frequentemente encontra CAPTCHA ou é bloqueada. Isso pode ser corrigido e ainda estou explorando o assunto, mas é definitivamente um dos pontos fortes exclusivos do Devin.

Execução totalmente automatizada

O último recurso interessante é a execução totalmente automatizada. Como o Devin é executado em um ambiente de nuvem totalmente virtualizado, podemos fazer com que ele execute com segurança todos os tipos de comandos sem nos preocuparmos com grandes ataques a modelos de linguagem ou com a execução de comandos perigosos por engano. Mesmo que você exclua um sistema inteiro, basta iniciar um novo contêiner e tudo voltará ao normal. No entanto, o Cursor executado em um sistema localhost representa um sério risco de segurança. É por isso que, no modo de agente do Cursor, precisamos confirmar manualmente cada comando antes de executá-lo. Isso é aceitável para tarefas relativamente simples, mas agora que temos um planejamento de processo sofisticado e recursos de autoevolução, o Cursor também pode lidar com tarefas complexas de longo prazo, fazendo com que esse método de interação pareça inadequado para os recursos do Cursor.

Para resolver isso, não encontrei uma solução baseada no Cursor (atualização: em 17 de dezembro de 2024, o Cursor também adicionou esse recurso, chamado Yolo Mode, mas ainda não oferece suporte ao desenvolvimento no Docker), mas o Windsurf levou isso em consideração e acho que, pelo seu design, você pode ver que, desde o início, ele o objetivo de criar uma forma de produto semelhante ao Devin, sendo o atual editor de código uma forma intermediária. Mais especificamente, o Windsurf tem a capacidade de se conectar diretamente a um contêiner do Docker e ser executado nele ou, se tivermos o arquivo de configuração, ele pode ajudá-lo a iniciar um novo contêiner do Docker, fazer alguma inicialização e mapear as pastas locais. Assim, todos os comandos que ele executa, exceto as alterações nas pastas locais, são executados no contêiner do Docker sem nenhum impacto no sistema host, o que aumenta muito a segurança.

Além disso, ele introduz um mecanismo de lista negra/lista branca que nega automaticamente os comandos da lista negra e permite os comandos da lista branca. Para comandos que não estão nem na lista nem na lista negra, o modelo de linguagem grande determina de forma inteligente se há um risco para o sistema host - por exemplo, se ele quiser excluir um arquivo em uma pasta, ele solicitará a confirmação do usuário, mas comandos como pip install Esses comandos genéricos serão permitidos diretamente. Observe que esse recurso parece estar habilitado somente quando executado em contêineres do Docker. Se executarmos os comandos no sistema host, a experiência ainda será semelhante à do Cursor e exigirá confirmações frequentes. Além disso, a execução automática de comandos precisa ser ativada na configuração.

resumos

Assim, podemos ver que, embora a forma do produto e os conceitos de design do Devin sejam de fato muito avançados, a lacuna entre ele e as ferramentas de IA existentes para a inteligência não é tão grande quanto poderíamos pensar do ponto de vista da barreira técnica. Usando ferramentas populares como o Cursor e o Windsurf, que custam de US$ 15 a US$ 20 por mês, podemos implementar a funcionalidade do Devin 90% em menos de uma hora e usá-lo para executar tarefas complexas que antes eram impossíveis. Por exemplo, atribuí ao Cursor a tarefa de analisar os retornos de ações populares de tecnologia nos últimos 5 anos para uma análise aprofundada dos dados e ele forneceu um relatório muito detalhado e abrangente. Além disso, pedi ao Windsurf que pegasse os horários de publicação dos 100 principais posts do meu blog e os visualizasse na forma de um gráfico de contribuição do GitHub, o que ele fez de forma totalmente automática. Esses tipos de tarefas não podem ser feitos com o Cursor e o Windsurf tradicionais - somente Devin pode fazê-las, mas com essas modificações simples, podemos obter os resultados de uma ferramenta de US$ 500 por mês com uma ferramenta de US$ 20 por mês. Fiz até mesmo um experimento mais aprofundado: como um desenvolvedor completamente não familiarizado com o desenvolvimento front-end, passei uma hora e meia criando um quadro de empregos, tanto no front-end quanto no back-end. Esse tipo de eficiência é muito próximo, se não melhor, do que o Devin.

Por fim, todos os arquivos mencionados neste artigo podem ser baixados do site Regras do Devin Cursor Download - Basta copiar o conteúdo para a pasta do seu projeto atual e usá-lo.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Transforme o Cursor em Devin em uma hora e aprenda a diferença!

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil