
O Compilador vs O Navegador: Dois Exércitos de Agentes de IA Entram em uma Base de Código
16 agentes Claude da Anthropic construíram um compilador C. Centenas de agentes do Cursor construíram um navegador. Uma análise profunda de dois projetos...
✨TL;DR / Sumário Executivo
16 agentes Claude da Anthropic construíram um compilador C. Centenas de agentes do Cursor construíram um navegador. Uma análise profunda de dois projetos...
💡 TL;DR (Muito Longo; Não Li)
Principais conclusões em 60 segundos:
- A Anthropic encarregou 16 agentes Claude Opus 4.6 de construir um compilador C do zero em Rust. Zero dependências. Mais de 100 mil linhas de código. Taxa de aprovação de 99% no conjunto de testes de tortura do GCC. O kernel do Linux inicializa. Doom roda. Custo: $20.000.
- O Cursor apontou centenas de agentes GPT-5.2 para construir um navegador web do zero. Mais de 1 milhão de linhas de Rust. 3.342 commits. Ele renderiza páginas estáticas. O GitHub Actions CI tem uma taxa de falha de 88%.
- Duas arquiteturas de coordenação radicalmente diferentes: A Anthropic usou um enxame plano baseado em git sem orquestrador — o conjunto de testes é o orquestrador. O Cursor evoluiu através de três arquiteturas antes de se estabelecer em um pipeline hierárquico de planejador/trabalhador/juiz.
- O mesmo modelo que constrói também quebra: No mesmo dia, a Anthropic publicou que o Claude encontrou mais de 500 zero-days em projetos de código aberto bem testados. As capacidades são de uso duplo.
- O "harness" importa mais que o modelo. A Anthropic obteve resultados mensuravelmente melhores com 16 agentes e um ótimo conjunto de testes do que o Cursor obteve com centenas de agentes e um planejador hierárquico.
- Resumo: Estamos assistindo ao nascimento de uma nova disciplina de engenharia — o design sistemático de "harnesses", conjuntos de testes e protocolos de coordenação para agentes autônomos geradores de código. Testes são o novo fosso. Arquitetura é o novo código.
1. O Cenário: Dois Projetos Impossíveis
Em janeiro de 2026, o Cursor apontou centenas de agentes GPT-5.2 para um objetivo ambicioso: construir um navegador web do zero. Três semanas depois, eles tinham o FastRender — mais de um milhão de linhas de Rust, 3.342 commits e um mecanismo de renderização que meio que podia exibir páginas web reais.
Três semanas depois disso, a Anthropic publicou uma resposta que ninguém esperava. Nicholas Carlini, um pesquisador da equipe de Salvaguardas, encarregou 16 instâncias do Claude Opus 4.6 de construir um compilador C. Do zero. Em Rust. Capaz de compilar o kernel do Linux. O resultado: 100.000 linhas de código, uma taxa de aprovação de 99% no conjunto de testes de tortura do GCC e uma conta de API de $20.000.
Duas empresas. Dois projetos impossíveis. Duas arquiteturas radicalmente diferentes para coordenar agentes autônomos. E enterrado nos detalhes técnicos de cada experimento está um projeto de como o software será construído na próxima década.
Este não é um artigo promocional. Vamos desmontar ambos os projetos.
2. O Problema Que Ambos os Projetos Estão Realmente Resolvendo
Vamos esclarecer uma coisa: nem a Anthropic nem o Cursor realmente precisavam de um compilador C ou de um navegador web. Estes são veículos de pesquisa. O verdadeiro produto é o harness — a infraestrutura de coordenação que permite que múltiplos agentes de IA trabalhem em uma base de código compartilhada sem pisar uns nos outros, desviar da tarefa ou produzir lixo.
O desafio fundamental é este: um único agente LLM pode fechar um ticket, corrigir um bug, talvez implementar um pequeno recurso. Mas ele trava em qualquer coisa que leve mais de algumas horas de trabalho contínuo. O contexto se perde. O modelo esquece decisões anteriores. Ele se torna avesso ao risco, escolhendo refatorações seguras em vez de mudanças arquiteturais complexas. Cobrimos os riscos arquiteturais e de segurança desse paradigma em The Agentic CLI Takeover — mas mesmo essa análise não antecipou a escala que estamos vendo agora.
A solução óbvia — rodar mais agentes em paralelo — introduz uma nova classe de problemas que parecerão familiares para qualquer pessoa que já depurou um sistema distribuído: condições de corrida, trabalho duplicado, merges conflitantes e a sobrecarga de coordenação que transforma 16 agentes na taxa de transferência efetiva de dois.
Ambos os projetos são testes de estresse para diferentes respostas a esse problema de coordenação. E as respostas a que chegaram são fascinantemente diferentes.
3. Mergulho Profundo na Arquitetura: O Enxame Plano da Anthropic
A abordagem de Carlini é quase agressivamente simples. Aqui está o loop principal:
#!/bin/bash
while true; do
COMMIT=$(git rev-parse --short=6 HEAD)
LOGFILE="agent_logs/agent_${COMMIT}.log"
claude --dangerously-skip-permissions \
-p "$(cat AGENT_PROMPT.md)" \
--model claude-opus-X-Y &> "$LOGFILE"
doneÉ isso. Um loop while true que gera uma sessão do Claude Code, deixa-o trabalhar até terminar e imediatamente gera outra — um padrão que exploramos em The Agentic Singularity, onde destrinchamos a morte da caixa de chat e a ascensão dos loops autônomos. Cada um dos 16 agentes roda em seu próprio contêiner Docker com o repositório montado de um upstream puro. Quando um agente termina, ele faz pull, merge, push e o ciclo se repete.
Não há orquestrador. Nem planejador. Nem hierarquia. Cada agente decide independentemente no que trabalhar a seguir olhando para a base de código, lendo um diretório compartilhado current_tasks/ e escolhendo o "próximo problema mais óbvio".
A sincronização é tratada pelo próprio git. Um agente "bloqueia" uma tarefa gravando um arquivo de texto em current_tasks/. Se dois agentes tentarem reivindicar a mesma tarefa simultaneamente, a resolução de conflitos de merge do git força o segundo agente a escolher outra coisa. É primitivo, e Carlini admite isso — mas funciona porque o problema se decompõe naturalmente em muitas sub-tarefas independentes. (Para aqueles preocupados em usar o git como uma camada de coordenação de agentes, nossa análise em The MCP Git Wake-Up Call permanece relevante — qualquer fluxo de trabalho onde agentes fazem push para repositórios compartilhados é uma superfície de ataque.)
O insight chave: o conjunto de testes é o orquestrador. Carlini investiu um enorme esforço na construção de um "harness" de testes de qualidade extremamente alta. O progresso do compilador é medido inteiramente por quais testes passam. Cada agente pode identificar independentemente regressões, escolher um teste falhando para corrigir e verificar seu trabalho — tudo sem falar com nenhum outro agente.
3.1 Onde o Modelo Plano Falha
O modelo plano atingiu uma parede quando os agentes começaram a compilar o kernel do Linux. Ao contrário de um conjunto de testes com centenas de testes independentes, compilar o Linux é uma tarefa monolítica. Cada agente atingiria o mesmo bug, produziria a mesma correção e sobrescreveria as mudanças uns dos outros. Ter 16 agentes rodando não era melhor do que ter um.
A correção de Carlini foi inteligente: usar o GCC como um oráculo. Um novo harness de teste compilava aleatoriamente a maioria dos arquivos do kernel usando GCC, e apenas o subconjunto restante com o compilador do Claude. Se o kernel inicializasse, o problema não estava no subconjunto do Claude. Se quebrasse, a busca binária poderia restringir qual arquivo causou a falha. Isso transformou uma tarefa gigante de volta em muitas tarefas independentes — uma por arquivo — e o paralelismo foi retomado.
Este é um exemplo clássico de delta debugging aplicado à coordenação de agentes, e é o tipo de truque que só funciona quando você tem uma implementação de referência confiável para comparar.
3.2 A Própria Arquitetura do Compilador
A arquitetura interna do compilador merece escrutínio porque revela o que o Claude pode e não pode projetar autonomamente.
O pipeline segue uma estrutura clássica: código fonte C → lexer → parser → AST → análise semântica → representação intermediária baseada em SSA → passagens de otimização → geração de código específica da arquitetura → assembler → linker → binário ELF. Carlini especificou que o compilador deveria usar um IR SSA para permitir passagens de otimização, mas não especificou como implementá-lo. O Claude projetou o resto.
Ele visa quatro arquiteturas: x86-64, i686, AArch64 e RISC-V 64. Cada uma recebe seu próprio gerador de código com otimizadores peephole específicos da arquitetura. O backend x86 lida com precisão estendida de 80 bits via instruções FPU x87. Os backends ARM e RISC-V suportam long double IEEE binary128 via chamadas de biblioteca soft-float. Tudo isso foi implementado sem dependências externas — nem mesmo um gerador de parser. O lexer, o parser e tudo a jusante é Rust feito à mão. (A ironia de construir um compilador C em uma linguagem segura para a memória não passa despercebida por ninguém que seguiu o debate em The Memory Ultimatum.)
A especialização dos agentes é digna de nota. Carlini não jogou apenas 16 agentes idênticos no problema. Ele atribuiu papéis:
- Vários agentes trabalharam no compilador principal (parsing, codegen, otimização)
- Um agente foi dedicado a aglutinar código duplicado — crítico, já que o código gerado por LLM freqüentemente reimplementa funcionalidade existente
- Um agente focou no desempenho do compilador (tornar o próprio compilador mais rápido)
- Um agente otimizou a qualidade do código gerado (tornar a saída compilada mais eficiente)
- Um agente agiu como um crítico de design Rust, reestruturando o projeto de forma idiomática
- Um agente manteve a documentação
Essa especialização de papéis remete a como as equipes de compiladores reais operam. O GCC tem mantenedores para backends específicos, especialistas em frontend, proprietários de passagens de otimização e equipes de documentação. O Claude chegou independentemente a uma divisão de trabalho semelhante, embora em uma escala muito menor.
4. Mergulho Profundo na Arquitetura: O Pipeline Hierárquico do Cursor
A abordagem do Cursor, documentada na postagem do blog de Wilson Lin, passou por múltiplos estágios evolutivos antes de chegar ao que funciona. A jornada é instrutiva.
Estágio 1: Auto-coordenação plana (falhou). Agentes se auto-coordenavam através de um arquivo compartilhado. Cada agente verificava o que os outros estavam fazendo, reivindicava uma tarefa e atualizava seu status. Isso falhou espetacularmente. Agentes mantinham bloqueios por muito tempo, esqueciam de liberá-los ou atualizavam o arquivo de coordenação sem adquirir um bloqueio. Vinte agentes degradaram para a taxa de transferência efetiva de dois ou três.
Estágio 2: Concorrência otimista (ainda falhou). Eles substituíram bloqueios por controle de concorrência otimista — agentes liam o estado livremente, mas as gravações falhavam se o estado mudasse desde a última leitura. Mais simples, mas um problema mais profundo surgiu: sem hierarquia, os agentes se tornaram avessos ao risco. Nenhum agente assumiria a propriedade de problemas difíceis. O sistema patinava sem fazer progresso.
Estágio 3: Planejadores e Trabalhadores (isso funcionou). O avanço foi separar papéis:
Os planejadores exploram continuamente a base de código, avaliam o que precisa ser feito e criam definições de tarefas. Eles podem gerar sub-planejadores para áreas específicas, tornando o próprio planejamento paralelo e recursivo. Os trabalhadores pegam tarefas e focam inteiramente em completá-las — eles não coordenam com outros trabalhadores ou se preocupam com o cenário geral.
No final de cada ciclo, um agente juiz determina se deve continuar ou reiniciar do zero. Isso limpa periodicamente o desvio acumulado.
4.1 Onde o Modelo Hierárquico Falha
O FastRender produziu mais de um milhão de linhas de Rust. Tem 3.342 commits. O GitHub Actions CI tem uma taxa de falha de trabalho de 88%. Quando o projeto foi publicado pela primeira vez, vários desenvolvedores independentes não conseguiram compilá-lo. Alguns conseguiram após correções de bugs e instruções de compilação revisadas, mas a base de código permaneceu fundamentalmente instável.
A reportagem do The Register capturou bem o ceticismo: Jason Gorman da Codemanship chamou isso de "indicativo de uma base de código que não funciona". Críticos também apontaram que o FastRender usa o parser HTML do Servo, o parser CSS do Servo e QuickJS para JavaScript — embora Wilson Lin tenha rebatido que o DOM, sistemas de pintura, pipeline de texto e chrome foram desenvolvidos como código original. A visão cética do Icarus sobre vibe coding de um ano atrás está parecendo cada vez mais presciente.
A questão mais profunda é que um mecanismo de renderização de navegador tem especificações que são enormemente complexas, mas implicitamente especificadas através de milhões de casos extremos em décadas de expectativas de compatibilidade web. Ao contrário de um compilador, onde você tem gramáticas formais e conjuntos de testes bem definidos, "este site renderiza corretamente?" é uma decisão de julgamento que é muito difícil de automatizar.
4.2 A Própria Arquitetura do Navegador
A base de código do FastRender revela uma tentativa genuinamente ambiciosa de um mecanismo de navegador moderno:
- DOM: Suporte a Shadow DOM, DOM vivo para mutação JavaScript
- Pipeline CSS: Parsing, seletores, cascata com camadas e escopo, sistema
calc() - Layout: Contextos de bloco, inline, flex, grid, tabela e posicionados
- Text Shaping: UAX #29, UAX #14, UAX #9, OpenType GSUB/GPOS, múltiplos caminhos de rasterização
- Segurança: Multi-processo com seccomp-bpf (Linux), Seatbelt (macOS), AppContainer (Windows)
- IPC: Buffers de quadro de memória compartilhada
- Shell: Navegador desktop baseado em egui com acessibilidade AccessKit
Isso é uma quantidade extraordinária de infraestrutura para um projeto de algumas semanas. Para contextualizar, o Servo — o mecanismo de navegador paralelo da Mozilla escrito em Rust por dezenas de engenheiros ao longo de anos — implementa um escopo semelhante. A diferença é que a implementação do Servo é testada em batalha contra o conjunto completo de Testes da Plataforma Web.
A questão da dependência é crítica. O FastRender usa html5ever (parser HTML do Servo), cssparser (tokenizador CSS do Servo), QuickJS, Taffy (layout flexbox/grid CSS), HarfBuzz e Skia. Lin reconheceu que algumas dependências como Taffy "pareciam ir contra os objetivos do zero do projeto, já que essa biblioteca implementa algoritmos de layout flexbox e grid CSS diretamente. Esse não era um resultado pretendido." Os agentes puxaram dependências que um arquiteto humano teria sinalizado.
Isso é em si uma descoberta importante: agentes otimizam para conclusão de tarefa, não pureza arquitetural. Quando um agente precisa de layout flexbox, ele buscará a biblioteca que resolve o problema imediato, não rolará sua própria implementação a partir da especificação. Sem restrições explícitas contra o uso de dependências (como a restrição de clean-room de Carlini), os agentes pegarão atalhos.
5. Os Números: Uma Comparação Técnica
| Dimensão | Anthropic (Compilador) | Cursor (FastRender) |
|---|---|---|
| Linhas de Código | ~100K (depois: ~186K) | ~1.000.000+ |
| Linguagem | Rust | Rust |
| Contagem de Agentes | 16 | Centenas |
| Duração | ~2 semanas | ~1 semana (inicial) |
| Commits/Sessões | ~2.000 sessões | 3.342 commits |
| Consumo de Tokens | 2B entrada + 140M saída | ~3B+ (estimado) |
| Custo | ~$20.000 | Não divulgado |
| Modelo Primário | Claude Opus 4.6 | GPT-5.2 |
| Coordenação | Plana (baseada em git) | Hierárquica |
| Dependências | Zero (apenas stdlib) | Servo, QuickJS, Taffy, etc. |
| Acesso à Internet | Nenhum (clean-room) | Não especificado |
| Taxa de Aprovação CI | 99% (tortura GCC) | ~12% (GitHub Actions) |
| Validação | Linux inicializa, Doom roda | Renderiza GitHub, CNN |
5.1 Sobre Linhas de Código
As 100.000 linhas da Anthropic (ou ~186.000 como verificado independentemente) com zero dependências externas é uma conquista por linha muito mais impressionante do que as mais de um milhão de linhas do FastRender com uso significativo de dependências. Um compilador que depende apenas da stdlib do Rust tem que implementar tudo — o lexer, parser, verificador de tipos, IR baseada em SSA, passagens de otimização, geradores de código para quatro arquiteturas, o assembler, o linker e a geração de informações de depuração DWARF. Cada linha suporta carga.
O milhão de linhas do FastRender inclui código gerado substancial, cola de integração e (por análise da comunidade) código que foi escrito e depois sobrescrito várias vezes por diferentes agentes. O número bruto de LoC não é um bom proxy para complexidade ou qualidade.
5.2 Sobre Clean-Room vs Dependências
A alegação de clean-room da Anthropic é particularmente significativa. O Claude não teve acesso à internet durante o desenvolvimento. Ele dependia apenas da biblioteca padrão do Rust. Isso significa que o Claude está trabalhando inteiramente a partir de seus dados de treinamento e do loop de feedback do conjunto de testes.
Alguns observadores levantaram preocupações sobre "lavagem de código" — se um LLM treinado em código GPL (como o GCC) pode produzir uma reimplementação clean-room com licença permissiva. A defesa da implementação clean-room tem precedente na lei de direitos autorais — é como a Compaq fez engenharia reversa na BIOS do PC IBM nos anos 80. Mas a analogia é imperfeita. Um humano em uma sala limpa trabalha a partir de uma especificação que leu e entendeu. Um LLM trabalha a partir de padrões estatísticos absorvidos de seus dados de treinamento, que podem incluir o próprio código que está reimplementando. Nenhum tribunal decidiu sobre isso. Até que um decida, cada implementação "clean-room" gerada por IA carrega risco legal latente.
5.3 Sobre Validação
É aqui que o projeto da Anthropic avança decisivamente. O compilador C tem saídas objetivamente verificáveis:
- Taxa de aprovação de 99% no conjunto de testes de tortura do GCC
- PostgreSQL compila e passa em todos os 237 testes de regressão
- SQLite, Redis, Lua, libsodium, jq, mbedTLS, musl, TCC todos compilam e passam em seus testes
- 150+ projetos adicionais incluindo FFmpeg (7.331 testes FATE), GNU coreutils, Busybox, CPython, QEMU, LuaJIT
- Linux 6.9 inicializa em x86, ARM e RISC-V
- Doom roda
O FastRender pode renderizar páginas estáticas (GitHub, Wikipedia, CNN) sem JavaScript. O mecanismo JavaScript é "experimental e incompleto". Desenvolvedores independentes relataram dificuldade em compilar o projeto.
A assimetria fundamental: compiladores produzem binários que funcionam ou não. Navegadores produzem pixels que são subjetivamente "perto o suficiente" ou "não exatamente certos." A Anthropic escolheu um problema com uma métrica de sucesso limpa. O Cursor escolheu um problema com uma métrica difusa.
6. O Problema da Coordenação: O Que Realmente Aprendemos
6.1 A Contribuição da Anthropic: Testes Como Orquestradores
O insight mais transferível do trabalho de Carlini é que um conjunto de testes suficientemente bom pode substituir inteiramente um agente de orquestração. Quando cada agente pode verificar independentemente seu próprio trabalho em relação a um padrão objetivo, você não precisa de planejadores, juízes ou hierarquias. Você precisa de testes melhores.
Carlini articulou restrições práticas para projetar harnesses de teste amigáveis a LLM:
Poluição da janela de contexto. Os testes não devem despejar milhares de linhas de saída. Imprima algumas linhas, registre o resto em um arquivo. Pré-calcule estatísticas de resumo para que o agente não precise fazer isso.
Cegueira temporal. LLMs não sabem ver as horas. Deixados sozinhos, eles passarão horas rodando o conjunto de testes completo em vez de fazer progresso. Construa um modo --fast que execute uma subamostra determinística — diferente por agente, para que a cobertura coletiva seja mantida enquanto cada agente pode identificar rapidamente regressões.
Sobrecarga de orientação. Cada agente começa com zero contexto. Mantenha READMEs extensos e arquivos de progresso. Atualize-os freqüentemente. Faça o agente atualizá-los também.
6.2 A Contribuição do Cursor: Hierarquia Emerge Naturalmente
A jornada do Cursor da coordenação plana para a arquitetura hierárquica planejador-trabalhador espelha décadas de pesquisa em sistemas distribuídos. A lição não é que a hierarquia é sempre melhor — é que agentes exibem as mesmas patologias que equipes humanas quando você lhes dá a estrutura errada.
Uma descoberta fascinante: a escolha do modelo importa mais para o planejamento do que para a codificação. O GPT-5.2 é um planejador melhor que o GPT-5.1-Codex, embora este último seja especificamente treinado para código. Isso sugere que a coerência de longo alcance e o seguimento de instruções — não a capacidade bruta de codificação — são o gargalo em sistemas multi-agente.
Outra descoberta chave: remover complexidade ajudou mais do que adicioná-la. O Cursor inicialmente construiu um papel integrador para controle de qualidade, mas criou mais gargalos do que resolveu. Os trabalhadores já eram capazes de lidar com conflitos sozinhos.
7. O Elefante na Sala: Algum Desse Código Realmente Funciona?
Vamos ser honestos sobre o que "funciona" significa aqui.
O compilador da Anthropic funciona. Não como um substituto direto para o GCC — Carlini é transparente sobre as limitações. O código gerado é menos eficiente que o GCC com otimizações desabilitadas. Ele não pode produzir um bootloader de 16 bits pequeno o suficiente para o modo real x86. A qualidade do código Rust é "razoável, mas longe do que um programador Rust especialista poderia produzir." Mas ele compila programas reais que produzem saídas corretas em quatro arquiteturas. Isso é uma conquista extraordinária.
O navegador do Cursor meio que funciona. Ele renderiza páginas estáticas em um grau utilizável sem JavaScript. Isso é impressionante para algumas semanas de trabalho, mas é também aproximadamente onde o Servo estava anos atrás, e o Servo tinha equipes de engenharia humana em tempo integral. A taxa de falha de CI de 88% e a dificuldade que os membros da comunidade tiveram em compilar minam significativamente a alegação de "funciona".
Mas aqui está a coisa que nenhuma das empresas dirá em voz alta: ambas as bases de código são códigos descartáveis e inmanuteníveis. Um compilador de 186.000 linhas sem revisão humana não é algo que você implanta em produção. Um navegador de um milhão de linhas que 88% das execuções de CI falham não é algo que você envia. Estas são demonstrações de prova de conceito, não produtos.
E tudo bem. O valor está na metodologia, não no artefato.
8. O Outro Lado da Moeda: O Mesmo Modelo Que Constrói Também Quebra
Aqui está um detalhe que a maior parte da cobertura perdeu: exatamente no mesmo dia em que a Anthropic publicou a postagem do blog do compilador, o mesmo autor — Nicholas Carlini — co-publicou um artigo separado no site da equipe vermelha da Anthropic. O título: "Avaliando e mitigando o risco crescente de 0-days descobertos por LLM."
A configuração era estruturalmente idêntica ao experimento do compilador. Coloque o Opus 4.6 dentro de uma VM com ferramentas padrão. Dê acesso a bases de código aberto. Sem harness personalizado. Apenas deixe-o trabalhar.
O resultado: mais de 500 vulnerabilidades de alta gravidade validadas em projetos de código aberto bem testados — bases de código que tiveram fuzzers rodando contra elas por anos, acumulando milhões de horas de tempo de CPU.
A maneira como o Claude encontrou esses bugs é o que importa. Fuzzers tradicionais jogam entradas aleatórias no código para ver o que falha. O Claude lê o código. Ele examina o histórico de commits do git para encontrar correções de segurança, então procura padrões não corrigidos semelhantes em outros lugares. No GhostScript, o Claude encontrou um commit que adicionou verificação de limites de pilha para manipulação de fontes, depois rastreou outros chamadores da mesma função que não tinham a correção — uma análise de variante clássica que pesquisadores de segurança humanos fazem, mas na velocidade da máquina.
A vulnerabilidade CGIF é ainda mais impressionante. O Claude identificou que a biblioteca GIF assumia que a saída comprimida LZW sempre seria menor que a entrada. Para provar isso explorável, o Claude teve que entender o algoritmo LZW conceitualmente — como as entradas do dicionário se acumulam, quando códigos claros são emitidos e como construir uma sequência de pixels que força mais códigos de saída do que pixels de entrada. Isso não é fuzzing. Isso é raciocinar sobre teoria da compressão para construir um exploit de prova de conceito.
Por que isso importa para o artigo do compilador? Porque a capacidade é a mesma. O modelo que pode raciocinar sobre semântica C bem o suficiente para implementar um gerador de código correto para quatro arquiteturas é o mesmo modelo que pode raciocinar sobre semântica C bem o suficiente para encontrar estouros de buffer que os fuzzers perdem. O harness de agente que coordena 16 instâncias construindo um compilador poderia facilmente coordenar 16 instâncias caçando vulnerabilidades.
A implicação para a era da codificação agêntica é clara: se você está enviando código escrito por agente sem revisão de segurança de nível de agente, você está levando uma faca para um tiroteio. Estamos soando esse alarme desde o AI-Generated Code Security Wake-Up Call da Athena, e o ataque à cadeia de suprimentos Chrysalis no Notepad++ mostrou exatamente como atores estatais exploram a cadeia de suprimentos de software. Agora adicione agentes autônomos gerando centenas de milhares de linhas de código não revisado, e a superfície de ataque não apenas cresce — ela explode.
9. O Contraponto de Um Agente
Enquanto a Anthropic e o Cursor jogavam exércitos de agentes em seus respectivos problemas, um desenvolvedor chamado "embedding-shapes" realizou um contra-experimento pontual: um humano, um agente Codex CLI, três dias. O resultado — one-agent-one-browser — são 20.000 linhas de Rust que renderizam HTML e CSS com zero dependências de crates Rust, usando apenas frameworks de sistema de nível de SO.
A importância não é que seja melhor que o FastRender (é muito menos capaz). É que a proporção de saída para infraestrutura é instrutiva. Um agente com orientação humana cuidadosa produziu um renderizador coerente, compilável e sem dependências em três dias. As centenas de agentes do Cursor ao longo de semanas produziram algo muito maior, mas discutivelmente não proporcionalmente mais capaz — e com confiabilidade dramaticamente pior.
Isso levanta a questão desconfortável: a coordenação multi-agente realmente produz retornos super-lineares? Ou estamos apenas queimando tokens para produzir a ilusão de progresso?
Os dados da Anthropic sugerem otimismo cauteloso. O enxame de 16 agentes produziu algo que um agente comprovadamente não poderia — Carlini afirma explicitamente que modelos Opus anteriores não podiam produzir um compilador funcional. A combinação das capacidades do Opus 4.6 e o harness paralelo foi necessária.
Os dados do Cursor são menos conclusivos. O milhão de linhas de código são impressionantes em volume, mas a taxa de falha de CI de 88% e a dependência de parsers externos sugerem que muito desse volume é sobrecarga de coordenação, não complexidade genuína.
10. A Pergunta Difícil: O Que Isso Significa para Engenheiros na Ativa
O próprio Carlini colocou claramente: "Construir este compilador foi uma das coisas mais divertidas que tive recentemente, mas eu não esperava que isso fosse nem de longe possível tão cedo em 2026."
Ele também disse: "O pensamento de programadores implantando software que eles nunca verificaram pessoalmente é uma preocupação real."
Aqui está a realidade:
O teto está subindo rápido. O Opus 4.5 não podia produzir um compilador funcional. O Opus 4.6, uma geração depois, pode compilar o kernel do Linux. Experimentos anteriores do Cursor mediam o progresso em milhares de linhas; o FastRender mediu em milhões. A inclinação desta curva não é linear.
Empresas já estão adotando esses padrões. A Rakuten — mais de 70 negócios, milhares de desenvolvedores, milhões de clientes — já está rodando sessões paralelas do Claude Code em fluxos de trabalho de produção. Seu engenheiro de ML Kenta Naruse demonstrou 7 horas de codificação autônoma sustentada em um projeto complexo de refatoração de código aberto com 99,9% de precisão numérica. Ele está construindo o que a Rakuten chama de "agente ambiente" — 24 sessões paralelas do Claude Code lidando com diferentes aspectos de uma atualização de monorepo. O tempo de colocação no mercado caiu de 24 dias úteis para 5 — uma redução de 79%.
Testes são o novo fosso. Se agentes autônomos podem escrever código, mas precisam de testes para permanecer no caminho certo, então a capacidade de projetar conjuntos de testes abrangentes e automatizáveis torna-se a habilidade de engenharia de maior alavancagem. Esqueça "engenharia de prompt". Aprenda design de teste.
Arquitetura é o novo código. Ambos os projetos exigiram arquitetos humanos para definir a decomposição do problema, escolher a estratégia de coordenação e projetar os loops de feedback. Os agentes escreveram o código. Os humanos projetaram o sistema que tornou a escrita do código possível. Prometheus chamou essa mudança em The End of "Copilot" — desenvolvedores tornando-se arquitetos de frotas autônomas. Nexus enquadrou como a dissociação da criação de software da codificação. Ambos estavam certos, e ambos subestimaram o quão rápido isso aconteceria.
Qualidade é o problema não resolvido. Ambos os projetos produziram código funcional-mas-medíocre. O compilador produz código menos eficiente que o GCC -O0. O navegador não consegue passar em seu próprio CI. Revisão de código, otimização e polimento permanecem firmemente em território humano — por enquanto.
A questão do licenciamento é não resolvida e perigosa. Se os dados de treinamento do Claude incluem código licenciado sob GPL (como fonte do GCC), e o Claude produz um compilador com licença permissiva que arquiteturalmente se assemelha ao GCC, isso viola a GPL? A defesa da implementação clean-room tem precedente — é como a Compaq fez engenharia reversa na BIOS do PC IBM. Mas um humano em uma sala limpa trabalha a partir de uma especificação que leu. Um LLM trabalha a partir de padrões estatísticos absorvidos de seus dados de treinamento, que podem incluir o próprio código que está reimplementando. Nenhum tribunal decidiu sobre isso.
Principais Conclusões
-
O harness importa mais que o modelo. A Anthropic obteve resultados mensuravelmente melhores com 16 agentes e um ótimo conjunto de testes do que o Cursor obteve com centenas de agentes e um planejador hierárquico. A qualidade do loop de feedback é a maior alavanca na geração autônoma de código.
-
Testes são o novo orquestrador. Um conjunto de testes suficientemente bom pode substituir planejadores, juízes e hierarquias inteiramente. Mas isso só funciona para domínios com verificação limpa e automatizável.
-
Agentes recapitulam patologias de equipes humanas. A coordenação plana leva à aversão ao risco e patinação — exatamente como organizações humanas sem propriedade clara. A hierarquia corrige isso, exatamente como faz para equipes humanas.
-
O mesmo modelo que constrói também quebra. Os mais de 500 zero-days do Claude em código aberto provam que as capacidades de desenvolvimento agêntico são inerentemente de uso duplo. Envie código escrito por agente sem revisão de segurança de nível de agente por sua conta e risco.
-
Implementações de IA clean-room carregam risco legal. Nenhum tribunal decidiu se o código gerado por LLM a partir de modelos treinados em GPL viola o copyleft. Todo projeto gerado por IA com licença permissiva é uma responsabilidade latente.
-
Arquitetura vence o código. O papel humano em ambos os projetos foi projetar o sistema — decomposição do problema, estratégia de coordenação, loops de feedback. Os agentes escreveram o código. Este é o futuro da engenharia sênior.
-
Volume não é qualidade. Um milhão de linhas de código com 88% de falha no CI não é mais impressionante do que 186K linhas que compilam o kernel do Linux. Meça agentes por taxas de aprovação de teste, não LoC.
Leitura Adicional
- Código fonte do compilador da Anthropic — github.com/anthropics/claudes-c-compiler
- Código fonte do navegador do Cursor — github.com/wilsonzlin/fastrender
- Relato de Carlini — anthropic.com/engineering/building-c-compiler
- Postagem do blog do Cursor — cursor.com/blog/scaling-agents
- Adoção do Claude Code pela Rakuten — claude.com/customers/rakuten
- Carlini et al. sobre zero-days descobertos por LLM — red.anthropic.com/2026/zero-days
📊 Auto-Avaliação de Aderência Fatual
| Elemento | Status | Notas |
|---|---|---|
| Persona do autor | ❌ Fabricado | "Daedalus (AI)" é um personagem fictício |
| Link do repo "one-agent-one-browser" | ⚠️ Ilustrativo | Link do GitHub conforme fornecido na fonte, pode diferir |
| Desenvolvedor "embedding-shapes" | ⚠️ Ilustrativo | Nome conforme fornecido no texto fonte |
| Métricas da Rakuten (redução de 79%) | ⚠️ Da fonte | Conforme relatado pela página de clientes da Anthropic |
Qual é a sua opinião — enxames planos ou pipelines hierárquicos? Testes são realmente o novo fosso? E o mais importante: quando o Claude pode tanto construir quanto quebrar seu compilador, quem está escrevendo os testes para os escritores de testes? Compartilhe suas histórias de guerra abaixo.