openclaw browser
Quản lý bề mặt điều khiển trình duyệt của OpenClaw và chạy các hành động trình duyệt (vòng đời, hồ sơ, thẻ, snapshot, ảnh chụp màn hình, điều hướng, nhập liệu, mô phỏng trạng thái và gỡ lỗi).
Liên quan:
- Công cụ trình duyệt + API: Công cụ trình duyệt
Cờ thường dùng
--url <gatewayWsUrl>: URL WebSocket của Gateway (mặc định lấy từ cấu hình).--token <token>: token Gateway (nếu cần).--timeout <ms>: thời gian chờ yêu cầu (ms).--expect-final: chờ phản hồi Gateway cuối cùng.--browser-profile <name>: chọn hồ sơ trình duyệt (mặc định lấy từ cấu hình).--json: đầu ra máy đọc được (ở nơi được hỗ trợ).
Bắt đầu nhanh (cục bộ)
browser({ action: "doctor" }).
Khắc phục sự cố nhanh
Nếustart thất bại với not reachable after start, hãy khắc phục trạng thái sẵn sàng của CDP trước. Nếu start và tabs thành công nhưng open hoặc navigate thất bại, mặt phẳng điều khiển trình duyệt vẫn hoạt động bình thường và lỗi thường là do chính sách SSRF khi điều hướng.
Chuỗi tối thiểu:
Vòng đời
doctor --deepthêm một phép dò snapshot trực tiếp. Nó hữu ích khi trạng thái sẵn sàng CDP cơ bản đã xanh nhưng bạn muốn bằng chứng rằng thẻ hiện tại có thể được kiểm tra.- Đối với hồ sơ
attachOnlyvà CDP từ xa,openclaw browser stopđóng phiên điều khiển đang hoạt động và xóa các ghi đè mô phỏng tạm thời ngay cả khi OpenClaw không tự khởi chạy tiến trình trình duyệt. - Đối với hồ sơ cục bộ được quản lý,
openclaw browser stopdừng tiến trình trình duyệt đã được sinh ra. openclaw browser start --headlesschỉ áp dụng cho yêu cầu start đó và chỉ khi OpenClaw khởi chạy trình duyệt cục bộ được quản lý. Nó không ghi lạibrowser.headlesshay cấu hình hồ sơ, và không có tác dụng với trình duyệt đang chạy sẵn.- Trên máy chủ Linux không có
DISPLAYhoặcWAYLAND_DISPLAY, hồ sơ cục bộ được quản lý tự động chạy headless trừ khiOPENCLAW_BROWSER_HEADLESS=0,browser.headless=false, hoặcbrowser.profiles.<name>.headless=falseyêu cầu rõ ràng một trình duyệt hiển thị.
Nếu thiếu lệnh
Nếuopenclaw browser là lệnh không xác định, hãy kiểm tra plugins.allow trong
~/.openclaw/openclaw.json.
Khi có plugins.allow, hãy liệt kê rõ Plugin trình duyệt tích hợp
trừ khi cấu hình đã có khối gốc browser:
browser rõ ràng, ví dụ browser.enabled=true hoặc
browser.profiles.<name>, cũng kích hoạt Plugin trình duyệt tích hợp trong
allowlist Plugin hạn chế.
Liên quan: Công cụ trình duyệt
Hồ sơ
Hồ sơ là các cấu hình định tuyến trình duyệt có tên. Trong thực tế:openclaw: khởi chạy hoặc gắn vào một phiên bản Chrome chuyên dụng do OpenClaw quản lý (thư mục dữ liệu người dùng cô lập).user: điều khiển phiên Chrome hiện có đã đăng nhập của bạn thông qua Chrome DevTools MCP.- hồ sơ CDP tùy chỉnh: trỏ tới một endpoint CDP cục bộ hoặc từ xa.
Thẻ
tabs trả về suggestedTargetId trước, sau đó là tabId ổn định như t1,
nhãn tùy chọn, và targetId thô. Agent nên truyền
suggestedTargetId trở lại vào focus, close, snapshot và hành động. Bạn có thể
gán nhãn bằng open --label, tab new --label, hoặc tab label; nhãn,
id thẻ, id target thô, và tiền tố target-id duy nhất đều được chấp nhận.
Trường yêu cầu vẫn có tên targetId để tương thích, nhưng nó chấp nhận
các tham chiếu thẻ này. Hãy xem id target thô là tay cầm chẩn đoán, không phải
bộ nhớ agent bền vững.
Khi Chromium thay thế target thô bên dưới trong lúc điều hướng hoặc gửi biểu mẫu,
OpenClaw giữ tabId/nhãn ổn định gắn với thẻ thay thế
khi có thể chứng minh khớp. Id target thô vẫn dễ thay đổi; ưu tiên
suggestedTargetId.
Snapshot / ảnh chụp màn hình / hành động
Snapshot:--full-pagechỉ dành cho chụp trang; không thể kết hợp với--refhoặc--element.- Hồ sơ
existing-session/userhỗ trợ ảnh chụp màn hình trang và ảnh chụp--reftừ đầu ra snapshot, nhưng không hỗ trợ ảnh chụp CSS--element. --labelsphủ các ref snapshot hiện tại lên ảnh chụp màn hình. Trên hồ sơ dùng Playwright làm nền, nó hoạt động với--full-page(lớp phủ nhãn toàn trang),--ref(lớp phủ nhãn cắt theo phần tử bằng ref ARIA), và--element(lớp phủ nhãn cắt theo phần tử bằng bộ chọn CSS); trong các chế độ cắt theo phần tử, nhãn được chiếu tương đối với phần tử. Phản hồi cũng bao gồm một mảngannotationsvới hộp bao của từng ref. Mỗi mục córef,number,role,nametùy chọn, vàbox: {x, y, width, height}; tọa độ nằm trong không gian của ảnh đã chụp (viewport / fullpage / tương đối với phần tử). Trường này bị bỏ qua khi rỗng. Hồ sơexisting-sessionhiển thị lớp phủ chrome-mcp trên ảnh chụp màn hình trang nhưng không dùng helper chiếu của Playwright và không bao gồmannotations; ảnh chụp CSS--elementkhông được hỗ trợ ở đó. Không có Playwright hoặc chrome-mcp thì không có ảnh chụp màn hình có nhãn. Các bản phát hành trước đã bỏ qua--full-page,--ref, và--elementtrên ảnh chụp màn hình Playwright có nhãn và luôn trả về ảnh chụp viewport; ảnh chụp màn hình có nhãn hiện tôn trọng các phạm vi đó.snapshot --urlsthêm các đích liên kết đã phát hiện vào snapshot AI để agent có thể chọn đích điều hướng trực tiếp thay vì chỉ đoán từ văn bản liên kết.
evaluate --fn chấp nhận nguồn hàm, biểu thức, hoặc thân câu lệnh.
Thân câu lệnh được bọc thành hàm async, vì vậy hãy dùng return cho giá trị
bạn muốn nhận lại. Dùng evaluate --timeout-ms <ms> khi hàm phía trang có thể
cần lâu hơn thời gian chờ evaluate mặc định.
Phản hồi hành động trả về targetId thô hiện tại sau khi trang bị thay thế
do hành động kích hoạt, khi OpenClaw có thể chứng minh thẻ thay thế. Script vẫn nên
lưu và truyền suggestedTargetId/nhãn cho các quy trình chạy dài.
Helper tệp + hộp thoại:
/tmp/openclaw/downloads theo mặc định, hoặc temp root đã cấu hình).
Dùng waitfordownload hoặc download khi agent cần chờ một
tệp cụ thể và trả về đường dẫn của tệp đó; các bộ chờ rõ ràng đó sở hữu lần tải xuống kế tiếp.
Tải lên chấp nhận tệp từ temp uploads root của OpenClaw và media inbound
do OpenClaw quản lý, bao gồm tham chiếu media://inbound/<id> và tham chiếu
media/inbound/<id> tương đối với sandbox. Ref media lồng nhau, traversal, và đường dẫn
cục bộ tùy ý vẫn bị từ chối.
Khi một hành động mở hộp thoại modal, phản hồi hành động trả về
blockedByDialog cùng với browserState.dialogs.pending; truyền --dialog-id để
trả lời trực tiếp. Hộp thoại được xử lý bên ngoài OpenClaw xuất hiện dưới
browserState.dialogs.recent.
Trạng thái và lưu trữ
Viewport + mô phỏng:Gỡ lỗi
Chrome hiện có qua MCP
Dùng hồ sơuser tích hợp, hoặc tạo hồ sơ existing-session của riêng bạn:
--cdp-url để Chrome MCP gắn vào endpoint đó thay thế.
Đối với Docker, Browserless, hoặc các thiết lập từ xa khác nơi không cần ngữ nghĩa Chrome MCP, hãy dùng
hồ sơ CDP.
Giới hạn existing-session hiện tại:
- các hành động dựa trên ảnh chụp trạng thái sử dụng ref, không dùng bộ chọn CSS
browser.actionTimeoutMsmặc định đặt các yêu cầuactđược hỗ trợ thành 60000 ms khi bên gọi bỏ quatimeoutMs;timeoutMstheo từng lệnh gọi vẫn được ưu tiên.clickchỉ là nhấp chuột tráitypekhông hỗ trợslowly=truepresskhông hỗ trợdelayMshover,scrollintoview,drag,select,fill, vàevaluatetừ chối ghi đè thời gian chờ theo từng lệnh gọiselectchỉ hỗ trợ một giá trịwait --load networkidlekhông được hỗ trợ trên các hồ sơ phiên hiện có (hoạt động trên CDP được quản lý và thô/từ xa)- tải tệp lên yêu cầu
--ref/--input-ref, không hỗ trợ CSS--element, và hiện chỉ hỗ trợ một tệp mỗi lần - hook hộp thoại không hỗ trợ
--timeout - ảnh chụp màn hình hỗ trợ chụp trang và
--ref, nhưng không hỗ trợ CSS--element responsebody, chặn tải xuống, xuất PDF, và hành động hàng loạt vẫn yêu cầu một hồ sơ trình duyệt được quản lý hoặc CDP thô
Điều khiển trình duyệt từ xa (proxy máy chủ node)
Nếu Gateway chạy trên một máy khác với trình duyệt, hãy chạy một máy chủ node trên máy có Chrome/Brave/Edge/Chromium. Gateway sẽ proxy các hành động trình duyệt đến node đó (không cần máy chủ điều khiển trình duyệt riêng). Dùnggateway.nodes.browser.mode để kiểm soát tự động định tuyến và gateway.nodes.browser.node để ghim một node cụ thể nếu có nhiều node được kết nối.
Bảo mật + thiết lập từ xa: Công cụ trình duyệt, Truy cập từ xa, Tailscale, Bảo mật