Cấu hình Sandbox & Công cụ đa tác tử
Tổng quan
Mỗi tác tử trong một thiết lập đa tác tử giờ đây có thể có riêng:- Cấu hình sandbox (
agents.list[].sandboxghi đèagents.defaults.sandbox) - Hạn chế công cụ (
tools.allow/tools.deny, cùng vớiagents.list[].tools)
- Trợ lý cá nhân với quyền truy cập đầy đủ
- Tác tử gia đình/công việc với công cụ bị hạn chế
- Tác tử hướng ra công chúng trong sandbox
setupCommand thuộc về sandbox.docker (toàn cục hoặc theo tác tử) và chỉ chạy một lần
khi container được tạo.
Xác thực là theo từng tác tử: mỗi tác tử đọc từ kho xác thực agentDir riêng của nó tại:
agentDir across agents.
If you want to share creds, copy auth-profiles.json into the other agent’s agentDir.
- Để biết hành vi sandbox khi chạy, xem Sandboxing.
- Để gỡ lỗi “vì sao bị chặn?”, xem Sandbox vs Tool Policy vs Elevated và
openclaw sandbox explain.
Ví dụ cấu hình
Ví dụ 1: Tác tử cá nhân + tác tử gia đình bị hạn chế
- Tác tử
main: Chạy trên host, truy cập đầy đủ công cụ - Tác tử
family: Chạy trong Docker (mỗi tác tử một container), chỉ có công cụread
Ví dụ 2: Tác tử công việc với sandbox dùng chung
Ví dụ 2b: Hồ sơ coding toàn cục + tác tử chỉ nhắn tin
- Các tác tử mặc định có công cụ coding
- Tác tử
supportchỉ dành cho nhắn tin (+ công cụ Slack)
Ví dụ 3: Các chế độ sandbox khác nhau theo từng tác tử
Thứ tự ưu tiên cấu hình
Khi tồn tại cả cấu hình toàn cục (agents.defaults.*) và cấu hình theo tác tử (agents.list[].*):
Cấu hình Sandbox
Thiết lập theo tác tử sẽ ghi đè thiết lập toàn cục:agents.list[].sandbox.{docker,browser,prune}.*ghi đèagents.defaults.sandbox.{docker,browser,prune}.*cho tác tử đó (bị bỏ qua khi phạm vi sandbox được giải quyết thành"shared").
Hạn chế công cụ
Thứ tự lọc là:- Hồ sơ công cụ (
tools.profilehoặcagents.list[].tools.profile) - Hồ sơ công cụ theo nhà cung cấp (
tools.byProvider[provider].profilehoặcagents.list[].tools.byProvider[provider].profile) - Chính sách công cụ toàn cục (
tools.allow/tools.deny) - Chính sách công cụ của nhà cung cấp (
tools.byProvider[provider].allow/deny) - Chính sách công cụ theo tác tử (
agents.list[].tools.allow/deny) - Chính sách nhà cung cấp theo tác tử (
agents.list[].tools.byProvider[provider].allow/deny) - Chính sách công cụ của sandbox (
tools.sandbox.toolshoặcagents.list[].tools.sandbox.tools) - Chính sách công cụ của tác tử con (
tools.subagents.tools, nếu áp dụng)
- Mỗi cấp có thể tiếp tục hạn chế công cụ, nhưng không thể cấp lại các công cụ đã bị từ chối ở các cấp trước.
- Nếu
agents.list[].tools.sandbox.toolsđược đặt, nó sẽ thay thếtools.sandbox.toolscho tác tử đó. - Nếu
agents.list[].tools.profileđược đặt, nó sẽ ghi đètools.profilecho tác tử đó. Provider tool keys accept eitherprovider(e.g.google-antigravity) orprovider/model(e.g.openai/gpt-5.2).
Nhóm công cụ (viết tắt)
Chính sách công cụ (toàn cục, theo tác tử, sandbox) hỗ trợ các mụcgroup:* mở rộng thành nhiều công cụ cụ thể:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: tất cả các công cụ OpenClaw tích hợp sẵn (không bao gồm plugin của nhà cung cấp)
Chế độ Elevated
tools.elevatedlà đường cơ sở toàn cục (allowlist dựa trên người gửi). 18.agents.list[].tools.elevatedcó thể tiếp tục hạn chế elevated cho các tác tử cụ thể (cả hai đều phải cho phép).
- Từ chối
execcho các tác tử không đáng tin cậy (agents.list[].tools.deny: ["exec"]) - Tránh allowlist những người gửi định tuyến tới các tác tử bị hạn chế
- Vô hiệu hóa elevated toàn cục (
tools.elevated.enabled: false) nếu bạn chỉ muốn thực thi trong sandbox - Vô hiệu hóa elevated theo tác tử (
agents.list[].tools.elevated.enabled: false) cho các hồ sơ nhạy cảm
Di chuyển từ tác tử đơn
Trước (tác tử đơn):agent.* cũ được di chuyển bởi openclaw doctor; về sau nên ưu tiên agents.defaults + agents.list.
Ví dụ hạn chế công cụ
Tác tử chỉ đọc
Tác tử thực thi an toàn (không sửa đổi file)
Tác tử chỉ giao tiếp
Lỗi thường gặp: “non-main”
agents.defaults.sandbox.mode: "non-main"dựa trênsession.mainKey(mặc định"main"), không phải id của tác tử. 20. Các phiên nhóm/kênh luôn có khóa riêng, vì vậy chúng được coi là non-main và sẽ bị sandbox. 21. Nếu bạn muốn một tác tử không bao giờ bị sandbox, hãy đặtagents.list[].sandbox.mode: "off".
Kiểm thử
Sau khi cấu hình sandbox và công cụ đa tác tử:-
Kiểm tra phân giải tác tử:
-
Xác minh các container sandbox:
-
Kiểm tra hạn chế công cụ:
- Gửi một tin nhắn yêu cầu các công cụ bị hạn chế
- Xác nhận tác tử không thể sử dụng các công cụ bị từ chối
-
Theo dõi log:
Xử lý sự cố
Tác tử không bị sandbox dù có mode: "all"
- Kiểm tra xem có
agents.defaults.sandbox.modetoàn cục ghi đè hay không - Cấu hình theo tác tử có ưu tiên cao hơn, vì vậy hãy đặt
agents.list[].sandbox.mode: "all"
Công cụ vẫn khả dụng dù có danh sách từ chối
- Kiểm tra thứ tự lọc công cụ: toàn cục → tác tử → sandbox → tác tử con
- Mỗi cấp chỉ có thể hạn chế thêm, không thể cấp lại
- Xác minh bằng log:
[tools] filtering tools for agent:${agentId}
Container không được cô lập theo từng tác tử
- Đặt
scope: "agent"trong cấu hình sandbox theo tác tử - Mặc định là
"session"tạo một container cho mỗi phiên