- A Cursor experimentou se agentes autônomos de codificação podem ser executados em paralelo por semanas para concluir projetos de grande escala
- No início, usou uma estrutura de colaboração dinâmica, mas surgiram gargalos devido a conflitos de lock e duplicação de trabalho
- Depois, separou os papéis em Planner e Worker, melhorando bastante o paralelismo e a eficiência
- Com essa estrutura, implementou um navegador web do zero, com centenas de agentes escrevendo mais de 1 milhão de linhas de código
- O experimento mostrou que uma estrutura simples e um bom desenho de prompts são a chave para escalar a codificação autônoma de longo prazo
Limites de um agente único
- Os agentes de codificação únicos atuais são eficientes para tarefas simples, mas lentos em projetos complexos
- Executar vários agentes em paralelo é um caminho natural para escalar, mas a coordenação de tarefas é difícil
- No início, foi tentada uma forma de colaboração dinâmica sem planejamento prévio
- Uma estrutura em que cada agente observa o estado dos outros e decide por conta própria a próxima tarefa
Processo de aprendizado da colaboração
- Foi adotada uma estrutura em que todos os agentes tinham autoridade equivalente e coordenavam o trabalho por meio de arquivos compartilhados
- Cada agente verificava o estado dos demais, recebia uma tarefa e atualizava seu estado
- Para evitar duplicação, foi usado um mecanismo de lock
- Problemas
- Agentes mantinham locks por muito tempo ou não os liberavam, reduzindo a velocidade total para o equivalente a apenas 2 ou 3 entre 20
- Ocorriam instabilidades do sistema, como falhas enquanto o lock estava em posse do agente ou edição de arquivos sem lock
- Houve então a transição para controle de concorrência otimista (optimistic concurrency control)
- Leituras livres e falha nas gravações quando havia mudança de estado
- Era simples e estável, mas, em uma estrutura sem hierarquia, os agentes passaram a adotar um comportamento excessivamente avesso a risco
- Evitavam problemas difíceis e repetiam apenas pequenas correções, gerando um ciclo de trabalho sem progresso
Estrutura de Planner e Worker
- A arquitetura foi alterada para um pipeline hierárquico com separação de papéis
- Planners: exploram a base de código, criam tarefas e, quando necessário, geram planners subordinados
- Workers: executam apenas a tarefa recebida e, ao concluir, fazem push das alterações
- Em cada ciclo, um agente juiz (judge) decide se o sistema deve avançar para a próxima etapa
- Essa estrutura resolveu a maior parte dos problemas de colaboração, garantindo escalabilidade para projetos de grande porte
Experimentos de longa duração
- Objetivo do experimento: implementar um navegador web do zero
- Execução de cerca de 1 semana, com mais de 1 milhão de linhas de código escritas em 1.000 arquivos
- Centenas de workers fizeram push simultaneamente para a mesma branch, mas os conflitos foram mínimos
- O código resultante foi publicado no GitHub
- Experimentos adicionais
- Migração de Solid para React: em 3 semanas, mudanças de +266K/-193K, confirmando a viabilidade de merge
- Melhoria de renderização de vídeo: versão em Rust com ganho de 25x em velocidade, além da adição de zoom, pan e motion blur
- Esse código deve entrar em produção em breve
Principais aprendizados
- Após investir dezenas de bilhões de tokens, constatou-se que, embora não seja totalmente eficiente, o resultado foi melhor do que o esperado
- A escolha do modelo é central para tarefas autônomas de longa duração
- GPT-5.2 se destacou em manter foco, seguir instruções e implementar com precisão
- Opus 4.5 mostrou tendência a encerrar cedo
- GPT-5.2 foi mais adequado para o papel de planner do que GPT-5.1-codex
- O time passou a escolher o modelo ideal para cada papel
- A remoção de complexidade contribuiu para melhorar o desempenho
- O papel de integrador de qualidade (integrator) acabou criando gargalos
- Os próprios workers conseguiam resolver conflitos por conta própria
- A estrutura simples foi a mais eficaz
- Teoria de sistemas distribuídos ou modelos de desenho organizacional se mostraram úteis apenas em parte
- Estrutura de menos causa conflitos e duplicação; estrutura demais aumenta a fragilidade
- O desenho de prompts teve impacto decisivo no comportamento do sistema
- Foi essencial para manter o foco no longo prazo, evitar comportamentos patológicos e incentivar colaboração
Próximos desafios
- A coordenação entre múltiplos agentes continua sendo um problema difícil
- É preciso melhorar para que planners planejem automaticamente os próximos passos quando uma tarefa for concluída
- Alguns agentes acabam rodando por tempo excessivo, exigindo reinicializações periódicas
- Ainda assim, para a pergunta central — “aumentar o número de agentes permite escalar a codificação autônoma?” —
- Foi confirmado que centenas de agentes podem colaborar por semanas e produzir progresso real
- Essa tecnologia deve ser incorporada no futuro aos recursos de agentes da Cursor
1 comentários
Comentários do Hacker News
Achei interessante porque estou trabalhando em algo relacionado ao texto do Steve Yegge, Welcome to Gas Town
No texto de previsões sobre LLM que compartilhei recentemente, artigo de previsões sobre LLM, eu disse que por volta de 2029 não será surpreendente criar um navegador com programação assistida por AI, e este projeto recente do Cursor é a segunda tentativa. Outro exemplo pode ser visto neste post do Reddit
Rodei os testes do repositório por conta própria e estavam cheios de erros e avisos, e o CI já falhava havia muito tempo. Não sei se faz sentido chamar isso de “exemplo de sucesso”. Acho que uma abordagem assistida e centrada em humanos é mais realista do que programação totalmente autônoma
Fico curioso por que esse PR ainda não foi mergeado. O futuro em que enxames de agentes de AI concluem softwares complexos no longo prazo é legal, mas o exemplo atual é fraco demais. O ponto de colaboração com humanos é mais importante
É uma pena que não tenham experimentado aumentando a dificuldade aos poucos. Se tivessem expandido gradualmente de React CRUD → clone do Paint → gerenciador de arquivos → navegador, daria para ver com clareza as etapas de evolução
Eu também criei o tjs de forma parecida. É o validador de JSON Schema mais rápido e preciso do mundo, e o padrão de planner/delegate com git subtree funcionou bem. Softwares com padrões e testes bem definidos podem ser reescritos e otimizados rapidamente por agentes de AI. Os comandos relacionados podem ser vistos em spawn-perf-agents.md
Criar um navegador do zero é muito difícil, mas o texto apresentado faltava análise detalhada. Se for só no nível de “compila”, o significado é pequeno. A verificação de verdade é se dá para incorporar a próxima mudança com estabilidade
Segundo o blog, foram usados trilhões de tokens; calculando pelo preço da API da OpenAI, isso daria dezenas de milhões de dólares. Nesse nível, talvez fosse melhor simplesmente doar para uma equipe de navegador
Tentei fazer o build pessoalmente e surgiram mais de 100 erros de compilação. A maioria dos commits estava com o CI falhando, e na prática era uma combinação de várias bibliotecas open source. quickjs, wgpu, winit, egui, html parser e outros componentes existentes foram trazidos quase como estavam, mas o CEO alegou que era uma “VM de JS customizada”, o que gera uma impressão enganosa Ainda assim, é impressionante que a AI tenha feito essa integração de forma autônoma
O código parecia muito frágil e instável. Por exemplo, a função render_placeholder parece um código temporário que só preenche o frame buffer. Fiquei curioso sobre qual papel esse código realmente desempenha e qual é o custo em tokens/tempo por teste