Alguém fez um fork do projeto de código aberto Chromium, que tem dezenas de milhões de linhas de código, para criar uma infraestrutura de navegador para agentes de IA. (@browserbase) Contexto e motivação: Por que os navegadores existentes são insuficientes? • Limitações do design tradicional: Os navegadores foram originalmente projetados para uso pessoal em máquinas locais e, para fins de combate a spam e fraudes, geralmente são projetados para bloquear ou combater comportamentos automatizados. • Novas exigências na era da IA: Os agentes de IA atuais são "usuários automatizados legítimos" que precisam funcionar em servidores por longos períodos e executar tarefas em páginas da web em nome de humanos. Conclusão: Simplesmente corrigir os problemas no nível do JavaScript já não é suficiente; precisamos investigar as camadas subjacentes e modificar o comportamento central do navegador. Estratégia principal: Bifurcar o Chromium Para que o navegador automatizado parecesse completamente idêntico ao navegador Chrome padrão, a Browserbase decidiu criar um fork do Chromium. Embora esse caminho tenha sido difícil, permitiu que eles controlassem todo o sistema a partir do baixo nível do C++. Principais avanços tecnológicos ("destruição e reconstrução deliberadas") A equipe eliminou as características "automáticas" do navegador modificando o código subjacente, fazendo com que ele se comportasse mais como um usuário real. Três modificações técnicas principais foram listadas: 1. Remova a tag navigator.webdriver: • Estado original: Ao usar ferramentas como o Puppeteer, o Chromium define automaticamente esse sinalizador como verdadeiro, revelando diretamente "Eu sou um robô". • Modificação: Eles forçaram o valor falso no nível do código-fonte. Isso é mais completo do que uma simples injeção de JS, pois evita a exposição em processos complexos de passagem de estado interno. 2. Substituir a identidade do agente do usuário: • Estado original: No modo headless, o navegador o identificará automaticamente como "HeadlessChrome". • Modificação: A lógica de geração do User Agent foi profundamente modificada para garantir que, seja o processo principal, um worker ou um iframe, ele seja sempre identificado como o "Chrome" padrão, ocultando completamente a identidade do navegador headless. 3. Suporta sessões de conexão de longa duração (Keep-Alive): • Estado original: No Linux, o processo do navegador normalmente termina quando todas as janelas são fechadas. Isso é fatal para agentes de IA que precisam manter um estado de login (cookies, estado da memória) por longos períodos. • Modificação: O mecanismo kBrowserAliveWithNoWindows foi ativado, dando ao navegador sem interface gráfica um "coração" para que ele possa continuar em execução mesmo quando não houver nenhuma janela visível, garantindo a estabilidade de tarefas de longa duração. Desafios de Engenharia: Construindo no Caos - Um Labirinto de Código: A base de código do Chromium é extremamente grande e complexa; uma propriedade simples pode envolver múltiplos mecanismos de renderização e pilhas de rede, tornando sua modificação extremamente difícil. • Tempo de compilação: Uma compilação completa típica leva de 3 a 4 dias. A equipe construiu uma infraestrutura de compilação dedicada para reduzir esse tempo para cerca de 1 hora. • Iteração rápida de versões: o Chromium é atualizado a cada seis semanas, e a equipe precisa acompanhar continuamente o código original e readaptar as correções. Blog oficial
Carregando detalhes do thread
Buscando os tweets originais no X para montar uma leitura limpa.
Isso normalmente leva apenas alguns segundos.
