Gateway
ایزولهسازی
OpenClaw میتواند ابزارها را داخل backendهای sandbox اجرا کند تا دامنه اثر کاهش یابد. این کار اختیاری است و با پیکربندی (agents.defaults.sandbox یا agents.list[].sandbox) کنترل میشود. اگر sandboxing خاموش باشد، ابزارها روی میزبان اجرا میشوند. Gateway روی میزبان باقی میماند؛ اجرای ابزار، در صورت فعال بودن، در یک sandbox ایزوله اجرا میشود.
چه چیزهایی sandbox میشوند
- اجرای ابزار (
exec،read،write،edit،apply_patch،processو غیره). - مرورگر sandboxشده اختیاری (
agents.defaults.sandbox.browser).
جزئیات مرورگر sandboxشده
- بهطور پیشفرض، وقتی ابزار مرورگر به آن نیاز داشته باشد، مرورگر sandbox بهصورت خودکار شروع میشود (اطمینان میدهد CDP در دسترس است). از طریق
agents.defaults.sandbox.browser.autoStartوagents.defaults.sandbox.browser.autoStartTimeoutMsپیکربندی کنید. - بهطور پیشفرض، کانتینرهای مرورگر sandbox بهجای شبکه سراسری
bridgeاز یک شبکه Docker اختصاصی (openclaw-sandbox-browser) استفاده میکنند. باagents.defaults.sandbox.browser.networkپیکربندی کنید. - گزینه اختیاری
agents.defaults.sandbox.browser.cdpSourceRangeورودی CDP در لبه کانتینر را با یک allowlist از نوع CIDR محدود میکند (برای مثال172.21.0.1/32). - دسترسی مشاهدهگر noVNC بهطور پیشفرض با گذرواژه محافظت میشود؛ OpenClaw یک URL توکن کوتاهعمر صادر میکند که یک صفحه bootstrap محلی ارائه میدهد و noVNC را با گذرواژه در قطعه URL باز میکند (نه در query/header logs).
agents.defaults.sandbox.browser.allowHostControlبه نشستهای sandboxشده اجازه میدهد مرورگر میزبان را بهصورت صریح هدف بگیرند.- allowlistهای اختیاری،
target: "custom"را کنترل میکنند:allowedControlUrls،allowedControlHosts،allowedControlPorts.
sandbox نمیشوند:
- خود فرایند Gateway.
- هر ابزاری که صریحاً اجازه داشته باشد خارج از sandbox اجرا شود (مثلاً
tools.elevated).- اجرای elevated از sandboxing عبور میکند و از مسیر خروج پیکربندیشده استفاده میکند (
gatewayبهطور پیشفرض، یاnodeوقتی هدف exec برابرnodeاست). - اگر sandboxing خاموش باشد،
tools.elevatedاجرا را تغییر نمیدهد (از قبل روی میزبان است). حالت Elevated را ببینید.
- اجرای elevated از sandboxing عبور میکند و از مسیر خروج پیکربندیشده استفاده میکند (
حالتها
agents.defaults.sandbox.mode کنترل میکند sandboxing چه زمانی استفاده شود:
off
بدون sandboxing.
non-main
فقط نشستهای غیر main را sandbox میکند (پیشفرض اگر چتهای عادی را روی میزبان میخواهید).
"non-main" بر اساس session.mainKey است (پیشفرض "main")، نه شناسه agent. نشستهای گروه/کانال کلیدهای خودشان را دارند، بنابراین غیر main محسوب میشوند و sandbox خواهند شد.
all
هر نشست در یک sandbox اجرا میشود.
دامنه
agents.defaults.sandbox.scope کنترل میکند چند کانتینر ساخته شود:
"agent"(پیشفرض): یک کانتینر برای هر agent."session": یک کانتینر برای هر نشست."shared": یک کانتینر مشترک برای همه نشستهای sandboxشده.
Backend
agents.defaults.sandbox.backend کنترل میکند کدام runtime sandbox را فراهم کند:
"docker"(پیشفرض وقتی sandboxing فعال است): runtime sandbox محلی با پشتوانه Docker."ssh": runtime sandbox راهدور عمومی با پشتوانه SSH."openshell": runtime sandbox با پشتوانه OpenShell.
پیکربندی اختصاصی SSH زیر agents.defaults.sandbox.ssh قرار دارد. پیکربندی اختصاصی OpenShell زیر plugins.entries.openshell.config قرار دارد.
انتخاب backend
| Docker | SSH | OpenShell | |
|---|---|---|---|
| محل اجرا | کانتینر محلی | هر میزبان قابلدسترسی با SSH | sandbox مدیریتشده OpenShell |
| راهاندازی | scripts/sandbox-setup.sh |
کلید SSH + میزبان هدف | Plugin مربوط به OpenShell فعال باشد |
| مدل workspace | Bind-mount یا کپی | remote-canonical (یکبار seed) | mirror یا remote |
| کنترل شبکه | docker.network (پیشفرض: none) |
وابسته به میزبان راهدور | وابسته به OpenShell |
| sandbox مرورگر | پشتیبانی میشود | پشتیبانی نمیشود | هنوز پشتیبانی نمیشود |
| Bind mountها | docker.binds |
N/A | N/A |
| بهترین کاربرد | توسعه محلی، ایزولهسازی کامل | واگذاری بار به ماشین راهدور | sandboxهای راهدور مدیریتشده با همگامسازی دوسویه اختیاری |
Docker backend
sandboxing بهطور پیشفرض خاموش است. اگر sandboxing را فعال کنید و backend انتخاب نکنید، OpenClaw از Docker backend استفاده میکند. ابزارها و مرورگرهای sandbox را بهصورت محلی از طریق سوکت daemon Docker (/var/run/docker.sock) اجرا میکند. ایزولهسازی کانتینر sandbox توسط namespaceهای Docker تعیین میشود.
برای در دسترس گذاشتن GPUهای میزبان برای sandboxهای Docker، agents.defaults.sandbox.docker.gpus یا override اختصاصی هر agent یعنی agents.list[].sandbox.docker.gpus را تنظیم کنید. مقدار بهعنوان یک آرگومان جداگانه به flag --gpus در Docker پاس داده میشود، برای مثال "all" یا "device=GPU-uuid"، و به یک runtime میزبان سازگار مانند NVIDIA Container Toolkit نیاز دارد.
SSH backend
وقتی میخواهید OpenClaw، exec، ابزارهای فایل، و خواندنهای رسانه را روی یک ماشین دلخواه قابلدسترسی با SSH sandbox کند، از backend: "ssh" استفاده کنید.
{ agents: { defaults: { sandbox: { mode: "all", backend: "ssh", scope: "session", workspaceAccess: "rw", ssh: { target: "user@gateway-host:22", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true, identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", // Or use SecretRefs / inline contents instead of local files: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, }, }, }, },}نحوه کار
- OpenClaw یک ریشه راهدور برای هر scope زیر
sandbox.ssh.workspaceRootمیسازد. - در اولین استفاده پس از ساخت یا بازسازی، OpenClaw آن workspace راهدور را یکبار از workspace محلی seed میکند.
- پس از آن،
exec،read،write،edit،apply_patch، خواندن رسانههای prompt، و staging رسانههای ورودی مستقیماً روی workspace راهدور از طریق SSH اجرا میشوند. - OpenClaw تغییرات راهدور را بهصورت خودکار به workspace محلی همگامسازی نمیکند.
مواد احراز هویت
identityFile،certificateFile،knownHostsFile: از فایلهای محلی موجود استفاده میکنند و آنها را از طریق پیکربندی OpenSSH عبور میدهند.identityData،certificateData،knownHostsData: از رشتههای inline یا SecretRefs استفاده میکنند. OpenClaw آنها را از طریق snapshot معمول runtime اسرار resolve میکند، با مجوز0600در فایلهای موقت مینویسد، و پس از پایان نشست SSH حذف میکند.- اگر هم
*Fileو هم*Dataبرای یک مورد تنظیم شده باشند،*Dataبرای آن نشست SSH برنده است.
پیامدهای remote-canonical
این یک مدل remote-canonical است. workspace راهدور SSH پس از seed اولیه به وضعیت واقعی sandbox تبدیل میشود.
- ویرایشهای محلی میزبان که پس از مرحله seed خارج از OpenClaw انجام شوند، تا وقتی sandbox را بازسازی نکنید در راهدور قابل مشاهده نیستند.
openclaw sandbox recreateریشه راهدور مربوط به هر scope را حذف میکند و در استفاده بعدی دوباره از محلی seed میکند.- sandboxing مرورگر در SSH backend پشتیبانی نمیشود.
- تنظیمات
sandbox.docker.*برای SSH backend اعمال نمیشوند.
OpenShell backend
وقتی میخواهید OpenClaw ابزارها را در یک محیط راهدور مدیریتشده توسط OpenShell sandbox کند، از backend: "openshell" استفاده کنید. برای راهنمای کامل راهاندازی، مرجع پیکربندی، و مقایسه حالتهای workspace، صفحه اختصاصی OpenShell را ببینید.
OpenShell از همان انتقال SSH هستهای و پل فایلسیستم راهدور backend عمومی SSH دوباره استفاده میکند و lifecycle اختصاصی OpenShell (sandbox create/get/delete، sandbox ssh-config) بهعلاوه حالت اختیاری workspace با نام mirror را اضافه میکند.
{ agents: { defaults: { sandbox: { mode: "all", backend: "openshell", scope: "session", workspaceAccess: "rw", }, }, }, plugins: { entries: { openshell: { enabled: true, config: { from: "openclaw", mode: "remote", // mirror | remote remoteWorkspaceDir: "/sandbox", remoteAgentWorkspaceDir: "/agent", }, }, }, },}حالتهای OpenShell:
mirror(پیشفرض): workspace محلی canonical باقی میماند. OpenClaw فایلهای محلی را پیش از exec به OpenShell همگامسازی میکند و workspace راهدور را پس از exec برمیگرداند.remote: پس از ساخت sandbox، workspace در OpenShell canonical است. OpenClaw یکبار workspace راهدور را از workspace محلی seed میکند، سپس ابزارهای فایل و exec مستقیماً روی sandbox راهدور اجرا میشوند، بدون اینکه تغییرات به عقب همگامسازی شوند.
جزئیات انتقال از راه دور
- OpenClaw پیکربندی SSH مخصوص sandbox را از OpenShell از طریق
openshell sandbox ssh-config <name>درخواست میکند. - هسته آن پیکربندی SSH را در یک فایل موقت مینویسد، نشست SSH را باز میکند و همان پل فایلسیستم راه دور را که توسط
backend: "ssh"استفاده میشود، دوباره بهکار میگیرد. - در حالت
mirrorفقط چرخه عمر متفاوت است: پیش از exec، محلی را با راه دور همگام میکند و سپس پس از exec دوباره همگامسازی را برمیگرداند.
محدودیتهای فعلی OpenShell
- مرورگر sandbox هنوز پشتیبانی نمیشود
sandbox.docker.bindsدر backend OpenShell پشتیبانی نمیشود- تنظیمات runtime ویژه Docker زیر
sandbox.docker.*همچنان فقط برای backend Docker اعمال میشوند
حالتهای workspace
OpenShell دو مدل workspace دارد. این همان بخشی است که در عمل بیشترین اهمیت را دارد.
mirror (local canonical)
وقتی میخواهید workspace محلی canonical باقی بماند از plugins.entries.openshell.config.mode: "mirror" استفاده کنید.
رفتار:
- پیش از
exec، OpenClaw workspace محلی را در sandbox OpenShell همگام میکند. - پس از
exec، OpenClaw workspace راه دور را دوباره به workspace محلی همگام میکند. - ابزارهای فایل همچنان از طریق پل sandbox کار میکنند، اما workspace محلی بین نوبتها منبع حقیقت باقی میماند.
وقتی از این استفاده کنید که:
- فایلها را خارج از OpenClaw بهصورت محلی ویرایش میکنید و میخواهید آن تغییرات بهطور خودکار در sandbox ظاهر شوند
- میخواهید sandbox OpenShell تا حد ممکن شبیه backend Docker رفتار کند
- میخواهید workspace میزبان پس از هر نوبت exec، نوشتنهای sandbox را منعکس کند
موازنه: هزینه همگامسازی اضافی پیش و پس از exec.
remote (OpenShell canonical)
وقتی میخواهید workspace OpenShell به canonical تبدیل شود از plugins.entries.openshell.config.mode: "remote" استفاده کنید.
رفتار:
- وقتی sandbox برای نخستین بار ساخته میشود، OpenClaw یکبار workspace راه دور را از workspace محلی مقداردهی اولیه میکند.
- پس از آن،
exec،read،write،editوapply_patchمستقیماً روی workspace راه دور OpenShell عمل میکنند. - OpenClaw پس از exec تغییرات راه دور را به workspace محلی همگام نمیکند.
- خواندن رسانهها در زمان prompt همچنان کار میکند، چون ابزارهای فایل و رسانه بهجای فرض گرفتن مسیر میزبان محلی، از طریق پل sandbox میخوانند.
- انتقال، SSH به sandbox OpenShell است که توسط
openshell sandbox ssh-configبرگردانده میشود.
پیامدهای مهم:
- اگر پس از مرحله مقداردهی اولیه، فایلها را روی میزبان خارج از OpenClaw ویرایش کنید، sandbox راه دور آن تغییرات را بهطور خودکار نخواهد دید.
- اگر sandbox دوباره ساخته شود، workspace راه دور دوباره از workspace محلی مقداردهی اولیه میشود.
- با
scope: "agent"یاscope: "shared"، آن workspace راه دور در همان scope مشترک است.
وقتی از این استفاده کنید که:
- sandbox باید عمدتاً در سمت راه دور OpenShell زندگی کند
- میخواهید سربار همگامسازی در هر نوبت کمتر باشد
- نمیخواهید ویرایشهای محلی میزبان بهصورت پنهانی وضعیت sandbox راه دور را بازنویسی کنند
اگر sandbox را یک محیط اجرای موقت میدانید، mirror را انتخاب کنید. اگر sandbox را workspace واقعی میدانید، remote را انتخاب کنید.
چرخه عمر OpenShell
sandboxهای OpenShell همچنان از طریق چرخه عمر معمول sandbox مدیریت میشوند:
openclaw sandbox listهم runtimeهای OpenShell و هم runtimeهای Docker را نشان میدهدopenclaw sandbox recreateruntime فعلی را حذف میکند و اجازه میدهد OpenClaw آن را در استفاده بعدی دوباره بسازد- منطق prune نیز از backend آگاه است
برای حالت remote، ساخت دوباره اهمیت ویژهای دارد:
- ساخت دوباره، workspace راه دور canonical را برای آن scope حذف میکند
- استفاده بعدی، یک workspace راه دور تازه را از workspace محلی مقداردهی اولیه میکند
برای حالت mirror، ساخت دوباره عمدتاً محیط اجرای راه دور را بازنشانی میکند، چون workspace محلی در هر حال canonical باقی میماند.
دسترسی به workspace
agents.defaults.sandbox.workspaceAccess کنترل میکند sandbox چه چیزی را میتواند ببیند:
none (default)
ابزارها یک workspace مربوط به sandbox را زیر ~/.openclaw/sandboxes میبینند.
ro
workspace عامل را بهصورت فقطخواندنی در /agent mount میکند (write/edit/apply_patch را غیرفعال میکند).
rw
workspace عامل را بهصورت خواندن/نوشتن در /workspace mount میکند.
با backend OpenShell:
- حالت
mirrorهمچنان از workspace محلی بهعنوان منبع canonical بین نوبتهای exec استفاده میکند - حالت
remoteپس از مقداردهی اولیه، از workspace راه دور OpenShell بهعنوان منبع canonical استفاده میکند workspaceAccess: "ro"و"none"همچنان رفتار نوشتن را به همان شکل محدود میکنند
رسانه ورودی در workspace فعال sandbox کپی میشود (media/inbound/*).
mountهای bind سفارشی
agents.defaults.sandbox.docker.binds دایرکتوریهای اضافی میزبان را در container mount میکند. قالب: host:container:mode (برای مثال، "/home/user/source:/source:rw").
bindهای سراسری و مخصوص هر عامل ادغام میشوند (جایگزین نمیشوند). زیر scope: "shared"، bindهای مخصوص هر عامل نادیده گرفته میشوند.
agents.defaults.sandbox.browser.binds دایرکتوریهای اضافی میزبان را فقط در container مرورگر sandbox mount میکند.
- وقتی تنظیم شود (از جمله
[])، برای container مرورگر جایگزینagents.defaults.sandbox.docker.bindsمیشود. - وقتی حذف شود، container مرورگر به
agents.defaults.sandbox.docker.bindsبرمیگردد (سازگار با نسخههای قبلی).
مثال (منبع فقطخواندنی + یک دایرکتوری داده اضافی):
{ agents: { defaults: { sandbox: { docker: { binds: ["/home/user/source:/source:ro", "/var/data/myapp:/data:ro"], }, }, }, list: [ { id: "build", sandbox: { docker: { binds: ["/mnt/cache:/cache:rw"], }, }, }, ], },}imageها و راهاندازی
image پیشفرض Docker: openclaw-sandbox:bookworm-slim
ساخت image پیشفرض
از یک checkout منبع:
scripts/sandbox-setup.shاز یک نصب npm (بدون نیاز به checkout منبع):
docker build -t openclaw-sandbox:bookworm-slim - <<'DOCKERFILE'FROM debian:bookworm-slimENV DEBIAN_FRONTEND=noninteractiveRUN apt-get update && apt-get install -y --no-install-recommends \ bash ca-certificates curl git jq python3 ripgrep \ && rm -rf /var/lib/apt/lists/*RUN useradd --create-home --shell /bin/bash sandboxUSER sandboxWORKDIR /home/sandboxCMD ["sleep", "infinity"]DOCKERFILEimage پیشفرض شامل Node نیست. اگر یک مهارت به Node (یا runtimeهای دیگر) نیاز دارد، یا یک image سفارشی بسازید یا از طریق sandbox.docker.setupCommand نصب کنید (نیازمند خروجی شبکه + ریشه قابلنوشتن + کاربر root).
وقتی openclaw-sandbox:bookworm-slim وجود ندارد، OpenClaw بهصورت پنهانی debian:bookworm-slim ساده را جایگزین نمیکند. اجراهای sandbox که image پیشفرض را هدف میگیرند تا زمانی که آن را بسازید، با یک دستور ساخت سریعاً fail میشوند، چون image همراه python3 را برای helperهای نوشتن/ویرایش sandbox حمل میکند.
اختیاری: ساخت image عمومی
برای یک image sandbox کاربردیتر با ابزارهای رایج (برای مثال curl، jq، Node 24، pnpm، python3 و git):
از یک checkout منبع:
scripts/sandbox-common-setup.shاز یک نصب npm، ابتدا image پیشفرض را بسازید (بالا را ببینید)، سپس با استفاده از scripts/docker/sandbox/Dockerfile.common از repository، image عمومی را روی آن بسازید.
سپس agents.defaults.sandbox.docker.image را روی openclaw-sandbox-common:bookworm-slim تنظیم کنید.
اختیاری: ساخت image مرورگر sandbox
از یک checkout منبع:
scripts/sandbox-browser-setup.shاز یک نصب npm، با استفاده از scripts/docker/sandbox/Dockerfile.browser از repository بسازید.
بهطور پیشفرض، containerهای sandbox Docker با بدون شبکه اجرا میشوند. با agents.defaults.sandbox.docker.network بازنویسی کنید.
پیشفرضهای Chromium مرورگر sandbox
image همراه مرورگر sandbox همچنین پیشفرضهای محافظهکارانه راهاندازی Chromium را برای workloadهای containerized اعمال میکند. پیشفرضهای فعلی container شامل اینها هستند:
--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-sandboxوقتیnoSandboxفعال باشد.- سه flag سختسازی گرافیک (
--disable-3d-apis،--disable-software-rasterizer،--disable-gpu) اختیاری هستند و زمانی مفیدند که containerها پشتیبانی GPU ندارند. اگر workload شما به WebGL یا دیگر قابلیتهای 3D/مرورگر نیاز دارد،OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0را تنظیم کنید. --disable-extensionsبهطور پیشفرض فعال است و برای flowهای وابسته به extension میتوان آن را باOPENCLAW_BROWSER_DISABLE_EXTENSIONS=0غیرفعال کرد.--renderer-process-limit=2توسطOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>کنترل میشود، که در آن0پیشفرض Chromium را نگه میدارد.
اگر به پروفایل runtime متفاوتی نیاز دارید، از یک image مرورگر سفارشی استفاده کنید و entrypoint خودتان را ارائه دهید. برای پروفایلهای Chromium محلی (غیر-container)، از browser.extraArgs برای افزودن flagهای راهاندازی اضافی استفاده کنید.
پیشفرضهای امنیت شبکه
network: "host"مسدود است.network: "container:<id>"بهطور پیشفرض مسدود است (خطر دور زدن از طریق پیوستن به namespace).- کنارگذاری اضطراری:
agents.defaults.sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true.
نصبهای Docker و Gateway کانتینری اینجا هستند: Docker
برای استقرارهای Docker Gateway، scripts/docker/setup.sh میتواند پیکربندی سندباکس را راهاندازی اولیه کند. OPENCLAW_SANDBOX=1 (یا true/yes/on) را تنظیم کنید تا آن مسیر فعال شود. میتوانید مکان سوکت را با OPENCLAW_DOCKER_SOCKET بازنویسی کنید. راهاندازی کامل و مرجع env: Docker.
setupCommand (راهاندازی یکباره کانتینر)
setupCommand پس از ایجاد کانتینر سندباکس، یک بار اجرا میشود (نه در هر اجرا). این دستور داخل کانتینر از طریق sh -lc اجرا میشود.
مسیرها:
- سراسری:
agents.defaults.sandbox.docker.setupCommand - برای هر عامل:
agents.list[].sandbox.docker.setupCommand
دامهای رایج
- مقدار پیشفرض
docker.networkبرابر"none"است (بدون خروجی شبکه)، بنابراین نصب بستهها شکست میخورد. docker.network: "container:<id>"بهdangerouslyAllowContainerNamespaceJoin: trueنیاز دارد و فقط برای کنارگذاری اضطراری است.readOnlyRoot: trueمانع نوشتن میشود؛readOnlyRoot: falseرا تنظیم کنید یا یک تصویر سفارشی بسازید.- برای نصب بستهها،
userباید root باشد (userرا حذف کنید یاuser: "0:0"را تنظیم کنید). - اجرای سندباکس،
process.envمیزبان را به ارث نمیبرد. برای کلیدهای API مربوط به Skills ازagents.defaults.sandbox.docker.env(یا یک تصویر سفارشی) استفاده کنید. - مقادیر در
agents.defaults.sandbox.docker.envبهعنوان متغیرهای محیطی صریح کانتینر Docker پاس داده میشوند. هر کسی که به daemon Docker دسترسی داشته باشد میتواند آنها را با دستورهای فراداده Docker مانندdocker inspectبررسی کند. اگر این افشای فراداده قابل قبول نیست، از یک تصویر سفارشی، فایل secret متصلشده، یا مسیر تحویل secret دیگری استفاده کنید.
سیاست ابزار و راههای خروج اضطراری
سیاستهای مجاز/غیرمجاز ابزار همچنان پیش از قوانین سندباکس اعمال میشوند. اگر ابزاری بهصورت سراسری یا برای هر عامل غیرمجاز شده باشد، سندباکسکردن آن را برنمیگرداند.
tools.elevated یک راه خروج اضطراری صریح است که exec را خارج از سندباکس اجرا میکند (بهطور پیشفرض gateway، یا وقتی هدف اجرای exec برابر node باشد، node). دستورالعملهای /exec فقط برای فرستندگان مجاز اعمال میشوند و در هر نشست ماندگار میمانند؛ برای غیرفعالسازی سخت exec، از غیرمجازکردن در سیاست ابزار استفاده کنید (ببینید سندباکس در برابر سیاست ابزار در برابر Elevated).
اشکالزدایی:
- از
openclaw sandbox explainبرای بررسی حالت مؤثر سندباکس، سیاست ابزار، و کلیدهای پیکربندی fix-it استفاده کنید. - برای مدل ذهنی «چرا این مسدود شده است؟» ببینید سندباکس در برابر سیاست ابزار در برابر Elevated.
آن را قفلشده نگه دارید.
بازنویسیهای چندعاملی
هر عامل میتواند سندباکس + ابزارها را بازنویسی کند: agents.list[].sandbox و agents.list[].tools (بهعلاوه agents.list[].tools.sandbox.tools برای سیاست ابزار سندباکس). برای تقدم، ببینید سندباکس و ابزارهای چندعاملی.
نمونه حداقلی فعالسازی
{ agents: { defaults: { sandbox: { mode: "non-main", scope: "session", workspaceAccess: "none", }, }, },}مرتبط
- سندباکس و ابزارهای چندعاملی — بازنویسیها و تقدم برای هر عامل
- OpenShell — راهاندازی backend سندباکس مدیریتشده، حالتهای workspace، و مرجع پیکربندی
- پیکربندی سندباکس
- سندباکس در برابر سیاست ابزار در برابر Elevated — اشکالزدایی «چرا این مسدود شده است؟»
- امنیت