Gateway
Hộp cát so với chính sách công cụ và chế độ đặc quyền cao
OpenClaw có ba cơ chế kiểm soát có liên quan nhưng khác nhau:
- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) quyết định công cụ chạy ở đâu (phần phụ trợ sandbox hay máy chủ). - Chính sách công cụ (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) quyết định công cụ nào khả dụng/được phép. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) là một lối thoát chỉ dành choexecđể chạy bên ngoài sandbox khi bạn đang ở trong sandbox (mặc định làgateway, hoặcnodekhi đích thực thi được cấu hình thànhnode).
Gỡ lỗi nhanh
Dùng trình kiểm tra để xem OpenClaw thực sự đang làm gì:
openclaw sandbox explainopenclaw sandbox explain --session agent:main:mainopenclaw sandbox explain --agent workopenclaw sandbox explain --jsonLệnh này in ra:
- chế độ/phạm vi sandbox và quyền truy cập không gian làm việc có hiệu lực
- phiên hiện tại có đang ở trong sandbox hay không (chính hay không chính)
- danh sách cho phép/từ chối công cụ sandbox có hiệu lực (và bắt nguồn từ tác tử/toàn cục/mặc định)
- các cổng kiểm soát elevated và đường dẫn khóa cần sửa
Sandbox: nơi công cụ chạy
Việc sử dụng sandbox được kiểm soát bằng agents.defaults.sandbox.mode:
"off": mọi thứ chạy trên máy chủ."non-main": chỉ các phiên không chính chạy trong sandbox (một tình huống "bất ngờ" thường gặp đối với nhóm/kênh)."all": mọi thứ chạy trong sandbox.
agents.defaults.sandbox.workspaceAccess kiểm soát nội dung mà sandbox có thể thấy: "none", "ro" hoặc "rw".
Xem Cơ chế sandbox để biết ma trận đầy đủ (phạm vi, điểm gắn không gian làm việc, ảnh).
Điểm gắn bind (kiểm tra bảo mật nhanh)
docker.bindsxuyên qua hệ thống tệp sandbox: mọi thứ bạn gắn đều hiển thị bên trong vùng chứa với chế độ bạn đặt (:rohoặc:rw).- Mặc định là đọc-ghi nếu bạn bỏ qua chế độ; nên dùng
:rocho mã nguồn/thông tin bí mật. scope: "shared"bỏ qua các điểm gắn riêng cho từng tác tử (chỉ áp dụng điểm gắn toàn cục).- OpenClaw xác thực nguồn bind hai lần: lần đầu trên đường dẫn nguồn đã chuẩn hóa, sau đó xác thực lại sau khi phân giải qua tổ tiên tồn tại sâu nhất. Việc thoát qua thư mục cha là liên kết tượng trưng không thể vượt qua các bước kiểm tra đường dẫn bị chặn hoặc gốc được phép.
- Các đường dẫn lá không tồn tại vẫn được kiểm tra an toàn. Nếu
/workspace/alias-out/new-fileđược phân giải qua một thư mục cha là liên kết tượng trưng tới đường dẫn bị chặn hoặc ra ngoài các gốc được phép đã cấu hình, bind sẽ bị từ chối. - Việc bind
/var/run/docker.sockvề cơ bản trao quyền kiểm soát máy chủ cho sandbox; chỉ thực hiện việc này khi có chủ đích. - Quyền truy cập không gian làm việc (
workspaceAccess) độc lập với các chế độ bind.
Chính sách công cụ: công cụ nào tồn tại/có thể được gọi
Có các lớp quan trọng sau:
- Hồ sơ công cụ:
tools.profilevàagents.list[].tools.profile(danh sách cho phép cơ sở) - Hồ sơ công cụ của nhà cung cấp:
tools.byProvider[provider].profilevàagents.list[].tools.byProvider[provider].profile - Chính sách công cụ toàn cục/cho từng tác tử:
tools.allow/tools.denyvàagents.list[].tools.allow/agents.list[].tools.deny - Chính sách công cụ của nhà cung cấp:
tools.byProvider[provider].allow/denyvàagents.list[].tools.byProvider[provider].allow/deny - Chính sách công cụ sandbox (chỉ áp dụng khi ở trong sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denyvàagents.list[].tools.sandbox.tools.*
Quy tắc kinh nghiệm:
denyluôn được ưu tiên.- Nếu
allowkhông rỗng, mọi thứ khác đều được xem là bị chặn. - Chính sách công cụ là điểm chặn tuyệt đối:
/execkhông thể ghi đè một công cụexecbị từ chối. - Chính sách công cụ lọc tính khả dụng của công cụ theo tên; chính sách này không kiểm tra các tác dụng phụ bên trong
exec. Nếuexecđược phép, việc từ chốiwrite,edithoặcapply_patchkhông khiến các lệnh shell trở thành chỉ đọc. /execchỉ thay đổi giá trị mặc định của phiên đối với người gửi được ủy quyền; lệnh này không cấp quyền truy cập công cụ.- Khóa công cụ của nhà cung cấp chấp nhận
provider(ví dụ:google-antigravity) hoặcprovider/model(ví dụ:openai/gpt-5.4). - Nhật ký Gateway chứa các mục kiểm tra
agents/tool-policykhi một bước của chính sách công cụ loại bỏ công cụ hoặc chính sách công cụ sandbox chặn một lệnh gọi. Dùngopenclaw logsđể xem nhãn quy tắc, khóa cấu hình và tên công cụ bị ảnh hưởng.
Nhóm công cụ (dạng viết tắt)
Các chính sách công cụ (toàn cục, tác tử, sandbox) hỗ trợ các mục group:* được mở rộng thành nhiều công cụ:
{ tools: { sandbox: { tools: { allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"], }, }, },}Các nhóm khả dụng:
| Nhóm | Công cụ |
|---|---|
group:runtime |
exec, process, code_execution (bash được chấp nhận làm bí danh cho exec) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes, computer |
group:agents |
agents_list, get_goal, create_goal, update_goal, update_plan, skill_workshop |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
hầu hết các công cụ tích hợp sẵn của OpenClaw (không bao gồm các thành phần cơ bản của hệ thống tệp và thời gian chạy read/write/edit/apply_patch/exec/process, canvas và các plugin của nhà cung cấp) |
group:plugins |
tất cả công cụ thuộc sở hữu của plugin đã được tải, bao gồm các máy chủ MCP được cấu hình và cung cấp qua bundle-mcp |
Đối với tác tử chỉ đọc, hãy từ chối group:runtime cũng như các công cụ hệ thống tệp có khả năng thay đổi dữ liệu, trừ khi chính sách hệ thống tệp sandbox hoặc một ranh giới máy chủ riêng biệt thực thi ràng buộc chỉ đọc.
Đối với các máy chủ MCP chạy trong sandbox, chính sách công cụ sandbox là cổng cho phép thứ hai. Nếu mcp.servers đã được cấu hình nhưng các lượt chạy trong sandbox chỉ hiển thị công cụ tích hợp sẵn, hãy thêm bundle-mcp, group:plugins hoặc tên/mẫu glob công cụ MCP có tiền tố máy chủ như outlook__send_mail hoặc outlook__* vào tools.sandbox.tools.alsoAllow, sau đó khởi động lại/tải lại Gateway và thu thập lại danh sách công cụ. Mẫu glob máy chủ sử dụng tiền tố máy chủ MCP an toàn cho nhà cung cấp: các ký tự không thuộc [A-Za-z0-9_-] được chuyển thành -, tên không bắt đầu bằng chữ cái được thêm tiền tố mcp-, còn các tiền tố dài hoặc trùng lặp có thể bị cắt ngắn hoặc thêm hậu tố.
openclaw doctor hiện kiểm tra cấu trúc này đối với các máy chủ do OpenClaw quản lý trong mcp.servers. Các máy chủ MCP được tải từ tệp kê khai plugin đi kèm hoặc .mcp.json của Claude sử dụng cùng cổng sandbox, nhưng chẩn đoán này chưa liệt kê các nguồn đó; hãy dùng cùng các mục trong danh sách cho phép nếu công cụ của chúng biến mất trong các lượt chạy trong sandbox.
Elevated: chỉ exec để "chạy trên máy chủ"
Elevated không cấp thêm công cụ; nó chỉ ảnh hưởng đến exec.
- Nếu bạn đang ở trong sandbox,
/elevated on(hoặcexecvớielevated: true) sẽ chạy bên ngoài sandbox (có thể vẫn phải phê duyệt). - Dùng
/elevated fullđể bỏ qua phê duyệtexeccho phiên. - Nếu bạn đã chạy trực tiếp, elevated về cơ bản không có tác dụng (vẫn chịu kiểm soát).
- Elevated không giới hạn theo skill và không ghi đè danh sách cho phép/từ chối công cụ.
- Elevated không cấp quyền ghi đè tùy ý giữa các máy chủ từ
host=auto; nó tuân theo các quy tắc đíchexecthông thường và chỉ giữ nguyênnodekhi đích được cấu hình/đích của phiên đã lànode. /exectách biệt với elevated. Nó chỉ điều chỉnh các giá trị mặc định củaexectheo từng phiên cho người gửi được ủy quyền.
Các cổng kiểm soát:
- Kích hoạt:
tools.elevated.enabled(và tùy chọnagents.list[].tools.elevated.enabled) - Danh sách cho phép người gửi:
tools.elevated.allowFrom.<provider>(và tùy chọnagents.list[].tools.elevated.allowFrom.<provider>)
Xem Chế độ Elevated.
Các cách khắc phục thường gặp khi bị "giam trong sandbox"
"Công cụ X bị chính sách công cụ sandbox chặn"
Các khóa cần sửa (chọn một):
- Tắt sandbox:
agents.defaults.sandbox.mode=off(hoặc theo từng tác tử:agents.list[].sandbox.mode=off) - Cho phép công cụ bên trong sandbox:
- xóa công cụ khỏi
tools.sandbox.tools.deny(hoặcagents.list[].tools.sandbox.tools.denytheo từng tác tử) - hoặc thêm công cụ vào
tools.sandbox.tools.allow(hoặc danh sách cho phép theo từng tác tử)
- xóa công cụ khỏi
- Kiểm tra
openclaw logsđể tìm mụcagents/tool-policy. Mục này ghi lại chế độ sandbox và quy tắc cho phép hay từ chối đã chặn công cụ.
"Tôi tưởng đây là phiên chính, tại sao nó lại ở trong sandbox?"
Trong chế độ "non-main", các khóa nhóm/kênh không phải là khóa chính. Hãy dùng khóa phiên chính (được hiển thị bởi sandbox explain) hoặc chuyển chế độ thành "off".
Liên quan
- Cơ chế sandbox -- tài liệu tham khảo đầy đủ về sandbox (chế độ, phạm vi, phần phụ trợ, ảnh)
- Sandbox và công cụ đa tác tử -- ghi đè và thứ tự ưu tiên theo từng tác tử
- Chế độ Elevated