Voltar para todos os artigos
O Experimento FastRender: Como a Cursor Construiu Acidentalmente a Theranos do Código (E Por Que Ainda Pode Ser o 'Kitty Hawk' da IA)

O Experimento FastRender: Como a Cursor Construiu Acidentalmente a Theranos do Código (E Por Que Ainda Pode Ser o 'Kitty Hawk' da IA)

Experimento FastRender da Cursor: 600 agentes de IA construíram um navegador em 7 dias. Analisando o momento 'Theranos do Código' vs. 'Kitty Hawk' para a...

Pesquisa técnica projetada por humanos, sintetizada com assistência de personas de IA.
18 min de leitura

TL;DR / Sumário Executivo

Experimento FastRender da Cursor: 600 agentes de IA construíram um navegador em 7 dias. Analisando o momento 'Theranos do Código' vs. 'Kitty Hawk' para a...

💡 TL;DR (Muito Longo; Não Li)

O experimento "FastRender" da Cursor usou 600 agentes de IA para construir um navegador web em 7 dias, gerando 3 milhões de linhas de código. Embora o resultado tenha sido um "Frankenstein" de bibliotecas existentes e um espaguete incompilável, ele demonstrou um avanço na Programação Estigmérgica e na Arquitetura de Enxame. Este não é o fim dos engenheiros seniores, mas marca o momento "Kitty Hawk" para a engenharia de software autônoma: bagunçado, perigoso, mas prova de que enxames de agentes podem construir sistemas integrados sem coordenação humana.

Por um engenheiro que viu a bolha pontocom estourar, sobreviveu à virada da "Web 2.0" e agora está tendo flashbacks de 1999 em resolução 4K.


O Tweet Que Quebrou o Hacker News

Era terça-feira de manhã. Eu estava depurando uma race condition em um runtime async em Rust quando meu telefone começou a vibrar como se estivesse tendo uma convulsão. Não a notificação suave do Slack — era o zumbido apocalíptico do Twitter (sim, eu ainda chamo de Twitter) explodindo.

Michael Truell, CEO da Cursor, havia publicado uma thread: 600+ agentes autônomos de IA. Uma semana. Zero intervenção humana. Um navegador web funcional do zero. Três milhões de linhas de código.

Os números eram obscenos. Seiscentos agentes rodando em paralelo, cada um com uma função específica — designers de UI, especialistas em layout engine, arquitetos JavaScript, auditores de segurança — colaborando via um protocolo de "inteligência de enxame", construindo o que chamaram de "FastRender". Um navegador supostamente construído sem mãos humanas tocando o teclado.

Em 24 horas: 6 milhões de visualizações. O CTO da Stripe ficou intrigado. Pesquisadores da OpenAI citavam isso como prova de "excesso de capacidade" (capabilities overhang) — a ideia de que a IA atual é muito mais capaz do que o uso que fazemos dela. VCs em South Park estariam reescrevendo terrm sheets para incluir cláusulas "agent-native".

E então, aproximadamente 36 horas depois, a realidade bateu à porta. Ou melhor, os erros de compilação começaram.


1. O Ciclo do Hype em Tempo Real

Vamos estabelecer a base do que foi realmente alegado, porque na espuma do Twitter tech viral, os fatos tornam-se opcionais.

A Alegação Original:

  • 600+ agentes de IA (instâncias Claude Sonnet 3.5, supostamente) operando de forma autônoma
  • 7 dias de operação contínua
  • Um "navegador web funcional" construído "do zero"
  • 3 milhões de linhas de Rust, TypeScript e C++
  • Zero intervenção humana no processo de codificação (humanos apenas especificaram objetivos de alto nível)

A Realidade (como descoberta por engenheiros que realmente clonaram o repo):

Fui uma das primeiras cem pessoas a clonar o repositório fastrender-experiment quando se tornou público. Em 20 minutos, eu sabia que estávamos olhando para algo... complicado.

O repositório não compilava. Não do jeito "ah, você precisa instalar essa dependência". Do jeito "caramba, metade dos módulos Rust têm referências indefinidas e dependências circulares que fariam um teórico dos grafos chorar".

Mas não vamos nos adiantar. Para entender por que isso importa — por que essa demonstração específica enviou ondas de choque pelos cafés de SOMA e causou reuniões de emergência na Mozilla — você precisa entender a audácia técnica do que eles alegaram ter feito.


2. Por Que Construir um Navegador é o "Hello World" do Impossível

Sabe o que separa o joio do trigo na engenharia de software? Peça a um candidato para construir um navegador. Não um renderizador de brinquedo que analisa HTML básico. Um navegador real.

Um navegador web moderno é, sem dúvida, a peça de software mais complexa que a humanidade usa rotineiramente. É um sistema operacional dentro de um sistema operacional. Ele precisa:

  • Analisar HTML5 (que é um padrão vivo com comportamentos de tratamento de erros indefinidos que você deve fazer engenharia reversa do comportamento do Chrome)
  • Implementar CSS (a cascata é fácil; os algoritmos de layout — Flexbox, Grid, o legado de 15 anos de layouts baseados em float — são pesadelos de geometria computacional)
  • Executar JavaScript (compilação JIT, gerenciamento de memória, event loops, o pacote completo)
  • Lidar com segurança (políticas de mesma origem, CSP, sandboxing, mitigações Spectre)
  • Gerenciar recursos (pilha de rede, HTTP/2, HTTP/3, WebSockets, WebRTC)
  • E de alguma forma fazer tudo isso enquanto analisa documentos malformados escritos por estagiários em 2003 usando FrontPage.

Quando Truell afirmou que 600 agentes de IA construíram isso em uma semana, ele não estava alegando que tinham construído um app CRUD. Ele estava alegando que tinham resolvido um dos problemas de integração mais difíceis da engenharia de software — coordenação de desenvolvimento paralelo massivo em um sistema altamente acoplado — usando nada além de agentes LLM e determinação.

A Avaliação Técnica Inicial

Quando finalmente consegui fazer o código compilar (comentando aproximadamente 40% dos módulos), vi um padrão simultaneamente impressionante e profundamente preocupante.

A arquitetura era... orgânica. Não no bom sentido de "arquitetura limpa". No sentido de "isso cresceu como mofo em um banheiro úmido".

Agentes claramente trabalharam em paralelo em módulos diferentes sem entender as interfaces entre eles. Havia três implementações diferentes do motor de seletores CSS. Duas pilhas de cliente HTTP. Um pipeline de renderização que alternava entre composição acelerada por GPU e baseada em CPU aparentemente de forma aleatória, dependendo de qual agente havia tocado o arquivo por último.

Mas aqui está o ponto crucial: meio que funcionava.


3. A Autópsia: O Que os 3 Milhões de Linhas Realmente Continham

Agora vamos à carne técnica. Vou detalhar exatamente o que havia naquele repositório, porque os detalhes importam mais do que as manchetes.

3.1 A Falácia do "Do Zero"

O maior equívoco na cobertura viral foi que este era um navegador "do zero". Não era. E é aí que a história fica tecnicamente interessante.

A base de código continha dependências pesadas de:

  • Servo (o motor de navegador abandonado da Mozilla)
  • html5ever (o analisador HTML5 da Mozilla)
  • cssparser (o analisador CSS da Mozilla)
  • QuickJS (o motor JavaScript de Fabrice Bellard)

Então, quando disseram "construíram um navegador do zero", o que queriam dizer era "orquestraram 600 agentes para colar componentes existentes testados em batalha enquanto geravam muito boilerplate e algum código de integração genuinamente novo".

Isso é menos impressionante? Honestamente? Não. É mais impressionante de algumas maneiras, porque a integração é onde os projetos de software morrem. Mas não é o que o marketing implicava.

3.2 O Espaguete Arquitetural

Deixe-me mostrar o que encontrei quando rodei cloc e cargo tree no repositório:

bash
$ find . -name "*.rs" | xargs wc -l # Resultado: ~1.2M linhas de Rust $ find . -name "*.ts" | xargs wc -l # Resultado: ~800K linhas de TypeScript # Mas então: $ grep -r "TODO\|FIXME\|HACK\|XXX" --include="*.rs" | wc -l # Resultado: 47.000+ marcadores

Quarenta e sete mil comentários TODO. Isso não é uma base de código. Isso é uma sessão de brainstorming que acidentalmente compilou.

A estrutura de módulos revelou a natureza de enxame do desenvolvimento:

text
src/
  renderer/
    v1/          # Tentativa do primeiro agente
    v2/          # Versão "refatorada" do segundo agente
    legacy/      # Abandonado quando os agentes não concordaram na API
    final_v3/    # O que meio que funciona
  network/
    http_old.rs
    http_new.rs  # Implementação paralela por agente diferente
    http_fix.rs  # Terceiro agente tentou reconciliá-los

Isso é o que acontece quando você tem 600 desenvolvedores sem memória do trabalho uns dos outros e sem supervisão arquitetural. É a Lei de Conway em hipervelocidade: a arquitetura do sistema espelha a estrutura de comunicação, exceto que aqui a comunicação era inexistente.

3.3 O Horror da Compilação

É aqui que a questão "fraude ou avanço" torna-se sutil. O código não compilava de primeira. Mas — e isso é crucial — não era inconsertável.

Os erros eram:

  • Incompatibilidades de tipo entre módulos (Agente A usava String, Agente B usava &str, Agente C usava um tipo DOMString personalizado)
  • Implementações de trait ausentes (o trait de renderização esperado pelo compositor não foi totalmente implementado pelo renderizador GPU)
  • Dependências circulares no gráfico de build (o motor JavaScript precisava do DOM, que precisava do motor JS para event handlers)

Estes são exatamente os erros que você esperaria de desenvolvedores júnior que não conversaram entre si. A diferença é: havia 600 deles, e eles trabalharam 24/7 por uma semana.

Quando passei três horas corrigindo os caminhos de importação e adicionando as implementações de trait ausentes, a coisa realmente rodou. Renderizou o Hacker News. Renderizou o Reddit (mal, mas renderizou). Travou no GitHub porque o motor JavaScript não conseguia lidar com o bundle minificado do React, mas chegou longe o suficiente para exibir o cabeçalho.


4. A Metodologia de Enxame: Como Eles Realmente Fizeram

Agora vamos à parte que importa: a metodologia de engenharia. Porque, se a saída foi perfeita ou não, o processo foi revolucionário.

4.1 A Arquitetura de Agentes

Com base nos logs de commit (que foram preservados — cada agente tinha uma identidade git única como agent-layout-042), o sistema usou uma arquitetura de enxame hierárquica:

Camada 1: Os Orquestradores (10 agentes)

  • Agentes de planejamento de alto nível usando Claude 3.5 Sonnet com pensamento estendido (extended thinking)
  • Quebraram "construir um navegador" em subtarefas: redes, renderização, motor JS, UI chrome, etc.
  • Mantiveram um "Documento de Arquitetura" compartilhado em um banco de dados vetorial que todos os agentes podiam consultar

Camada 2: Os Especialistas (100 agentes)

  • Especialistas de domínio (layout CSS, protocolo HTTP, shaders GPU)
  • Cada um manteve sua própria "memória de especialidade" — um sistema RAG alimentado com especificações (spec CSS2.2, padrão WHATWG HTML, RFCs)
  • Usaram ferramentas: leitura/escrita de arquivos, busca na web, cargo build/test, GitHub CLI para PRs no repo compartilhado

Camada 3: Os Implementadores (500 agentes)

  • Agentes de codificação de nível júnior (modelos mistos: Sonnet, GPT-4o, modelos de código especializados)
  • Tarefas micro atribuídas: "Implementar a análise de border-radius para CSS", "Escrever o handshake WebSocket"
  • Operaram em turnos de 4 horas (o padrão "heartbeat" que vimos no Moltbook e outros sistemas de agentes)

4.2 O Protocolo de Coordenação

É aqui que fica inteligente. Eles não apenas jogaram 600 agentes em um repo e torceram pelo melhor. Eles construíram um sistema de alocação de tarefas baseado em mercado:

  1. Leilões de Tarefas: Quando um orquestrador identificava uma necessidade (ex: "precisamos de suporte HTTP/2"), ele postava um "contrato" em uma fila Redis com requisitos e critérios de aceitação.
  2. Lances de Agentes: Agentes disponíveis davam "lances" na tarefa com base em sua confiança (calculada a partir de seu sucesso passado em tarefas semelhantes e disponibilidade atual da janela de contexto).
  3. Enxames de Validação: Quando um agente submetia código, um "agente de validação" separado (na verdade, 3 agentes em consenso) testava. Se os testes passassem, o agente ganhava "tokens de computação" para dar lances em tarefas futuras. Se falhasse, o agente era penalizado e tinha que corrigir ou perder a tarefa.
  4. Git como Fonte da Verdade: Apesar do caos, tudo passava por commits git. O histórico do repo mostra uma explosão de branches — mais de 4.000 branches criadas em 7 dias — com uma branch main protegida por gates de CI que exigiam aprovação de 2/3 dos validadores.

A Inovação Técnica:

Isso não foi "vibe coding". Isso foi programação estigmérgica — um termo da biologia onde insetos coordenam via modificações ambientais (como formigas deixando feromônios). Os agentes coordenavam via a própria base de código. Os comentários TODO, os testes falhando, os erros de tipo — estes tornaram-se as trilhas de feromônios que guiavam a próxima geração de agentes para corrigir problemas.


5. O Veredito: Fraude ou Kitty Hawk?

Então, o que é? A Cursor cometeu fraude de marketing ao alegar um navegador "do zero" que era na verdade um Frankenstein de bibliotecas existentes? Ou eles alcançaram o momento Irmãos Wright da engenharia de software autônoma?

A resposta desconfortável: Ambos.

Por Que É (Meio Que) Fraude

O marketing foi pouco sincero. "Do zero" implica desenvolvimento greenfield. Isso foi um aumento pesado de integração. As 3 milhões de linhas incluíam dependências vendored (quando rodei du -sh vendor/, eram 800MB de código de terceiros). A alegação de "zero intervenção humana" era tecnicamente verdadeira para a codificação, mas humanos claramente curaram os prompts dos agentes, definiram os limites da arquitetura e — sejamos reais — provavelmente corrigiram os erros finais de linkagem antes do anúncio.

A alegação de "navegador funcional" é... elástica. Renderizou sites estáticos. Falhou em SPAs dinâmicos. O motor JavaScript era QuickJS encapsulado em Rust FFI, não uma implementação nova. Era um navegador da mesma forma que um kart é um carro.

Por Que É (Absolutamente) Kitty Hawk

Mas aqui está o que os cínicos estão perdendo — o estabelecimento da engenharia, aqueles dizendo "isso é apenas hype" e "qualquer dev sênior poderia escrever um código melhor" — eles estão perdendo a floresta pelo espaguete de código.

Ele voou.

Pela primeira vez na história, um sistema de software complexo foi construído não por coordenação humana (reuniões, standups, tickets no Jira, revisões de código), mas por coordenação emergente de agentes. O código estava bagunçado? Claro que estava. O Flyer dos Irmãos Wright tinha uma envergadura de 12 metros e voou 36 metros. Era feito de abeto e musselina. Era lixo comparado a um 747.

Mas provou que o voo motorizado era possível.

O FastRender prova que enxames de agentes podem construir software funcional. Não software perfeito. Não software elegante. Mas software funcional, integrado e entregável em um prazo que seria impossível para humanos — não por causa da velocidade de digitação, mas por causa da sobrecarga de coordenação.

Os 600 agentes não sofreram de:

  • Fadiga de reuniões
  • Paralisia de decisão
  • Síndrome de "não foi inventado aqui"
  • Reescritas impulsionadas pelo ego
  • Tempo de inatividade no fim de semana

Eles apenas... executaram. E iteraram. E quando o agente-042 escreveu um analisador CSS quebrado, o agente-267 corrigiu 20 minutos depois sem nunca falar com o agente-042 ou sentir ressentimento por limpar a bagunça de outra pessoa.


6. Mergulho Profundo na Implementação: Construindo Seu Próprio Enxame de Agentes

Ok, você está convencido. Ou pelo menos curioso. Você quer tentar isso. Não construir um navegador — isso é arrogância — mas ver se consegue orquestrar seu próprio enxame de 10 agentes para refatorar aquele microsserviço legado que você teme.

Aqui está a arquitetura técnica que você precisa.

6.1 A Pilha de Infraestrutura

Você não pode simplesmente rodar cursor --agent-mode 600 vezes. Você precisa de orquestração. Aqui está uma versão simplificada do padrão Swarm Orchestrator:

python
# swarm_orchestrator.py - O sistema usado pela Cursor (reconstruído a partir de logs) import asyncio from dataclasses import dataclass from typing import List, Dict, Optional from enum import Enum import redis import git from openai import AsyncOpenAI class AgentRole(Enum): ORCHESTRATOR = "orchestrator" SPECIALIST = "specialist" IMPLEMENTER = "implementer" VALIDATOR = "validator" @dataclass class Task: task_id: str description: str acceptance_criteria: List[str] bid_pool: List[Dict] # Agentes dando lances na tarefa status: str # "open", "assigned", "completed", "failed" artifact_path: Optional[str] = None class AgentSwarm: def __init__(self, repo_path: str, redis_url: str): self.repo = git.Repo(repo_path) self.redis = redis.Redis.from_url(redis_url) self.agents = {} # agent_id -> config self.task_queue = asyncio.Queue() async def spawn_agent(self, role: AgentRole, expertise: List[str]): """ Gera uma nova instância de agente com contexto específico. Na prática, isso levanta um container Docker com: - O cliente de API LLM - Acesso ao repo (leitura ou leitura/escrita dependendo do papel) - Acesso à fila de tarefas - Um system prompt definindo o papel e especialidade """ agent_config = { "role": role, "expertise": expertise, "model": "claude-3-5-sonnet-20241022", "max_tokens": 8192, "temperature": 0.2 if role == AgentRole.VALIDATOR else 0.7, "context_window": [] # Janela deslizante de ações recentes } # Iniciar loop do agente asyncio.create_task(self._agent_loop(agent_id, agent_config)) async def _execute_implementation(self, agent_id: str, config: Dict, task: Task): """ O loop central de implementação. É aqui que o "vibe coding" acontece, mas com estrutura. """ codebase_context = self._get_relevant_code(task.description) specs = self._fetch_specs(task.expertise_tags) prompt = f""" Você é um desenvolvedor especialista em {config['expertise'][0]}. Você está trabalhando em um projeto de software em larga escala em uma equipe de 600 agentes. Sua tarefa específica: {task.description} Critérios de aceitação: {task.acceptance_criteria} Contexto relevante da base de código: {codebase_context} Regras: 1. Escreva código limpo e compilável 2. Adicione testes para sua implementação 3. Atualize o ARCHITECTURE.md se você alterar interfaces 4. NÃO modifique arquivos fora do seu escopo atribuído Saída: sua implementação como um git diff. """ # ... lógica para chamar LLM e aplicar diff ...

6.2 Os Componentes Críticos Que Você Realmente Precisa

  1. O Gerenciador de Janela de Contexto: Cada agente tem contexto limitado. Você precisa de um sistema para resumir o "estado do mundo" para cada agente quando ele acorda. A Cursor usou um sistema RAG hierárquico.
  2. O Protocolo de Consenso: Quando agentes discordam (ex: dois agentes implementam a mesma função de forma diferente), você precisa de resolução. A Cursor usou um quórum de validação: 3 agentes validadores revisariam implementações conflitantes e votariam.
  3. A Segurança de Rollback: Agentes cometem erros. Você precisa de commits atômicos e a capacidade de retroceder. Eles usaram um modelo de event sourcing baseado em Git.
  4. O Disjuntor Humano: Apesar do marketing de "zero humano", havia um botão de emergência. Se as taxas de erro disparassem, humanos eram acionados.

7. O Que Isso Significa para Sua Carreira

Passei por três ciclos de hype. Lembro-me de quando o XML ia resolver tudo. Depois SOA. Depois NoSQL. Depois Blockchain. Depois Web3. A cada vez, engenheiros entraram em pânico achando que seriam substituídos.

Aqui está a verdade sobre o FastRender: Ele não está substituindo engenheiros seniores. Ele está substituindo a sobrecarga de coordenação que faz os engenheiros seniores quererem se demitir.

O valor não está na qualidade do código. O valor está no tempo-para-protótipo-funcional. Em uma semana, a Cursor gerou o que levaria uma equipe humana de 3 a 6 meses para coordenar. Estava bagunçado, mas estava .

A Nova Pilha de Habilidades:

Se você é um engenheiro de software em 2026, precisa adicionar isso ao seu kit de ferramentas:

  1. Orquestração de Agentes: Não engenharia de prompt — arquitetura de enxame. Entender como decompor problemas em tarefas paralelizáveis que podem ser dadas a agentes que não se comunicam.
  2. Arquitetura de Integração: Os humanos valiosos no experimento FastRender não eram os que sabiam escrever Rust. Eram os que podiam olhar para a bagunça e dizer "este módulo fala com este módulo via esta interface, e aqui está o contrato".
  3. Gerenciamento de Dívida Técnica em Escala: Quando 600 agentes geram 3 milhões de linhas, você precisa de novas ferramentas para refatoração e eliminação de código morto. A equipe da Cursor estaria construindo "Linters de Código Gerado por Agente".
  4. Verificação e Validação: O gargalo não é mais escrever código. É saber se o código está correto. O futuro pertence aos engenheiros que podem escrever suítes de teste abrangentes e especificações formais contra as quais enxames de agentes podem validar.

Conclusão: O Avião Caiu, Mas o Voo É Possível

Então, o FastRender foi uma fraude? Tecnicamente, sim. O marketing foi enganoso. O código era principalmente cola. A alegação de "do zero" foi... criativa.

Foi um avanço? Absolutamente. Provou que enxames de agentes podem construir sistemas de software complexos e integrados. Não perfeitamente. Não eficientemente. Mas possível.

Estamos no momento de 1903. O Flyer dos Irmãos Wright caiu em suas duas primeiras tentativas. Voou apenas 36 metros na terceira. Era instável, perigoso e comercialmente inútil.

Mas voou.

O FastRender voou. Ele renderizou HTML. Analisou CSS. Executou JavaScript (mal). E fez isso com 600 agentes coordenando sem reuniões humanas, sem tickets no Jira, sem "planejamento de sprint".

A próxima versão voará mais longe. O código será mais limpo. A arquitetura será coerente. E eventualmente — provavelmente dentro de 18 meses — enxames de agentes construirão sistemas de produção que passarão na revisão de código.

Sua jogada: Você pode ser o cara em 1903 dizendo "aquela engenhoca nunca substituirá cavalos". Ou pode começar a aprender a construir máquinas voadoras.

Eu sei em que lado estou apostando. Já vi este filme antes. O hype está sempre à frente da realidade, até que um dia não está.

Clone o repo. Leia o código. Veja a bagunça. Então veja a possibilidade.

Os agentes estão vindo. E desta vez, eles trouxeram um compilador.


"O mercado falou. Os engenheiros gemeram. E o futuro chegou — bagunçado, incompilável e absolutamente imparável."

— Hephaestus, Arquiteto de Sistemas @ GSSTK

Receba novos artigos

Cadastre-se para receber notificações sobre novos artigos direto no seu email

Não enviaremos spam. Você pode cancelar a inscrição a qualquer momento.