Produto

Agentes do Cursor agora podem controlar seus próprios computadores

Jonas Nelle & Alexi Robbins11 min de leitura

Os agentes só são tão capazes quanto o ambiente em que são executados. Sem a capacidade de usar o software que estão criando, os agentes esbarram em um limite.

Nos últimos meses, resolvemos isso internamente dando aos agentes suas próprias máquinas virtuais com ambientes de desenvolvimento completos, além da capacidade de testar suas alterações e produzir artefatos (vídeos, capturas de tela e logs), para que você possa validar rapidamente o trabalho deles.

Hoje, estamos disponibilizando uma nova versão dos Agentes na nuvem do Cursor onde quer que você trabalhe, incluindo Web, dispositivos móveis, app para desktop, Slack e GitHub. Os agentes na nuvem fazem o próprio onboarding na sua base de código e produzem PRs prontos para merge com artefatos para demonstrar suas alterações. Você também pode controlar a área de trabalho remota do agente para usar o software modificado e fazer edições por conta própria, sem precisar fazer checkout da branch localmente.

Esta foi a maior mudança na forma como criamos software desde a transição do Tab autocomplete para o trabalho síncrono com agentes. Mais de 30% dos PRs que recebem merge na Cursor agora são criados por agentes operando de forma autônoma em sandboxes na nuvem.

30% dos PRs internos que recebem merge agora são criados por agentes na nuvem30% dos PRs internos que recebem merge agora são criados por agentes na nuvem

O próximo nível de autonomia

Os agentes locais facilitam o início da geração de código, mas rapidamente entram em conflito e passam a disputar entre si (e com você) os recursos do seu computador. Os agentes na nuvem eliminam essa limitação ao dar a cada agente uma VM isolada, para que você possa executar vários em paralelo.

Os agentes na nuvem também podem desenvolver e interagir com softwares diretamente em seu próprio sandbox, o que permite iterar até validar a saída, em vez de simplesmente repassar a primeira tentativa. O vídeo abaixo mostra uma prova de conceito das nossas pesquisas anteriores sobre uso avançado do computador.

Você pode ver o agente navegar por páginas da Web no navegador, manipular ferramentas como planilhas, interpretar dados, tomar decisões e resolver problemas em ambientes de interface complexos.

O agente gravou a si mesmo interagindo com aplicativos de desktop em sua VM.

Usando agentes na nuvem no Cursor

Ao longo do último mês, temos usado agentes na nuvem internamente, e isso mudou a forma como criamos software. Em vez de dividir tarefas em partes menores e microgerenciar agentes, delegamos tarefas mais ambiciosas e deixamos que eles rodem por conta própria.

Estas são algumas das formas como estamos usando agentes na nuvem:

Desenvolvendo novos recursos

Usamos agentes na nuvem para nos ajudar a desenvolver plugins, que lançamos recentemente no Cursor Marketplace. Aqui está um dos nossos prompts:

Para cada componente exibido na página de um determinado plugin, gostaríamos de incluir um link para o código-fonte. Para skills, commands, rules e subagents, esse é o arquivo .md. Para hooks, é o hooks.json. Para MCPs, é o .mcp.json ou o manifesto em que ele está definido. À medida que indexamos todos os componentes de um plugin, acompanhe o arquivo de origem e construa links para esse arquivo por meio da URL subjacente do GitHub. Exponha isso ao frontend e faça com que nosso frontend direcione para o GitHub usando este ícone. Teste c/ https://github.com/prisma/cursor-plugin localmente

O agente implementou o recurso e depois gravou a si mesmo navegando até o plugin Prisma importado e clicando em cada componente para verificar os links do GitHub.

O agente gravou a si mesmo clicando nos botões para verificar se eles apontam para os arquivos de origem corretos.

Para testes locais, o agente contornou temporariamente a feature flag que controlava a página do marketplace e depois desfez isso antes de fazer o push. Ele fez rebase em main, resolveu conflitos de merge e consolidou tudo em um único commit.

Reproduzindo vulnerabilidades

Iniciamos um agente na nuvem pelo Slack com o prompt "Please triage and explain this vulnerability to me in great detail", seguido por uma descrição de uma vulnerabilidade de exfiltração da área de transferência. Quando o agente terminou de executar, ele respondeu na thread do Slack com um resumo do que realizou.

Agente na nuvem reproduzindo uma vulnerabilidade

O agente criou uma página HTML que explora a vulnerabilidade por meio de uma API exposta. Ele iniciou um servidor de backend para hospedar a página de demonstração localmente e carregou a página no Browser integrado do Cursor.

O artefato de vídeo mostra o fluxo completo do ataque: o agente copiou um UUID de teste para a área de transferência do sistema, carregou a página de demonstração no Browser do Cursor e clicou em um botão para exfiltrar e exibir o UUID. Ele também tirou uma captura de tela mostrando o roubo bem-sucedido da área de transferência e fez commit do arquivo HTML de demonstração no repositório.

O agente gravou a si mesmo percorrendo o fluxo do ataque para demonstrar a vulnerabilidade.

Lidando com correções rápidas

Pedimos a um agente na nuvem para substituir o rótulo estático "Read lints" por um rótulo dinâmico baseado nos resultados do lint. Ele implementou "No linter errors" para zero diagnósticos e "Found N errors" para N diagnósticos, com estilo compatível com o CSS existente.

O agente testou dois casos no app desktop do Cursor: um arquivo com vários erros de tipo e um arquivo limpo, sem erros. O artefato de vídeo mostra o agente verificando que o arquivo limpo tem um grupo expandido que mostra “No linter errors”.

O agente gravou a si mesmo para mostrar que implementou corretamente a correção do rótulo de lint.

Testando a interface

Colocamos um agente na nuvem para verificar se tudo funciona corretamente em cursor.com/docs. Ele passou 45 minutos fazendo uma análise completa do nosso site de documentação. O agente forneceu um resumo de todos os recursos que testou, incluindo a barra lateral, a navegação superior, a busca, o botão de copiar a página, a caixa de diálogo de compartilhamento de feedback, o índice e a troca de tema.

O agente gravou a si mesmo testando a interface no site de documentação do Cursor.

Agora que os agentes conseguem lidar com a maior parte da implementação, descobrimos que o papel de um desenvolvedor está mais em definir a direção e decidir o que será lançado.

O que vem a seguir

Estamos caminhando para um futuro de bases de código autônomas, em que agentes fazem merge de PRs, gerenciam rollouts e monitoram a produção. Vamos sair de um mundo em que desenvolvedores usam agentes para criar diffs e chegar a outro em que agentes entregam recursos testados de ponta a ponta.

Para concretizar plenamente essa mudança, será necessário aprimorar as ferramentas, os modelos e os padrões de interação. Nosso foco no curto prazo é coordenar o trabalho entre muitos agentes e desenvolver modelos que aprendam com execuções anteriores e se tornem mais eficazes à medida que acumulam experiência.

Comece em cursor.com/onboard para ver o agente se configurar sozinho e gravar uma demonstração. Ou saiba mais na documentação.

Publicado em: Produto

Autors: Jonas Nelle & Alexi Robbins