1 điểm bởi maestrojeong 4 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

1. Động lực?

Một Chrome cho một tác tử. Nếu đó là mặc định thì mỗi tác tử sẽ ngốn 500MB~1GB RAM. Chỉ cần chạy 5 tác tử thì riêng trình duyệt đã tốn 2.5~5GB RAM.

Ngoài ra, Playwright mặc định cũng tiêu thụ khoảng ~180MB cho mỗi phiên CDP. Chưa tính bộ nhớ của tiến trình trình duyệt, riêng lớp CDP đã đủ nặng. Càng tăng số tác tử, phần overhead này càng nhân tuyến tính.

Muốn vận hành đa tác tử trong môi trường thực tế thì trước hết phải phá vỡ cấu trúc này.


2. Bằng cách nào?

Chỉ khởi chạy một trình duyệt. Dù có bao nhiêu tác tử, chúng đều kết nối lên đó bằng raw CDP, và máy chủ sẽ cưỡng chế cô lập tab theo từng owner. Tác tử B không thể đụng vào tab của tác tử A. Một instance có thể gánh N tác tử, nên dù số tác tử tăng thì bộ nhớ trình duyệt cũng không tăng theo.

Ngôn ngữ cũng được thay đổi. Dự án được viết lại bằng Rust, và dùng kiến trúc không nhúng sẵn trình duyệt (kết nối tới Chrome hiện có bằng --connect), nên bản thân máy chủ chỉ là một binary đơn 6MB.

Né tránh phát hiện. Lấy cảm hứng từ Patchright, dự án hoàn toàn không bật các domain CDP dễ bị phát hiện như Runtime.enable, và không dùng trình duyệt giả đã được vá mà dùng nguyên Chrome thật của người dùng + persistent profile.


3. Tóm tắt

Tóm lại: bộ điều khiển trình duyệt tàng hình đa tác tử siêu nhẹ

62 tool dựa trên raw CDP — ref cây trợ năng, action settle-diff, network/cookies/storage/PDF/upload/iframe/WebAuthn, stdio + HTTP/SSE.

Cài đặt

curl -fsSL https://raw.githubusercontent.com/maestrojeong/browser-rs-mcp/… | sh


4. Công việc tiếp theo

Bản build cho Windows và việc đăng ký lên crates.io cũng là những hạng mục tiếp theo còn lại.

Chưa có bình luận nào.

Chưa có bình luận nào.