Kịch bản tiện ích Chrome thủ công
Ghi thủ công chạy tác vụ Admin Desktop → Web Extension. Nội bộ WebExtension; metadata/MCP công khai web-extension. Tác nhân tải tiện ích chọn và mở hồ sơ Chromium tạm với tiện ích đó/capture Reconstruct. Người vận hành điều hướng; lưu màn hình/chuyển tiếp dưới reconstruct.scene.v1.
Tạo và chạy tác vụ
- Trong Admin → Jobs → Create, chọn Desktop → Web Extension. Bỏ Web nếu chỉ tiện ích. Mobile vẫn Web, iOS, Android.
- Trong Environment Settings → Web Extension, dán link Chrome Web Store. Thư mục tiện ích cục bộ/hồ sơ cá nhân không là đầu vào.
- Xếp hàng. Capture Agent bật với Desktop / Web Extension nhận. Worker Web/Extension không nhận việc của nhau.
- Tác nhân tải CRX3 ký qua Google update, kiểm ID/chữ ký trước giải vào thư mục riêng. Gói giữ store ID khi load unpacked. Metadata
browserExtensionchứa ID kiểm, tên bản địa, phiên bản, SHA-256; tên danh mục từ gói. Kiểm đường dẫn, số tệp, cỡ mở trước dùng. - Chromium mở tab hướng dẫn tiện ích, hoặc options/action popup khai báo. Không điểm vào UI thì lỗi.
- Mở Reconstruct Agent Browser Bridge từ menu tiện ích. Popup có ID việc/số màn hình. Mỗi màn hình dùng Capture screen (Chụp màn hình). Có Pause (Tạm dừng), Resume (Tiếp tục), Finish recording (Kết thúc ghi).
Không có CLI recorder riêng/MCP bổ sung. Điều khiển gắn việc/token phiên riêng, không nhận giá trị, nhãn tùy ý, nguồn URL. Admin xem/điều khiển tại Admin → Jobs → job → Live browser, chỉ nhận nhập lúc chờ người. Tiện ích/việc khác bị từ chối. Mở tab khác thì kích hoạt trước chụp; kiểm danh tính khi chuyển. Mật khẩu, tạo ví, thỏa thuận, đăng ký vẫn thủ công.
Tác vụ đăng nhập và khám phá tự động
Tiện ích cần onboarding như tạo ví MetaMask ghi bán tự động. Trong Environment Settings → Web Extension, đặt Sign-in thành Operator registers (Người vận hành đăng ký) hoặc Operator signs in (Người vận hành đăng nhập).
- Việc chờ người. Hoàn tất trong Admin → Jobs → job → Live browser hoặc trình duyệt việc. Lưu bằng Capture screen; màn hình mật khẩu/khôi phục không bao giờ lưu.
- Chọn Finish sign-in (Kết thúc đăng nhập, console), Continue (Tiếp tục, Admin), Finish sign-in and explore (Kết thúc và khám phá, popup).
- Sau đó đi popup, options, side panel và tuyến navigation dẫn đến, một ảnh mỗi tuyến. Không nhấn nút gửi, ký, xác nhận, tiết lộ, xuất, khóa, xóa, tạo bất kỳ thứ gì.
- Tiện ích tự khóa thì chờ Signed out tới lúc người mở và chọn Finish sign-in lại. Hết tuyến/đạt giới hạn thì xong, tải để duyệt.
Web có cùng Sign-in: màn hình login lưu stage, bỏ link logout, dừng khi phiên hết. CAPTCHA, SMS, chấp nhận điều khoản do người. Xem backend/docs/operator-sign-in.md.
Thiết lập tác nhân
Build adapter bằng yarn nx run chrome:build trong backend/agent-browser-extensions. Cần Node.js 24+, Python 3, Chromium hỗ trợ extension. Dùng cấu hình cục bộ bỏ qua hoặc biến môi trường cho Capture Agent:
{
"Agent": {
"Id": "extension-worker",
"ApiUrl": "https://internal-admin-api.example",
"ChromiumPath": "/Applications/Chromium.app/Contents/MacOS/Chromium",
"ExtensionDir": "/checkout/backend/agent-browser-extensions/chrome"
},
"WebExtension": {
"RecorderDirectory": "/checkout/backend/tools/manual-recorder",
"NodePath": "node",
"PythonPath": "python3"
}
}
Cấp ApiTokens:Agent qua cấu hình bí mật. Kestrel Web hiện có phải loopback. Chạy binary với extension serve, gán bản ghi Desktop / Web Extension trong Admin. Mỗi mode sở hữu listener/khóa; không hai worker cùng endpoint. Từ xa cần host trình duyệt cô lập quản lý và WebExtension:ManagedBrowserIsolated rõ, vì extension chạy mạng/background riêng. Cờ không tạo cô lập. Agent:AllowHttpApi hiện có áp API phát triển loopback.
Worker quản lý nhận, heartbeat, hủy, thử tải lại. Node con dùng pipe riêng, không TCP debug. Kết thúc đóng trình duyệt/xóa hồ sơ tạm. Dùng ví thử rỗng; kịch bản không giữ xác thực/ví dùng được.
Bí mật và duyệt ảnh
Dừng trước nhập mật khẩu, khôi phục, khóa, mã; tiếp tục sau rời màn hình nhạy. Chữ bảo vệ fail-closed, tạo khoảng thiếu. Editable/con được mask trước ảnh, không đọc giá trị vào Scene. Kiểm trước/sau từ chối nếu trạng thái, mask, navigation, nội dung đổi lúc chụp.
Canvas/pixel mờ vẫn hiện trong media duyệt riêng. DOM không chứng minh không bí mật. Kiểm/mask đồng bộ trong một isolated-world evaluation; JavaScript giữ bật cho canvas render.
Finish recording đóng gói/tải tự động dạng chưa công bố. Mỗi checkpoint có trang, Scene, ảnh; index tham chiếu không chép chữ. Trong Admin, duyệt từng ảnh Hide personal data, blur/xóa không an toàn rồi công bố. Che còn xóa Scene text, tên accessibility, giá trị lặp, media bị phủ. Media gốc lưu riêng cần duyệt riêng. Điều khiển không công bố/trả ảnh gốc.
Tái dựng qua MCP
Sau duyệt/công bố, tác nhân tìm phiên bản trong Capture MCP thường. get_scenario_scene tải khung, hồ sơ, chuyển tiếp ghép từ dữ liệu trang hiện tại, gồm Admin che. Dùng công cụ trang công bố cho ảnh duyệt. Kiểm tái dựng với mọi màn hình/hồ sơ cần; gọi công cụ thành công chưa chứng minh hình ảnh trung thực.
Bằng chứng và giới hạn
Checkpoint là tĩnh. Chụp sau navigation, menu, modal, reveal và mỗi viewport cần. Quan sát liền đo changed/unchanged, không chứng minh click tự thực thi. Dừng/bị chặn tạo thiếu rõ. Không ghi lén mọi click, replay đăng ký, chụp OS permission native hay suy hoạt ảnh từ ảnh. Bước bí mật vẫn tay/không công bố. Giới hạn trang chặn checkpoint (tự chọn mặc định 200); Scene 100.000 nút/việc. Giới hạn giờ/phần tử cũng áp.
Khả dụng yêu cầu
Trong Admin → Requests → Job defaults → Request submissions, chọn cặp cho phép. Mặc định Desktop/Web, Desktop/Web Extension, Mobile/Web. Allow new requests đóng/mở mọi gửi mới; lưu giữ chọn khi đóng. Yêu cầu cũ/bản công bố vẫn có. Cùng chính sách lưu áp API/MCP xác thực, cả form cũ. Đóng trả không nền tảng. Danh mục chỉ hiện môi trường đã thu của sản phẩm; khả dụng yêu cầu không ẩn bằng chứng công bố.