OpenClaw có thể chạy các công cụ bên trong các backend sandbox để giảm phạm vi ảnh hưởng. Việc này là tùy chọn và được kiểm soát bằng cấu hình (Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
agents.defaults.sandbox hoặc agents.list[].sandbox). Nếu sandbox bị tắt, các công cụ sẽ chạy trên host. Gateway vẫn ở trên host; việc thực thi công cụ sẽ chạy trong một sandbox cô lập khi được bật.
Đây không phải là một ranh giới bảo mật hoàn hảo, nhưng nó giới hạn đáng kể quyền truy cập hệ thống tệp và tiến trình khi mô hình làm điều gì đó sai.
Những gì được sandbox
- Thực thi công cụ (
exec,read,write,edit,apply_patch,process, v.v.). - Trình duyệt sandbox tùy chọn (
agents.defaults.sandbox.browser).
Chi tiết về trình duyệt sandbox
Chi tiết về trình duyệt sandbox
- Theo mặc định, trình duyệt sandbox tự động khởi động (đảm bảo CDP có thể truy cập được) khi công cụ trình duyệt cần đến nó. Cấu hình qua
agents.defaults.sandbox.browser.autoStartvàagents.defaults.sandbox.browser.autoStartTimeoutMs. - Theo mặc định, các container trình duyệt sandbox dùng một mạng Docker chuyên dụng (
openclaw-sandbox-browser) thay vì mạngbridgetoàn cục. Cấu hình bằngagents.defaults.sandbox.browser.network. agents.defaults.sandbox.browser.cdpSourceRangetùy chọn hạn chế lưu lượng CDP đi vào ở rìa container bằng danh sách cho phép CIDR (ví dụ172.21.0.1/32).- Quyền truy cập quan sát noVNC được bảo vệ bằng mật khẩu theo mặc định; OpenClaw phát ra một URL token tồn tại ngắn hạn, URL này phục vụ một trang khởi động cục bộ và mở noVNC với mật khẩu trong mảnh URL (không nằm trong nhật ký truy vấn/header).
agents.defaults.sandbox.browser.allowHostControlcho phép các phiên sandbox nhắm rõ ràng tới trình duyệt trên host.- Các danh sách cho phép tùy chọn kiểm soát
target: "custom":allowedControlUrls,allowedControlHosts,allowedControlPorts.
- Bản thân tiến trình Gateway.
- Bất kỳ công cụ nào được cho phép rõ ràng chạy bên ngoài sandbox (ví dụ
tools.elevated).- Exec nâng quyền bỏ qua sandbox và dùng đường thoát đã cấu hình (
gatewaytheo mặc định, hoặcnodekhi mục tiêu exec lànode). - Nếu sandbox bị tắt,
tools.elevatedkhông thay đổi cách thực thi (vì đã ở trên host). Xem Chế độ nâng quyền.
- Exec nâng quyền bỏ qua sandbox và dùng đường thoát đã cấu hình (
Chế độ
agents.defaults.sandbox.mode kiểm soát khi nào sandbox được dùng:
- off
- non-main
- all
Không dùng sandbox.
Phạm vi
agents.defaults.sandbox.scope kiểm soát số lượng container được tạo:
"agent"(mặc định): một container cho mỗi agent."session": một container cho mỗi phiên."shared": một container dùng chung cho tất cả các phiên được sandbox.
Backend
agents.defaults.sandbox.backend kiểm soát runtime nào cung cấp sandbox:
"docker"(mặc định khi bật sandbox): runtime sandbox cục bộ dựa trên Docker."ssh": runtime sandbox từ xa chung dựa trên SSH."openshell": runtime sandbox dựa trên OpenShell.
agents.defaults.sandbox.ssh. Cấu hình dành riêng cho OpenShell nằm dưới plugins.entries.openshell.config.
Chọn backend
| Docker | SSH | OpenShell | |
|---|---|---|---|
| Nơi chạy | Container cục bộ | Bất kỳ host nào truy cập được qua SSH | Sandbox do OpenShell quản lý |
| Thiết lập | scripts/sandbox-setup.sh | Khóa SSH + host mục tiêu | Plugin OpenShell được bật |
| Mô hình workspace | Bind-mount hoặc sao chép | Chuẩn từ xa (seed một lần) | mirror hoặc remote |
| Kiểm soát mạng | docker.network (mặc định: không có) | Phụ thuộc vào host từ xa | Phụ thuộc vào OpenShell |
| Sandbox trình duyệt | Được hỗ trợ | Không được hỗ trợ | Chưa được hỗ trợ |
| Bind mount | docker.binds | N/A | N/A |
| Phù hợp nhất cho | Phát triển cục bộ, cô lập đầy đủ | Chuyển tải sang máy từ xa | Sandbox từ xa được quản lý với đồng bộ hai chiều tùy chọn |
Backend Docker
Sandbox bị tắt theo mặc định. Nếu bạn bật sandbox và không chọn backend, OpenClaw sẽ dùng backend Docker. Nó thực thi công cụ và trình duyệt sandbox cục bộ thông qua socket daemon Docker (/var/run/docker.sock). Mức cô lập của container sandbox được xác định bởi namespace của Docker.
Để đưa GPU của host vào sandbox Docker, đặt agents.defaults.sandbox.docker.gpus hoặc giá trị ghi đè theo agent agents.list[].sandbox.docker.gpus. Giá trị này được truyền vào cờ --gpus của Docker dưới dạng một đối số riêng, ví dụ "all" hoặc "device=GPU-uuid", và yêu cầu runtime host tương thích như NVIDIA Container Toolkit.
Backend SSH
Dùngbackend: "ssh" khi bạn muốn OpenClaw sandbox exec, các công cụ tệp, và việc đọc media trên một máy bất kỳ có thể truy cập qua SSH.
Cách hoạt động
Cách hoạt động
- OpenClaw tạo một thư mục gốc từ xa theo phạm vi dưới
sandbox.ssh.workspaceRoot. - Trong lần dùng đầu tiên sau khi tạo hoặc tạo lại, OpenClaw seed workspace từ xa đó từ workspace cục bộ một lần.
- Sau đó,
exec,read,write,edit,apply_patch, việc đọc media trong prompt, và staging media đi vào sẽ chạy trực tiếp trên workspace từ xa qua SSH. - OpenClaw không tự động đồng bộ các thay đổi từ xa trở lại workspace cục bộ.
Vật liệu xác thực
Vật liệu xác thực
identityFile,certificateFile,knownHostsFile: dùng các tệp cục bộ hiện có và truyền chúng qua cấu hình OpenSSH.identityData,certificateData,knownHostsData: dùng chuỗi nội tuyến hoặc SecretRefs. OpenClaw phân giải chúng qua snapshot runtime bí mật thông thường, ghi chúng vào tệp tạm với0600, và xóa chúng khi phiên SSH kết thúc.- Nếu cả
*Filevà*Datađược đặt cho cùng một mục,*Datasẽ thắng cho phiên SSH đó.
Hệ quả của chuẩn từ xa
Hệ quả của chuẩn từ xa
Đây là một mô hình chuẩn từ xa. Workspace SSH từ xa trở thành trạng thái sandbox thực sau lần seed ban đầu.
- Các chỉnh sửa cục bộ trên host được thực hiện bên ngoài OpenClaw sau bước seed sẽ không hiển thị từ xa cho đến khi bạn tạo lại sandbox.
openclaw sandbox recreatexóa thư mục gốc từ xa theo phạm vi và seed lại từ cục bộ trong lần dùng tiếp theo.- Backend SSH không hỗ trợ sandbox trình duyệt.
- Các thiết lập
sandbox.docker.*không áp dụng cho backend SSH.
Backend OpenShell
Dùngbackend: "openshell" khi bạn muốn OpenClaw sandbox các công cụ trong một môi trường từ xa do OpenShell quản lý. Để xem hướng dẫn thiết lập đầy đủ, tham chiếu cấu hình, và so sánh chế độ workspace, xem trang OpenShell chuyên biệt.
OpenShell tái sử dụng cùng transport SSH lõi và cầu hệ thống tệp từ xa như backend SSH chung, đồng thời thêm vòng đời dành riêng cho OpenShell (sandbox create/get/delete, sandbox ssh-config) cùng chế độ workspace mirror tùy chọn.
mirror(mặc định): workspace cục bộ vẫn là chuẩn. OpenClaw đồng bộ các tệp cục bộ vào OpenShell trước exec và đồng bộ workspace từ xa trở lại sau exec.remote: workspace OpenShell là chuẩn sau khi sandbox được tạo. OpenClaw seed workspace từ xa một lần từ workspace cục bộ, sau đó các công cụ tệp và exec chạy trực tiếp trên sandbox từ xa mà không đồng bộ thay đổi trở lại.
Chi tiết transport từ xa
Chi tiết transport từ xa
- OpenClaw yêu cầu OpenShell cung cấp cấu hình SSH dành riêng cho sandbox qua
openshell sandbox ssh-config <name>. - Core ghi cấu hình SSH đó vào tệp tạm, mở phiên SSH, và tái sử dụng cùng cầu hệ thống tệp từ xa được dùng bởi
backend: "ssh". - Chỉ trong chế độ
mirror, vòng đời mới khác: đồng bộ cục bộ sang từ xa trước exec, rồi đồng bộ trở lại sau exec.
Giới hạn hiện tại của OpenShell
Giới hạn hiện tại của OpenShell
- sandbox trình duyệt chưa được hỗ trợ
sandbox.docker.bindskhông được hỗ trợ trên backend OpenShell- Các núm điều chỉnh runtime dành riêng cho Docker dưới
sandbox.docker.*vẫn chỉ áp dụng cho backend Docker
Chế độ workspace
OpenShell có hai mô hình workspace. Đây là phần quan trọng nhất trong thực tế.- mirror (chuẩn cục bộ)
- remote (OpenShell canonical)
Dùng
plugins.entries.openshell.config.mode: "mirror" khi bạn muốn workspace cục bộ tiếp tục là chuẩn.Hành vi:- Trước
exec, OpenClaw đồng bộ workspace cục bộ vào sandbox OpenShell. - Sau
exec, OpenClaw đồng bộ workspace từ xa trở lại workspace cục bộ. - Các công cụ tệp vẫn hoạt động thông qua cầu sandbox, nhưng workspace cục bộ vẫn là nguồn sự thật giữa các lượt.
- bạn chỉnh sửa tệp cục bộ bên ngoài OpenClaw và muốn các thay đổi đó tự động xuất hiện trong môi trường cô lập
- bạn muốn môi trường cô lập OpenShell hoạt động giống phần phụ trợ Docker nhất có thể
- bạn muốn không gian làm việc trên máy chủ phản ánh các lần ghi của môi trường cô lập sau mỗi lượt thực thi
mirror nếu bạn xem môi trường cô lập như một môi trường thực thi tạm thời. Chọn remote nếu bạn xem môi trường cô lập như không gian làm việc thực sự.
Vòng đời OpenShell
Môi trường cô lập OpenShell vẫn được quản lý qua vòng đời môi trường cô lập thông thường:openclaw sandbox listhiển thị runtime OpenShell cũng như runtime Dockeropenclaw sandbox recreatexóa runtime hiện tại và cho phép OpenClaw tạo lại trong lần dùng tiếp theo- logic dọn dẹp cũng nhận biết phần phụ trợ
remote, việc tạo lại đặc biệt quan trọng:
- tạo lại sẽ xóa không gian làm việc từ xa chính thức cho phạm vi đó
- lần dùng tiếp theo gieo một không gian làm việc từ xa mới từ không gian làm việc cục bộ
mirror, việc tạo lại chủ yếu đặt lại môi trường thực thi từ xa vì không gian làm việc cục bộ dù sao vẫn là nguồn chính thức.
Truy cập không gian làm việc
agents.defaults.sandbox.workspaceAccess kiểm soát môi trường cô lập có thể thấy gì:
- none (default)
- ro
- rw
Công cụ thấy một không gian làm việc môi trường cô lập dưới
~/.openclaw/sandboxes.- chế độ
mirrorvẫn dùng không gian làm việc cục bộ làm nguồn chính thức giữa các lượt thực thi - chế độ
remotedùng không gian làm việc OpenShell từ xa làm nguồn chính thức sau bước gieo ban đầu workspaceAccess: "ro"và"none"vẫn hạn chế hành vi ghi theo cùng cách
media/inbound/*).
Ghi chú về Skills: công cụ
read được neo theo gốc môi trường cô lập. Với workspaceAccess: "none", OpenClaw phản chiếu các Skills đủ điều kiện vào không gian làm việc môi trường cô lập (.../skills) để có thể đọc chúng. Với "rw", Skills trong không gian làm việc có thể đọc được từ /workspace/skills.Gắn kết bind tùy chỉnh
agents.defaults.sandbox.docker.binds gắn thêm các thư mục máy chủ vào container. Định dạng: host:container:mode (ví dụ: "/home/user/source:/source:rw").
Các bind toàn cục và theo từng tác tử được hợp nhất (không thay thế). Trong scope: "shared", bind theo từng tác tử bị bỏ qua.
agents.defaults.sandbox.browser.binds chỉ gắn thêm các thư mục máy chủ vào container trình duyệt môi trường cô lập.
- Khi được đặt (bao gồm
[]), nó thay thếagents.defaults.sandbox.docker.bindscho container trình duyệt. - Khi bị bỏ qua, container trình duyệt dùng dự phòng
agents.defaults.sandbox.docker.binds(tương thích ngược).
Hình ảnh và thiết lập
Hình ảnh Docker mặc định:openclaw-sandbox:bookworm-slim
Build the default image
sandbox.docker.setupCommand (yêu cầu egress mạng + root có thể ghi + người dùng root).OpenClaw không âm thầm thay thế bằng debian:bookworm-slim thuần khi thiếu openclaw-sandbox:bookworm-slim. Các lần chạy môi trường cô lập nhắm tới hình ảnh mặc định sẽ thất bại nhanh với hướng dẫn build cho đến khi bạn chạy scripts/sandbox-setup.sh, vì hình ảnh đi kèm mang python3 cho các trình trợ giúp ghi/chỉnh sửa của môi trường cô lập.Optional: build the common image
Để có hình ảnh môi trường cô lập nhiều chức năng hơn với công cụ phổ biến (ví dụ Sau đó đặt
curl, jq, nodejs, python3, git):agents.defaults.sandbox.docker.image thành openclaw-sandbox-common:bookworm-slim.agents.defaults.sandbox.docker.network.
Sandbox browser Chromium defaults
Sandbox browser Chromium defaults
Hình ảnh trình duyệt môi trường cô lập đi kèm cũng áp dụng các mặc định khởi động Chromium thận trọng cho khối lượng công việc container hóa. Các mặc định container hiện tại bao gồm:
--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-dev-shm-usage--disable-background-networking--disable-extensions--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--disable-software-rasterizer--no-zygote--metrics-recording-only--renderer-process-limit=2--no-sandboxkhinoSandboxđược bật.- Ba cờ gia cố đồ họa (
--disable-3d-apis,--disable-software-rasterizer,--disable-gpu) là tùy chọn và hữu ích khi container thiếu hỗ trợ GPU. ĐặtOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0nếu khối lượng công việc của bạn yêu cầu WebGL hoặc các tính năng 3D/trình duyệt khác. --disable-extensionsđược bật theo mặc định và có thể tắt bằngOPENCLAW_BROWSER_DISABLE_EXTENSIONS=0cho các luồng phụ thuộc vào tiện ích mở rộng.--renderer-process-limit=2được kiểm soát bởiOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>, trong đó0giữ mặc định của Chromium.
browser.extraArgs để nối thêm các cờ khởi động bổ sung.Network security defaults
Network security defaults
network: "host"bị chặn.network: "container:<id>"bị chặn theo mặc định (rủi ro vượt qua bằng cách tham gia namespace).- Ghi đè phá kính khẩn cấp:
agents.defaults.sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true.
scripts/docker/setup.sh có thể khởi tạo cấu hình môi trường cô lập. Đặt OPENCLAW_SANDBOX=1 (hoặc true/yes/on) để bật đường dẫn đó. Bạn có thể ghi đè vị trí socket bằng OPENCLAW_DOCKER_SOCKET. Thiết lập đầy đủ và tham chiếu env: Docker.
setupCommand (thiết lập container một lần)
setupCommand chạy một lần sau khi container môi trường cô lập được tạo (không chạy ở mọi lần). Nó thực thi bên trong container qua sh -lc.
Đường dẫn:
- Toàn cục:
agents.defaults.sandbox.docker.setupCommand - Theo từng tác tử:
agents.list[].sandbox.docker.setupCommand
Common pitfalls
Common pitfalls
docker.networkmặc định là"none"(không có egress), nên cài đặt gói sẽ thất bại.docker.network: "container:<id>"yêu cầudangerouslyAllowContainerNamespaceJoin: truevà chỉ dành cho trường hợp phá kính khẩn cấp.readOnlyRoot: truengăn ghi; đặtreadOnlyRoot: falsehoặc bake một hình ảnh tùy chỉnh.userphải là root để cài đặt gói (bỏ quauserhoặc đặtuser: "0:0").- Thực thi môi trường cô lập không kế thừa
process.envcủa máy chủ. Dùngagents.defaults.sandbox.docker.env(hoặc một hình ảnh tùy chỉnh) cho khóa API của skill.
Chính sách công cụ và lối thoát
Các chính sách cho phép/từ chối công cụ vẫn áp dụng trước quy tắc môi trường cô lập. Nếu một công cụ bị từ chối toàn cục hoặc theo từng tác tử, môi trường cô lập không mang nó trở lại.tools.elevated là lối thoát rõ ràng chạy exec bên ngoài môi trường cô lập (gateway theo mặc định, hoặc node khi mục tiêu thực thi là node). Các chỉ thị /exec chỉ áp dụng cho người gửi được ủy quyền và tồn tại theo từng phiên; để vô hiệu hóa cứng exec, hãy dùng từ chối trong chính sách công cụ (xem Môi trường cô lập so với chính sách công cụ so với nâng quyền).
Gỡ lỗi:
- Dùng
openclaw sandbox explainđể kiểm tra chế độ môi trường cô lập hiệu lực, chính sách công cụ, và các khóa cấu hình sửa lỗi. - Xem Môi trường cô lập so với chính sách công cụ so với nâng quyền để có mô hình tư duy “vì sao điều này bị chặn?”.
Ghi đè đa tác tử
Mỗi tác tử có thể ghi đè môi trường cô lập + công cụ:agents.list[].sandbox và agents.list[].tools (cộng với agents.list[].tools.sandbox.tools cho chính sách công cụ của môi trường cô lập). Xem Môi trường cô lập & công cụ đa tác tử để biết thứ tự ưu tiên.
Ví dụ bật tối thiểu
Liên quan
- Hộp cát đa tác nhân & công cụ — ghi đè theo từng tác nhân và thứ tự ưu tiên
- OpenShell — thiết lập backend hộp cát được quản lý, chế độ không gian làm việc và tham chiếu cấu hình
- Cấu hình hộp cát
- Hộp cát so với Chính sách công cụ so với Đặc quyền nâng cao — gỡ lỗi “tại sao thao tác này bị chặn?”
- Bảo mật