Quelqu'un a créé une copie (fork) du projet open-source Chromium, qui compte des dizaines de millions de lignes de code, afin de développer une infrastructure de navigateur pour les agents d'IA. (@browserbase) Contexte et motivation : Pourquoi les navigateurs existants sont-ils insuffisants ? • Limites de la conception traditionnelle : les navigateurs ont été initialement conçus pour un usage personnel sur des machines locales et, à des fins de lutte contre le spam et la fraude, ils sont généralement conçus pour bloquer ou combattre les comportements automatisés. • Nouvelles exigences à l'ère de l'IA : les agents d'IA actuels sont des « utilisateurs automatisés légitimes » qui doivent fonctionner sur des serveurs pendant de longues périodes et effectuer des tâches sur des pages Web au nom des humains. Conclusion : se contenter de corriger les problèmes au niveau JavaScript ne suffit plus ; il est nécessaire d’explorer les couches sous-jacentes et de modifier le comportement fondamental du navigateur. Stratégie principale : Fork Chromium Pour que le navigateur automatisé soit parfaitement identique au navigateur Chrome classique, Browserbase a décidé de créer une version dérivée de Chromium. Bien que cette approche ait été complexe, elle leur a permis de contrôler l'intégralité du système depuis le bas niveau du code C++. Principales avancées technologiques (« destruction et reconstruction délibérées ») L'équipe a supprimé les fonctionnalités « automatiques » du navigateur en modifiant le code sous-jacent, ce qui lui permet de se comporter davantage comme un véritable utilisateur. Trois modifications techniques majeures ont été recensées : 1. Supprimez la balise navigator.webdriver : • État d'origine : lors de l'utilisation d'outils tels que Puppeteer, Chromium définit automatiquement cet indicateur sur vrai, révélant directement « Je suis un robot ». • Modification : Ils ont forcé la valeur à « false » au niveau du code source. Cette méthode est plus efficace qu’une simple injection JS car elle évite d’être exposée dans des mécanismes complexes de transmission d’état interne. 2. Remplacer l'identité de l'agent utilisateur : • État d'origine : En mode sans interface graphique, le navigateur l'identifiera automatiquement comme « HeadlessChrome ». • Modification : La logique de génération de l'agent utilisateur a été profondément modifiée afin de garantir que, qu'il s'agisse du processus principal, d'un processus de travail ou d'une iframe, il sera systématiquement identifié comme « Chrome » standard, masquant complètement l'identité du navigateur sans interface graphique. 3. Prend en charge les sessions de connexion de longue durée (Keep-Alive) : • État initial : Sous Linux, le processus du navigateur se termine généralement lorsque toutes les fenêtres sont fermées. Ceci est fatal pour les agents d’IA qui doivent conserver un état de connexion (cookies, état de la mémoire) pendant de longues périodes. • Modification : Le mécanisme kBrowserAliveWithNoWindows a été activé, donnant au navigateur sans interface graphique un « cœur » lui permettant de continuer à fonctionner même en l'absence de fenêtre visible, assurant ainsi la stabilité des tâches de longue durée. Défis d'ingénierie : Construire dans le chaos – Un labyrinthe de code : Le code source de Chromium est extrêmement vaste et complexe ; une propriété simple peut impliquer plusieurs moteurs de rendu et piles réseau, ce qui la rend extrêmement difficile à modifier. • Durée de compilation : Une compilation complète classique prend 3 à 4 jours. L’équipe a mis en place une infrastructure de compilation dédiée afin de réduire cette durée à environ 1 heure. • Itération rapide des versions : Chromium est mis à jour toutes les six semaines, et l’équipe doit constamment suivre l’évolution du code en amont et réadapter les correctifs. Blog officiel
Chargement du thread
Récupération des tweets originaux depuis X pour offrir une lecture épurée.
Cela ne prend généralement que quelques secondes.
