Tools
ابزار اجرا
اجرای فرمانهای پوسته در فضای کاری. exec یک سطح پوستهٔ تغییردهنده است: فرمانها میتوانند در هر جایی که فایلسیستم میزبان یا سندباکس انتخابشده اجازه میدهد، فایل ایجاد، ویرایش یا حذف کنند. غیرفعالکردن ابزارهای فایلسیستم OpenClaw مانند write، edit یا apply_patch، exec را فقطخواندنی نمیکند.
از اجرای پیشزمینه و پسزمینه از طریق process پشتیبانی میکند. اگر process مجاز نباشد، exec بهصورت همگام اجرا میشود و yieldMs/background را نادیده میگیرد. نشستهای پسزمینه به هر عامل محدودند؛ process فقط نشستهای همان عامل را میبیند.
پارامترها
commandstringrequiredفرمان پوسته برای اجرا.
workdirstringdefault: cwdدایرکتوری کاری فرمان.
envobjectجایگزینیهای کلید/مقدار محیط که روی محیط بهارثرسیده ادغام میشوند.
yieldMsnumberdefault: 10000پس از این تأخیر (ms)، فرمان را بهطور خودکار به پسزمینه بفرست.
backgroundbooleandefault: falseبهجای انتظار برای yieldMs، فرمان را بلافاصله در پسزمینه اجرا کن.
timeoutnumberdefault: tools.exec.timeoutSecondsمهلت اجرای پیکربندیشده را برای این فراخوانی، بر حسب ثانیه، بازنویسی میکند. برای اجرای پیشزمینه، پسزمینه، yieldMs، Gateway، سندباکس و system.run در Node اعمال میشود. timeout: 0 مهلت فرایند اجرا را برای آن فراخوانی غیرفعال میکند.
ptybooleandefault: falseدر صورت دسترسبودن، در یک شبهترمینال اجرا کن. برای CLIهای مختص TTY، عاملهای کدنویسی و رابطهای کاربری ترمینال استفاده شود.
host'auto' | 'sandbox' | 'gateway' | 'node'default: autoمحل اجرا. وقتی زماناجرای سندباکس فعال باشد، auto به sandbox و در غیر این صورت به gateway تبدیل میشود.
security'deny' | 'allowlist' | 'full'برای فراخوانیهای عادی ابزار نادیده گرفته میشود. امنیت gateway/node از tools.exec.mode و فایل تأییدهای میزبان بهدست میآید؛ حالت ارتقایافته فقط زمانی میتواند دسترسی کامل را تحمیل کند که اپراتور صراحتاً دسترسی ارتقایافته را اعطا کند.
ask'off' | 'on-miss' | 'always'حالت پایهٔ درخواست تأیید از tools.exec.mode و تأییدهای میزبان بهدست میآید. برای فراخوانیهای مدل با منشأ کانال، وقتی درخواست تأیید مؤثر میزبان off باشد، ask هر فراخوانی نادیده گرفته میشود؛ در غیر این صورت فقط میتواند به حالتی سختگیرانهتر تغییر کند.
nodestringشناسه/نام Node هنگام host=node.
elevatedbooleandefault: falseدرخواست حالت ارتقایافته: خروج از سندباکس به مسیر پیکربندیشدهٔ میزبان. تنها وقتی حالت ارتقایافته به full تبدیل شود، security=full تحمیل میشود.
نکتهها:
hostفقطauto،sandbox،gatewayیاnodeرا میپذیرد. این گزینه انتخابکنندهٔ نام میزبان نیست؛ مقادیر شبیه نام میزبان پیش از اجرای فرمان رد میشوند.host=nodeهر فراخوانی ازautoمجاز است؛host=gatewayهر فراخوانی فقط زمانی مجاز است که هیچ زماناجرای سندباکسی فعال نباشد.- بدون پیکربندی اضافه،
host=autoهمچنان «بهسادگی کار میکند»: نبود سندباکس باعث میشود بهgatewayتبدیل شود؛ وجود سندباکس فعال باعث میشود در سندباکس باقی بماند. elevatedاز سندباکس خارج و وارد مسیر پیکربندیشدهٔ میزبان میشود: بهطور پیشفرضgateway، یا وقتیtools.exec.host=node(یا مقدار پیشفرض نشستhost=nodeاست)،node. این گزینه فقط زمانی در دسترس است که دسترسی ارتقایافته برای نشست/ارائهدهندهٔ فعلی فعال باشد.- تأییدهای
gateway/nodeتوسط فایل تأییدهای میزبان کنترل میشوند. nodeبه یک Node جفتشده (برنامهٔ همراه یا میزبان Node بدون رابط) نیاز دارد. اگر چند Node در دسترس است، برای انتخاب یکیexec.nodeیاtools.exec.nodeرا تنظیم کنید.exec host=nodeتنها مسیر اجرای پوسته برای Nodeها است؛ پوشش قدیمیnodes.runحذف شده است.- در میزبانهای غیر Windows، اگر
SHELLتنظیم شده باشد، exec از آن استفاده میکند؛ اگرSHELLبرابر باfishباشد، برای جلوگیری از ناسازگاری ساختارهای bash با fish،bash(یاsh) را ازPATHترجیح میدهد و اگر هیچکدام وجود نداشته باشند، بهSHELLبرمیگردد. - در میزبانهای Windows، exec ابتدا کشف PowerShell 7 (
pwsh) را ترجیح میدهد (Program Files، سپس ProgramW6432 و بعد PATH) و پس از آن به Windows PowerShell 5.1 برمیگردد. - در میزبانهای غیر Windows مربوط به Gateway، فرمانهای exec در bash و zsh از یک تصویر لحظهای راهاندازی استفاده میکنند. OpenClaw نامهای مستعار/توابع قابل منبعدهی و مجموعهٔ کوچک و امنی از محیط را از فایلهای راهاندازی پوسته در
$OPENCLAW_STATE_DIR/cache/shell-snapshots/ثبت میکند و سپس پیش از هر فرمان exec آن تصویر لحظهای را منبعدهی میکند. متغیرهایی که شبیه اطلاعات محرمانهاند حذف میشوند؛ exec در سندباکس و Node از این تصویر لحظهای استفاده نمیکند. برای غیرفعالکردن این مسیر تصویر لحظهای،OPENCLAW_EXEC_SHELL_SNAPSHOT=0را در محیط فرایند Gateway تنظیم کنید. - اجرای میزبان (
gateway/node) برای جلوگیری از ربایش فایل اجرایی یا تزریق کد،env.PATHو بازنویسیهای بارگذار (LD_*/DYLD_*) را رد میکند. - OpenClaw متغیر
OPENCLAW_SHELL=execرا در محیط فرمان ایجادشده (از جمله اجرای PTY و سندباکس) تنظیم میکند تا قواعد پوسته/پروفایل بتوانند زمینهٔ ابزار exec را تشخیص دهند. - برای اجراهای با منشأ کانال، اگر کانال آن شناسهها را ارائه کرده باشد، OpenClaw همچنین یک بار JSON محدود شامل هویت فرستنده/گفتوگو را در
OPENCLAW_CHANNEL_CONTEXTدر دسترس قرار میدهد. execنمیتواند فرمانهای پوستهٔopenclaw channels loginیا/approveرا اجرا کند:openclaw channels loginیک جریان تعاملی احراز هویت کانال است و/approveباید از کنترلکنندهٔ فرمان تأیید عبور کند، نه از پوسته. ورود کانال را در ترمینالی روی میزبان Gateway اجرا کنید، یا در صورت وجود از ابزار عامل ورود مختص کانال استفاده کنید (برای مثالwhatsapp_login).- مهم: سندباکس بهطور پیشفرض غیرفعال است. اگر سندباکس غیرفعال باشد،
host=autoضمنی بهgatewayتبدیل میشود.host=sandboxصریح همچنان بهصورت بسته و ایمن شکست میخورد و بیسروصدا روی میزبان Gateway اجرا نمیشود. سندباکس را فعال کنید یا ازhost=gatewayهمراه با تأییدها استفاده کنید. - بررسیهای پیشاجرای اسکریپت (برای اشتباهات رایج نحو پوسته در Python/Node) فقط فایلهای داخل محدودهٔ مؤثر
workdirرا بررسی میکنند. اگر مسیر اسکریپت به خارج ازworkdirمنتهی شود، پیشاجرا برای آن فایل رد میشود. همچنین وقتیhost=gatewayو سیاست مؤثرsecurity=fullهمراه باask=offباشد، پیشاجرا بهطور کامل رد میشود. - برای کار طولانیمدتی که اکنون آغاز میشود، آن را یکبار شروع کنید و در صورت فعالبودن بیدارسازی خودکار تکمیل و خروجیدادن یا شکست فرمان، به آن تکیه کنید. برای گزارشها، وضعیت، ورودی یا مداخله از
processاستفاده کنید؛ زمانبندی را با حلقههای خواب، حلقههای مهلت یا نظرسنجی مکرر شبیهسازی نکنید. - فرمانهای پسزمینهای که عامل آغاز میکند تا زمان پایان در نماهای وظایف پسزمینهٔ Web، iOS و Android نمایش داده میشوند. دفتر وظایف پیش از آنکه Heartbeat تکمیل دوباره عامل را بیدار کند، نهایی میشود.
- برای کاری که باید بعداً یا طبق برنامه انجام شود، بهجای الگوهای خواب/تأخیر
execاز Cron استفاده کنید.
پیکربندی
| کلید | پیشفرض | نکتهها |
|---|---|---|
tools.exec.timeoutSeconds |
1800 |
مهلت پیشفرض exec برای هر فرمان بر حسب ثانیه. timeout هر فراخوانی آن را بازنویسی میکند؛ timeout: 0 هر فراخوانی مهلت فرایند exec را غیرفعال میکند. |
tools.exec.host |
auto |
وقتی زماناجرای سندباکس فعال باشد به sandbox و در غیر این صورت به gateway تبدیل میشود. |
tools.exec.mode |
برگرفته از میزبان | کنترل سیاست متعارف. حالتها را در ادامه ببینید. |
tools.exec.reviewer.model |
عامل اصلی پیکربندیشده | بازنویسی اختیاری ارائهدهنده/مدل برای بازبینی mode=auto. |
tools.exec.reviewer.timeoutMs |
30000 |
مهلت هر مرحله برای آمادهسازی و تکمیل مدل بازبین پیش از بازگشت به انسان. |
tools.exec.node |
تنظیمنشده | |
tools.exec.notifyOnExit |
true |
وقتی درست باشد، نشستهای exec که به پسزمینه فرستاده شدهاند هنگام خروج یک رویداد سیستمی در صف قرار میدهند و Heartbeat درخواست میکنند. |
tools.exec.approvalRunningNoticeMs |
10000 |
وقتی یک exec نیازمند تأیید بیشتر از این مدت اجرا شود، یک اعلان «در حال اجرا» منتشر میکند (0 غیرفعال میکند). |
tools.exec.strictInlineEval |
false |
ارزیابی درونخطی را ببینید. |
tools.exec.commandHighlighting |
false |
وقتی درست باشد، درخواستهای تأیید میتوانند بخشهای فرمان استخراجشده توسط تجزیهگر را در متن فرمان برجسته کنند. بهصورت سراسری یا برای هر عامل تنظیم کنید؛ سیاست تأیید را تغییر نمیدهد. |
tools.exec.pathPrepend |
تنظیمنشده | فهرست دایرکتوریهایی که برای اجراهای exec به ابتدای PATH افزوده میشوند (فقط Gateway و سندباکس). |
tools.exec.safeBins |
تنظیمنشده | فایلهای اجرایی امنِ فقط ورودی استاندارد که میتوانند بدون ورودی صریح در فهرست مجاز اجرا شوند. فایلهای اجرایی امن را ببینید. |
tools.exec.safeBinTrustedDirs |
/bin، /usr/bin |
دایرکتوریهای صریح اضافی مورد اعتماد برای بررسی مسیر safeBins. ورودیهای PATH هرگز بهطور خودکار مورد اعتماد قرار نمیگیرند. |
tools.exec.safeBinProfiles |
تنظیمنشده | سیاست سفارشی اختیاری argv برای هر فایل اجرایی امن (minPositional، maxPositional، allowedValueFlags، deniedFlags). |
اجرای میزبان بدون تأیید برای Gateway و Node (mode=full) پیشفرض است — این رفتار از پیشفرضهای سیاست میزبان میآید، نه از host=auto. اگر رفتار تأیید/فهرست مجاز را میخواهید، tools.exec.mode را تنظیم و فایل تأییدهای میزبان را سختگیرانهتر کنید؛ تأییدهای Exec را ببینید. برای تحمیل مسیریابی Gateway یا Node بدون توجه به وضعیت سندباکس، tools.exec.host را تنظیم کنید یا از /exec host=... استفاده کنید.
مثال:
{ tools: { exec: { pathPrepend: ["~/bin", "/opt/oss/bin"], }, },}حالتها
tools.exec.mode کنترل سیاست متعارف و ماندگار است. رفتار امنیت و تأیید زماناجرا از آن بهدست میآید.
| حالت | امنیت | پرسش | رفتار |
|---|---|---|---|
deny |
deny |
off |
اجرای دستور رد میشود. |
allowlist |
allowlist |
off |
فقط فرمانهای فهرست مجاز/باینری امن اجرا میشوند؛ برای هیچ مورد دیگری پرسشی مطرح نمیشود. |
ask |
allowlist |
on-miss |
موارد منطبق با فهرست مجاز مستقیماً اجرا میشوند؛ برای هر مورد دیگری از انسان پرسیده میشود. |
auto |
allowlist |
on-miss |
موارد منطبق با فهرست مجاز/باینری امن مستقیماً اجرا میشوند؛ هر مورد دیگری پیش از پرسش از انسان، از بازبین خودکار بومی OpenClaw عبور میکند. |
full |
full |
off |
هیچ دروازه تأییدی وجود ندارد. |
مقدار مختص هر نشستِ /exec ask=always، صرفنظر از حالت ذخیرهشده، همچنان هر بار از انسان میپرسد.
تأیید بازبینی خودکار یکبارمصرف است. در Gateway، OpenClaw مسیر اجرایی حلشده را به بازبین ارائه میکند و اجرا را به همان مسیر مقید میسازد. فرمانهایی که نتوان آنها را به یک برنامه اجرایی قابلاعمال فروکاست—مانند heredocها، بسطهای پوسته یا نقلقولگذاری پشتیبانینشده در لفافها—حتی اگر مدل در حالت عادی آنها را مجاز بداند، به تأیید انسانی بازمیگردند.
تأییدهای فرمان app-server در Codex که از پیش توسط سیاست صریح زمان اجرا یا سیاست بومی تعیین نشدهاند، از مسیر تأیید انسانی استفاده میکنند. OpenClaw بازبین اجرای پیکربندیشده خود را برای این درخواستها اجرا نمیکند، زیرا Codex یک فایل اجرایی حلشده و قابلاعمال ارائه نمیدهد که بتوان تصمیم بازبینی را به فرمانی که Codex اجرا میکند مقید ساخت.
ارزیابی درونخطی (strictInlineEval)
وقتی tools.exec.strictInlineEval برابر با true است، شکلهای ارزیابی درونخطی مفسر به بازبین یا تأیید صریح نیاز دارند: python -c، node -e، ruby -e، perl -e، php -r، lua -e، osascript -e و شکلهای مشابه در دیگر مفسرها و حاملهای فرمان پشتیبانیشده (awk، find -exec، make، sed، xargs و موارد دیگر). در mode=auto، مسیر عادی تأیید اجرا ممکن است به بازبین خودکار بومی اجازه دهد یک فرمان یکباره و آشکارا کمخطر را مجاز کند؛ فراخوانیهای مستقیم system.run در میزبان Node همچنان به تأیید صریح نیاز دارند، زیرا نمیتوانند فرمان را به مسیر تأیید انسانی تحویل دهند. اگر بازبین درخواست تأیید کند، درخواست به انسان ارسال میشود. allow-always همچنان میتواند فراخوانیهای بیخطر مفسر/اسکریپت را ماندگار کند، اما شکلهای ارزیابی درونخطی به قواعد مجازسازی ماندگار تبدیل نمیشوند.
مدیریت PATH
host=gateway: مقدارPATHپوسته ورود شما را در محیط اجرا ادغام میکند. بازنویسیهایenv.PATHبرای اجرای میزبان رد میشوند. خود دیمن همچنان با یکPATHحداقلی اجرا میشود:- macOS:
/opt/homebrew/bin،/usr/local/bin،/usr/bin،/bin - Linux:
/usr/local/bin،/usr/bin،/bin - برای جلوگیری از اینکه پیکربندی پوسته کاربر (مانند
~/.zshenvیا/etc/zshenv) مسیرهای اولویتدار را هنگام راهاندازی بازنویسی کند، ورودیهایtools.exec.pathPrependدرست پیش از اجرا، بهصورت امن درون فرمان پوسته به ابتدایPATHنهایی افزوده میشوند.
- macOS:
host=sandbox: مقدارsh -lc(پوسته ورود) را درون کانتینر اجرا میکند، بنابراین/etc/profileممکن استPATHرا بازنشانی کند. OpenClaw پس از بارگذاری پروفایل،env.PATHرا از طریق یک متغیر محیطی داخلی به ابتدا میافزاید (بدون درونیابی پوسته)؛tools.exec.pathPrependدر اینجا نیز اعمال میشود.host=node: فقط بازنویسیهای محیطی مسدودنشدهای که ارسال میکنید به Node فرستاده میشوند. بازنویسیهایenv.PATHبرای اجرای میزبان رد و توسط میزبانهای Node نادیده گرفته میشوند. اگر در یک Node به ورودیهای PATH بیشتری نیاز دارید، محیط سرویس میزبان Node را (در systemd/launchd) پیکربندی کنید یا ابزارها را در مکانهای استاندارد نصب کنید.
اتصال Node به تفکیک عامل (از شناسه کلیددار عامل در پیکربندی استفاده کنید):
openclaw config get agents.entriesopenclaw config set 'agents.entries.main.tools.exec.node' "node-id-or-name"رابط کنترل: صفحه دستگاهها شامل پنل کوچکی با عنوان «اتصال Node اجرا» برای همین تنظیمات است.
بازنویسیهای نشست (/exec)
از /exec برای تنظیم پیشفرضهای مختص هر نشست برای host، security، ask و node استفاده کنید. برای نمایش مقادیر کنونی، /exec را بدون آرگومان ارسال کنید.
مثال:
/exec host=auto security=allowlist ask=on-miss node=mac-1/exec فقط برای فرستندگان مجاز از طریق فهرستهای مجاز کانال/جفتسازی و گروههای دسترسی پذیرفته میشود. اعمال گروه دسترسی همیشه فعال است. این فرمان فقط وضعیت نشست را بهروزرسانی میکند و چیزی در پیکربندی نمینویسد. فرستندگان مجاز کانالهای خارجی میتوانند این پیشفرضهای نشست را تنظیم کنند. کلاینتهای داخلی Gateway/webchat برای ماندگار کردن آنها به operator.admin نیاز دارند.
برای غیرفعالسازی کامل اجرا، آن را از طریق سیاست ابزار رد کنید (tools.deny: ["exec"] یا به تفکیک عامل). تأییدهای میزبان همچنان اعمال میشوند، مگر اینکه security=full و ask=off را صریحاً تنظیم کنید.
تأییدهای اجرا (برنامه همراه / میزبان Node)
عاملهای سندباکسشده میتوانند پیش از اجرای exec در Gateway یا میزبان Node، برای هر درخواست به تأیید نیاز داشته باشند. برای سیاست، فهرست مجاز و جریان رابط کاربری، تأییدهای اجرا را ببینید.
وقتی تأیید انسانی لازم باشد، جریانهای میزبان Node و Gateway غیربومی بلافاصله با status: "approval-pending" و یک شناسه تأیید بازمیگردند. در عوض، جریانهای چت بومی و رابط وب Gateway میتوانند در همانجا منتظر بمانند و پس از تأیید، نتیجه نهایی فرمان را بازگردانند. نتیجه approval-pending به این معناست که فرمان آغاز نشده است؛ بنابراین هشدارهای بازگشت به حالت پیشزمینه فقط هنگامی ظاهر میشوند که فرمان تأییدشده واقعاً بهصورت درونخطی اجرا شود. اجراهای ناهمگام تأییدشده، رویدادهای سیستمی پیشرفت و تکمیل فرمان را منتشر میکنند (Exec running / Exec finished)؛ تأییدهای ردشده یا مهلتمنقضی نهایی هستند و نشست عامل را با رویداد سیستمی رد بیدار نمیکنند.
در کانالهایی که کارتها/دکمههای بومی تأیید دارند، عامل باید ابتدا به همان رابط بومی تکیه کند و فقط زمانی فرمان دستی /approve را درج کند که نتیجه ابزار صریحاً اعلام کند تأییدهای چت در دسترس نیستند یا تأیید دستی تنها مسیر است.
فهرست مجاز + باینریهای امن
اعمال دستی فهرست مجاز با الگوهای glob مسیر باینری حلشده و الگوهای glob نام ساده فرمان تطبیق مییابد. نامهای ساده فقط با فرمانهایی منطبق میشوند که از طریق PATH فراخوانی شدهاند؛ بنابراین rg میتواند هنگام rg بودن فرمان با /opt/homebrew/bin/rg منطبق شود، اما با ./rg یا /tmp/rg منطبق نمیشود.
وقتی security=allowlist است، فرمانهای پوسته فقط در صورتی بهطور خودکار مجاز میشوند که هر بخش پایپلاین در فهرست مجاز باشد یا یک باینری امن باشد. زنجیرهسازی (;، &&، ||) و تغییرمسیرها در حالت فهرست مجاز رد میشوند، مگر اینکه هر بخش سطحبالا شرایط فهرست مجاز را برآورده کند (از جمله باینریهای امن). تغییرمسیرها همچنان پشتیبانی نمیشوند. اعتماد ماندگار allow-always این قاعده را دور نمیزند: یک فرمان زنجیرهای همچنان مستلزم تطبیق همه بخشهای سطحبالا است.
autoAllowSkills یک مسیر تسهیلگر جداگانه در تأییدهای اجرا است و با ورودیهای دستی فهرست مجاز مسیر یکسان نیست. برای اعتماد صریح و سختگیرانه، autoAllowSkills را غیرفعال نگه دارید.
از این دو کنترل برای کارهای متفاوت استفاده کنید:
tools.exec.safeBins: فیلترهای کوچک جریان که فقط از stdin استفاده میکنند.tools.exec.safeBinTrustedDirs: دایرکتوریهای قابلاعتماد اضافی و صریح برای مسیر فایلهای اجرایی باینری امن.tools.exec.safeBinProfiles: سیاست صریح argv برای باینریهای امن سفارشی.- فهرست مجاز: اعتماد صریح به مسیر فایلهای اجرایی.
safeBins را یک فهرست مجاز عمومی در نظر نگیرید و باینریهای مفسر/زمان اجرا (برای مثال python3، node، ruby، bash) را به آن اضافه نکنید. اگر به آنها نیاز دارید، از ورودیهای صریح فهرست مجاز استفاده کنید و اعلانهای تأیید را فعال نگه دارید.
openclaw security audit وقتی ورودیهای مفسر/زمان اجرای safeBins فاقد پروفایل صریح باشند هشدار میدهد و openclaw doctor --fix میتواند ورودیهای سفارشی گمشده safeBinProfiles را چارچوببندی کند. openclaw security audit و openclaw doctor همچنین وقتی باینریهای دارای رفتار گسترده مانند jq را صریحاً دوباره به safeBins اضافه کنید هشدار میدهند (jq میتواند دادههای محیطی را بخواند و کد jq را از ماژولها یا فایلهای راهاندازی بارگذاری کند؛ بنابراین بهجای آن ورودیهای صریح فهرست مجاز یا اجراهای مشروط به تأیید را ترجیح دهید). jq حتی در صورت درج صریح، بهعنوان باینری امن رد میشود. اگر مفسرها را صریحاً در فهرست مجاز قرار میدهید، tools.exec.strictInlineEval را فعال کنید تا شکلهای ارزیابی درونخطی کد همچنان به بازبین یا تأیید صریح نیاز داشته باشند.
برای جزئیات کامل سیاست و مثالها، تأییدهای اجرا و باینریهای امن در برابر فهرست مجاز را ببینید.
مثالها
پیشزمینه:
{ "tool": "exec", "command": "ls -la" }پسزمینه + نظرسنجی:
{"tool":"exec","command":"npm run build","yieldMs":1000}{"tool":"process","action":"poll","sessionId":"<id>"}نظرسنجی برای دریافت وضعیت بنا به درخواست است، نه حلقههای انتظار. اگر بیدارسازی خودکار هنگام تکمیل فعال باشد، فرمان میتواند هنگام تولید خروجی یا شکست، نشست را بیدار کند.
ارسال کلیدها (به سبک tmux):
{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Enter"]}{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["C-c"]}{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Up","Up","Enter"]}ثبت (فقط ارسال CR):
{ "tool": "process", "action": "submit", "sessionId": "<id>" }جایگذاری (بهطور پیشفرض محصور):
{ "tool": "process", "action": "paste", "sessionId": "<id>", "text": "line1\nline2\n" }apply_patch
apply_patch زیرابزاری از exec برای ویرایشهای ساختیافته چندفایلی است. بهطور پیشفرض فعال است و برای هر ارائهدهنده مدل در دسترس قرار دارد؛ allowModels میتواند آن را محدود کند. فقط زمانی از پیکربندی استفاده کنید که میخواهید آن را غیرفعال یا به مدلهای مشخصی محدود کنید:
{ tools: { exec: { applyPatch: { workspaceOnly: true, allowModels: ["gpt-5.6-sol"] }, }, },}نکتهها:
- سیاست ابزار همچنان اعمال میشود؛
allow: ["write"]بهطور ضمنیapply_patchرا مجاز میکند. deny: ["write"]،apply_patchرا رد نمیکند؛apply_patchرا صریحاً رد کنید یا وقتی نوشتن وصله نیز باید مسدود شود ازdeny: ["group:fs"]استفاده کنید.- پیکربندی زیر
tools.exec.applyPatchقرار دارد. - مقدار پیشفرض
tools.exec.applyPatch.enabledبرابر باtrueاست؛ برای غیرفعالسازی ابزار، آن را رویfalseتنظیم کنید. - مقدار پیشفرض
tools.exec.applyPatch.workspaceOnlyبرابر باtrueاست (محدود به فضای کاری). فقط زمانی آن را رویfalseتنظیم کنید که عمداً میخواهیدapply_patchخارج از دایرکتوری فضای کاری بنویسد/حذف کند. tools.exec.applyPatch.allowModelsیک فهرست مجاز اختیاری از شناسههای مدل است (خام، مانندgpt-5.4، یا کامل، مانندopenai/gpt-5.4). وقتی تنظیم شده باشد، فقط مدلهای منطبق ابزار را دریافت میکنند؛ وقتی تنظیم نشده باشد، همه مدلها آن را دریافت میکنند.
مرتبط
- تأییدهای اجرا — دروازههای تأیید برای فرمانهای پوسته
- سندباکسسازی — اجرای فرمانها در محیطهای سندباکسشده
- فرایند پسزمینه — ابزارهای اجرا و فرایند برای کارهای طولانیمدت
- امنیت — سیاست ابزار و دسترسی ارتقایافته