browser-rs-mcp - คอนโทรลเลอร์เบราว์เซอร์แบบสเตลท์สำหรับมัลติเอเจนต์ที่เบามาก
(github.com/maestrojeong)1. Motivation?
เอเจนต์หนึ่งตัวต่อ Chrome หนึ่งตัว ถ้านี่เป็นค่าเริ่มต้น RAM จะถูกใช้ไป 500MB~1GB ต่อเอเจนต์ แค่รันเอเจนต์ 5 ตัว ก็ใช้ RAM กับเบราว์เซอร์อย่างเดียว 2.5~5GB แล้ว
นอกจากนี้ Playwright ยังใช้หน่วยความจำราว ~180MB ต่อ CDP session เองโดยค่าเริ่มต้น ไม่นับหน่วยความจำของโปรเซสเบราว์เซอร์ แปลว่าชั้น CDP เองก็หนักอยู่แล้ว ยิ่งเพิ่มจำนวนเอเจนต์ overhead นี้ก็ยิ่งคูณเพิ่มแบบเชิงเส้น
ถ้าจะรันมัลติเอเจนต์ในงานจริง ต้องทลายโครงสร้างนี้ก่อน
2. How?
เปิดเบราว์เซอร์เพียงตัวเดียว ไม่ว่าจะมีเอเจนต์กี่ตัวก็เชื่อมต่อบนเบราว์เซอร์นั้นด้วย raw CDP และเซิร์ฟเวอร์จะบังคับแยกแท็บตาม owner เอเจนต์ B จะไปแตะต้องแท็บของเอเจนต์ A ไม่ได้ รองรับ N ตัวด้วยอินสแตนซ์เดียว ดังนั้นแม้จำนวนเอเจนต์จะเพิ่มขึ้น หน่วยความจำของเบราว์เซอร์ก็ไม่เพิ่มตาม
ภาษาก็เปลี่ยนด้วย เขียนใหม่ด้วย Rust และทำเป็นโครงสร้างที่ไม่ฝังเบราว์เซอร์ไว้ในตัว (เชื่อมต่อกับ Chrome ที่มีอยู่ด้วย --connect) ทำให้ตัวเซิร์ฟเวอร์เป็นไบนารีเดี่ยวขนาด 6MB
หลีกเลี่ยงการตรวจจับ โดยได้แรงบันดาลใจจาก Patchright จึงไม่เปิด CDP domains ที่ตรวจจับได้ง่ายอย่าง Runtime.enable เลย และไม่ได้ใช้เบราว์เซอร์ปลอมที่ถูกแพตช์ แต่ใช้ Chrome จริงของผู้ใช้ + persistent profile เดิมไว้ตามเดิม
3. Summary
สรุปคือ: คอนโทรลเลอร์เบราว์เซอร์แบบสเตลท์สำหรับมัลติเอเจนต์ที่เบามาก
เครื่องมือ 62 รายการบนพื้นฐาน raw CDP — accessibility tree ref, action settle-diff, network/cookies/storage/PDF/upload/iframe/WebAuthn, stdio + HTTP/SSE.
การติดตั้ง
curl -fsSL https://raw.githubusercontent.com/maestrojeong/browser-rs-mcp/… | sh
4. Future work
งานถัดไปยังมี Windows build และการลงทะเบียนบน crates.io
ยังไม่มีความคิดเห็น