有人Fork 了上千萬行程式碼的Chromium 開源項目,要做面向AI Agent 的瀏覽器基礎設施@browserbase 背景與動機:為什麼現有的瀏覽器不夠用? · 傳統設計的限制:瀏覽器最初是為個人使用者在本地機器上使用而設計的,並且出於反垃圾郵件和反詐騙的目的,通常會刻意屏蔽或對抗自動化行為。 · AI 時代的新需求:現在的AI 智能體是“合法的自動化用戶”,它們需要代表人類在伺服器端長時間運行、跨網頁執行任務。 結論:光是在JavaScript 層級進行「修修補補」就無法滿足需求,必須深入到底層,改造瀏覽器的核心行為。 核心策略:Fork Chromium 為了讓自動化瀏覽器在外界看來與一般Chrome 瀏覽器完全一致,Browserbase 決定Fork Chromium。這雖然是一條艱難的路,但能讓他們從C++ 底層掌控全局。 關鍵的技術突破(「有目的的破壞與重建」) 團隊透過修改底層程式碼,消除了瀏覽器「自動化」的特徵,使其行為更像真實用戶。列舉了三個關鍵的技術修改: 1. 移除navigator.webdriver 標記: · 原狀:當使用Puppeteer 等工具時,Chromium 會自動將此標記設為true,直接暴露「我是機器人」。 · 改造:他們在原始碼層面強制設為false。這比簡單的JS 注入更徹底,因為它避免了在複雜的內部狀態傳遞中露餡。 2. 替換User Agent 身分: · 原狀:無頭模式(Headless)下,瀏覽器會自動標示為"HeadlessChrome"。 · 改造:深入修改了User Agent 的生成邏輯,確保無論是主流程、Worker 或iframe,都會統一報告為標準的"Chrome",徹底隱藏無頭瀏覽器的身份。 3. 支援長連線會話(Keep-Alive): · 原狀:在Linux 上,通常所有視窗關閉後瀏覽器程序就會終止。這對於需要長時間保持登入態(Cookies、記憶體狀態)的AI 智能體來說是致命的。 · 改造:啟用了kBrowserAliveWithNoWindows 機制,給無頭瀏覽器裝上了“心臟”,使其在沒有可視窗口時也能持續運行,保證了長任務的穩定性。 工程挑戰:在混沌中建構· 程式碼迷宮:Chromium 程式碼庫極為龐大且複雜,一個簡單的屬性可能涉及多個渲染引擎和網路棧,修改難度極高。 · 建置耗時:普通的完整編譯需要3-4 天。團隊為此搭建了專用建造基礎設施,將時間壓縮到了約1 小時。 · 版本迭代快:Chromium 每六週更新一次,團隊必須持續跟進上游程式碼,重新適應補丁。 官方博客
正在載入線程內容
正在從 X 取得原始推文,整理成清爽的閱讀畫面。
通常只需幾秒鐘,請稍候。
