AI агентад Chrome хэрэггүй: Хөтчийг эхнээс нь Rust дээр шинээр бүтээсэн 40MB хэмжээтэй "Moli" нээлттэй эх боллоо
Хэрэв та AI агент, вэб автоматжуулалт эсвэл өгөгдөл цуглуулагч (scraper) хөгжүүлж байсан бол нэг л нийтлэг асуудалтай тулгарсан байх учиртай: Headless Chrome үнэхээр нүсэр, удаан бөгөөд санах ойг (RAM) мангас шиг залгидаг. Сервер дээр зэрэгцээ 50-100 агент ажиллуулах гэхэд л гигабайт гигабайтаар хэмжигдэх санах ой, CPU-ийн ачаалал үүсдэг.
Учир нь Chrome болон бусад орчин үеийн бүх хөтчүүд анхнаасаа хүнд зориулагдсан. Дэлгэц дээр 60 FPS давтамжтай дүрслэх, хулганы хөдөлгөөн бүрийг тасралтгүй render хийх, зураг, зар сурталчилгааг түрүүлж татах гэх мэт механизмууд нь хиймэл оюунт агентуудад ямар ч хэрэггүй илүүдэл зардал болж хувирдаг.
Энэ гацааг шийдэхээр Lexmount баг агентуудад зориулан анхнаас нь цэвэр Rust хэл дээр бичсэн, ердөө 40MB хэмжээтэй, бие даасан headless browser engine болох Moli-г нээлттэй эхээр (open-source) албан ёсоор цацлаа.
Chrome яагаад AI агентад зориулагдаагүй вэ?
Уламжлалт хөтчүүд хуудас ачаалахдаа бүх зураг, медиаг шунахай байдлаар (eager downloading) татаж, DOM, CSSOM-ийг байгуулж, бүрэн layout болон paint мод үүсгэдэг. Хүн хэзээ ч дэлгэцийг доош гүйлгэж (scroll), ямар ч элементийг дарж магадгүй тул хөтөч эдгээр төлөвийг санах ойд байнгын кэш (rendering tree cache) болгон хадгалдаг.
Гэтэл AI агент вэб хуудас руу ороод ихэнхдээ юу хийдэг вэ?
- Хуудасны зөвхөн DOM бүтэц, текст агуулга эсвэл Markdown-ийг уншдаг.
- Форм бөглөх юм уу скрипт ажиллуулдаг.
- Хэдэн секундийн турш өгөгдөлд дүн шинжилгээ хийж, магадгүй ганцхан удаа дэлгэцийн агшин (screenshot) аваад дараагийн алхам руу шилждэг.
Агентад тухайн div яг одоо 183 пиксел үү, 187 пиксел үү гэдэг секундийн нарийвчлалтай байнгын render төлөв бараг хэрэггүй. Хүнд зориулагдсан дүрслэлийн нарийн төвөгтэй кэшүүдийг ажиллуулснаараа хөгжүүлэгчид хэдэн зуун мегабайт санах ойг дэмий салхинд хийсгэж байсан хэрэг.
Moli-ийн архитектур: Chromium wrapper биш, цэвэр Rust цөм
Moli нь Electron шиг эсвэл Chromium-ийг гаднаас нь ороож багцалсан wrapper огт биш юм. Энэ бол вэб стандартын шаардлагыг бүрэн хангасан, тусдаа хөтчийн хөдөлгүүр (standalone browser kernel) юм. Хөгжүүлэгчид Rust экосистемийн хамгийн шилдэг сангуудыг нэгтгэн бүтээжээ:
- JavaScript Engine: Node.js болон Chrome-ийн ашигладаг хүчирхэг V8 хөдөлгүүрийг
rusty_v8-ээр холбосон тул орчин үеийн JS бүрэн ажиллана. - HTML Parsing: WHATWG стандартад нийцсэн
html5ever. - CSS Cascade ба Selectors: Mozilla-ийн Servo төслийн алдарт
Styloхөдөлгүүр. - Layout & Typography: Flexbox/Grid зохион байгуулалтад зориулсан
Taffy, текстийг боловсруулахParley. - Rendering: CPU дээр шууд зурах зориулалттай
Vello CPUболон SVG дэмждэгusvg. - Networking: Өндөр ачаалал, зэрэгцээ хүсэлтийг найдвартай удирдах
libcurl.
Энэхүү оновчлолын үр дүнд Moli-ийн бүтээгдсэн binary файл ердөө ~40MB хэмжээтэй болсон нь хэдэн зуун мегабайт татдаг Chromium-тэй харьцуулахад гайхалтай үзүүлэлт юм.
"On-Demand Rendering": Зөвхөн шаардлагатай үед л пиксел зурна
Moli-ийн хамгийн хувьсгалч шийдэл нь On-Demand Rendering Pipeline буюу захиалгат дүрслэл юм.
Хуудас дуудах үед Moli анхдагч тохиргоогоороо бүрэн хэмжээний layout эсвэл paint огт хийдэггүй (Mock Layout). Хуудасны бүтцийг зөвхөн Native DOM болон загварын (style) төлөвт л байлгадаг.
- Хэрэв агент зөвхөн хуудаснаас текст задлах, DOM унших, эсвэл JS код ажиллуулах гэж байгаа бол layout, paint огт дуудагдахгүй, шууд санах ойгоос шуурхай хариулна.
- Харин тодорхой координатад дарж шалгах (hit-testing) эсвэл дэлгэцийн агшин (screenshot) авах хүсэлт ирмэгц уг мөчийн DOM/CSSOM-оос нэг удаагийн snapshot үүсгэн зурж, үр дүнг буцаагаад санах ойгоо шууд чөлөөлдөг (cache-free).
Ийм архитектурын ачаар бодит ажлын ачаалал (production RL / Agent workload) дээр Moli нь Chrome-оос:
- Санах ойн зарцуулалт 7-10 дахин бага,
- Хүйтэн асаалтын хурд (cold start) 5 дахин хурдан болохыг хэмжсэн байна.
Playwright, Selenium ашигладаг бол шууд солин хэрэглэж болох уу?
Хөгжүүлэгчдийн хамгийн их асуудаг асуулт бол "Шинэ хөтөч гарч ирэхээр бид одоо байгаа код, хэрэгслээ дахиж бичих үү?" гэдэг асуудал байдаг.
Moli энэ тал дээр төгс шийдэл санал болгож буй: Энэ хөдөлгүүр нь CDP (Chrome DevTools Protocol), WebDriver Classic, болон WebDriver BiDi протоколуудыг нэг binary дотор шууд дэмждэг.
Энэ нь та өөрийн одоо ашиглаж буй Playwright, Puppeteer эсвэл Selenium скриптүүдийнхээ холбогдох endpoint-ийг Moli руу зааж өгөхөд л ямар ч код өөрчлөхгүйгээр drop-in байдлаар сольж ашиглах боломжтой гэсэн үг юм. Мөн CLI болон MCP (Model Context Protocol) залгаасуудаар дамжуулан Claude Code, Cursor зэрэг агент хэрэгслүүдтэй шууд хослон ажилладаг.
Хөгжүүлэгчдэд яагаад чухал вэ?
Хиймэл оюуны эрин үед программ хангамжийн анхдагч хэрэглэгч нь зөвхөн "хүн" байхаа больж, "AI агентууд" болж эхэллээ. 20 жил хүний нүдэнд зориулж хөгжүүлсэн Chromium стекийг агентад хүчээр тулгах нь серверийн зардал, цар хүрээний хувьд мухардалд хүрч байсныг Moli харуулж байна.
Хэрэв та олон агент зэрэгцүүлэн ажиллуулах кластер үүсгэж байгаа, эсвэл сервер дээрээ санах ойн хомсдолтой тулгарч байгаа бол Moli-г GitHub дээрээс туршиж үзэх цаг нь болжээ.
Эх сурвалж: lexmount/moli GitHub Repository & Lexmount Engineering Blog: Redesigning the Browser for AI
Сэтгэгдэл
Ачаалж байна...