Gateway
پیکربندی — عاملها
کلیدهای پیکربندی مختص عامل در زیر agents.*، multiAgent.*، session.*،
messages.* و talk.*. برای کانالها، ابزارها، زمان اجرای Gateway و دیگر
کلیدهای سطحبالا، به مرجع پیکربندی مراجعه کنید.
پیشفرضهای عامل
agents.defaults.workspace
پیشفرض: در صورت تنظیمبودن OPENCLAW_WORKSPACE_DIR، در غیر این صورت ~/.openclaw/workspace (یا هنگامی که OPENCLAW_PROFILE روی نمایهای غیراز پیشفرض تنظیم شده باشد، ~/.openclaw/workspace-<profile>).
{ agents: { defaults: { workspace: "~/.openclaw/workspace" } },}مقدار صریح agents.defaults.workspace بر
OPENCLAW_WORKSPACE_DIR اولویت دارد. هنگامی که نمیخواهید مسیر را در پیکربندی بنویسید، از متغیر محیطی استفاده کنید تا عاملهای پیشفرض
را به یک فضای کاری سوارشده هدایت کنید.
agents.defaults.repoRoot
ریشه اختیاری مخزن که در خط Runtime اعلان سیستم نمایش داده میشود. اگر تنظیم نشده باشد، OpenClaw با پیمایش رو به بالا از فضای کاری، آن را بهطور خودکار شناسایی میکند.
{ agents: { defaults: { repoRoot: "~/Projects/openclaw" } },}agents.defaults.skills
فهرست مجاز پیشفرض و اختیاری Skills برای عاملهایی که
agents.entries.*.skills را تنظیم نمیکنند.
{ agents: { defaults: { skills: ["github", "weather"] }, list: [ { id: "writer" }, // github و weather را به ارث میبرد { id: "docs", skills: ["docs-search"] }, // جایگزین پیشفرضها میشود { id: "locked-down", skills: [] }, // بدون Skills ], },}- برای نامحدودبودن Skills بهصورت پیشفرض،
agents.defaults.skillsرا حذف کنید. - برای بهارثبردن پیشفرضها،
agents.entries.*.skillsرا حذف کنید. - برای نداشتن هیچ Skills،
agents.entries.*.skills: []را تنظیم کنید. - یک فهرست غیرخالی
agents.entries.*.skills، مجموعه نهایی آن عامل است؛ این فهرست با پیشفرضها ادغام نمیشود.
agents.defaults.skipBootstrap
ایجاد خودکار فایلهای راهاندازی فضای کاری (AGENTS.md، SOUL.md، TOOLS.md، IDENTITY.md، USER.md، BOOTSTRAP.md) را غیرفعال میکند.
{ agents: { defaults: { skipBootstrap: true } },}agents.defaults.skipOptionalBootstrapFiles
از ایجاد فایلهای اختیاری انتخابشده فضای کاری صرفنظر میکند، در حالی که فایلهای راهاندازی الزامی (AGENTS.md، TOOLS.md، BOOTSTRAP.md) همچنان نوشته میشوند. مقادیر معتبر: SOUL.md، USER.md و IDENTITY.md هستند (HEARTBEAT.md پذیرفته میشود، اما چون زمینه Heartbeat به فضای موقت پایشگر Cron منتقل شده، هیچ اثری ندارد).
{ agents: { defaults: { skipOptionalBootstrapFiles: ["SOUL.md", "USER.md"], }, },}agents.defaults.contextInjection
زمان تزریق فایلهای راهاندازی فضای کاری به اعلان سیستم را کنترل میکند. پیشفرض: "always".
"continuation-skip": نوبتهای ادامه امن (پس از پاسخ تکمیلشده دستیار) از تزریق مجدد راهاندازی فضای کاری صرفنظر میکنند و اندازه اعلان را کاهش میدهند. اجراهای Heartbeat و تلاشهای مجدد پس از Compaction همچنان زمینه را بازسازی میکنند."never": تزریق راهاندازی فضای کاری و فایلهای زمینه را در همه نوبتها غیرفعال میکند. این گزینه را فقط برای عاملهایی استفاده کنید که چرخه عمر اعلان خود را کاملاً مدیریت میکنند (موتورهای زمینه سفارشی، زمانهای اجرای بومی که زمینه خود را میسازند، یا گردشکارهای تخصصی بدون راهاندازی). نوبتهای Heartbeat و بازیابی از Compaction نیز از تزریق صرفنظر میکنند.
{ agents: { defaults: { contextInjection: "continuation-skip" } },}بازنویسی مختص هر عامل: agents.entries.*.contextInjection. مقادیر حذفشده
agents.defaults.contextInjection را به ارث میبرند.
agents.defaults.bootstrapMaxChars
حداکثر تعداد نویسه برای هر فایل راهاندازی فضای کاری پیش از کوتاهسازی. پیشفرض: 20000.
{ agents: { defaults: { bootstrapMaxChars: 20000 } },}بازنویسی مختص هر عامل: agents.entries.*.bootstrapMaxChars. مقادیر حذفشده
agents.defaults.bootstrapMaxChars را به ارث میبرند.
agents.defaults.bootstrapTotalMaxChars
حداکثر مجموع نویسههای تزریقشده از همه فایلهای راهاندازی فضای کاری. پیشفرض: 60000.
{ agents: { defaults: { bootstrapTotalMaxChars: 60000 } },}بازنویسی مختص هر عامل: agents.entries.*.bootstrapTotalMaxChars. مقادیر حذفشده
agents.defaults.bootstrapTotalMaxChars را به ارث میبرند.
بازنویسیهای نمایه راهاندازی مختص هر عامل
هنگامی که یک عامل به رفتار تزریق اعلان متفاوتی نسبت به پیشفرضهای مشترک نیاز دارد، از بازنویسیهای نمایه راهاندازی مختص هر عامل استفاده کنید. فیلدهای حذفشده از
agents.defaults به ارث میرسند.
{ agents: { defaults: { contextInjection: "continuation-skip", bootstrapMaxChars: 20000, bootstrapTotalMaxChars: 60000, }, list: [ { id: "strict-worker", contextInjection: "always", bootstrapMaxChars: 50000, bootstrapTotalMaxChars: 300000, }, ], },}agents.defaults.bootstrapPromptTruncationWarning
اعلان قابلمشاهده برای عامل را در اعلان سیستم، هنگام کوتاهشدن زمینه راهاندازی کنترل میکند.
پیشفرض: "always".
"off": هرگز متن اعلان کوتاهسازی را به اعلان سیستم تزریق نکن."once": برای هر امضای کوتاهسازی منحصربهفرد، یکبار یک اعلان مختصر تزریق کن."always": هر زمان کوتاهسازی وجود دارد، در هر اجرا یک اعلان مختصر تزریق کن (توصیهشده).
تعدادهای خام/تزریقشده تفصیلی و فیلدهای تنظیم پیکربندی در بخشهای تشخیصی مانند گزارشهای زمینه/وضعیت و گزارشهای ثبتشده باقی میمانند؛ زمینه معمول کاربر/زمان اجرای WebChat فقط اعلان مختصر بازیابی را دریافت میکند.
{ agents: { defaults: { bootstrapPromptTruncationWarning: "always" } }, // off | once | always}نقشه مالکیت بودجه زمینه
OpenClaw چندین بودجه پرحجم اعلان/زمینه دارد که عمداً بهجای عبور همگی از یک گزینه عمومی، بر اساس زیرسامانه تفکیک شدهاند.
| بودجه | پوشش |
|---|---|
agents.defaults.bootstrapMaxChars / bootstrapTotalMaxChars |
تزریق عادی راهاندازی فضای کاری |
agents.defaults.startupContext.* |
پیشدرآمد یکباره اجرای مدل در بازنشانی/راهاندازی، شامل فایلهای روزانه اخیر memory/*.md. فرمانهای ساده گفتوگو /new و /reset بدون فراخوانی مدل تأیید میشوند |
skills.limits.* |
فهرست فشرده Skills که به اعلان سیستم تزریق میشود |
agents.defaults.contextLimits.* |
گزیدههای محدودشده زمان اجرا و بلوکهای تزریقشده تحت مالکیت زمان اجرا |
memory.qmd.limits.* |
اندازهگذاری قطعه جستوجوی حافظه نمایهشده و تزریق |
بازنویسیهای متناظر مختص هر عامل:
agents.entries.*.skillsLimits.maxSkillsPromptCharsagents.entries.*.contextInjectionagents.entries.*.bootstrapMaxCharsagents.entries.*.bootstrapTotalMaxCharsagents.entries.*.contextLimits.*
agents.defaults.startupContext
پیشدرآمد راهاندازی نخستین نوبت را که در اجراهای مدلِ بازنشانی/راهاندازی تزریق میشود، کنترل میکند.
فرمانهای ساده گفتوگو /new و /reset بازنشانی را بدون فراخوانی
مدل تأیید میکنند، بنابراین این پیشدرآمد را بارگذاری نمیکنند.
{ agents: { defaults: { startupContext: { enabled: true, applyOn: ["new", "reset"], dailyMemoryDays: 2, maxFileBytes: 16384, maxFileChars: 1200, maxTotalChars: 2800, }, }, },}agents.defaults.contextLimits
پیشفرضهای مشترک برای سطوح محدودشده زمینه زمان اجرا.
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000, postCompactionMaxChars: 1800, }, }, },}memoryGetMaxChars: سقف پیشفرض گزیدهmemory_getپیش از افزودهشدن فراداده کوتاهسازی و اعلان ادامه.- هنگامی که
memory_getشاملlinesنباشد، OpenClaw از یک پنجره داخلی 120خطی استفاده میکند و سپسmemoryGetMaxCharsرا اعمال میکند. - نتایج زنده ابزار از سقف خودکار زمینه مدل استفاده میکنند:
16000نویسه زیر 100K توکن،32000نویسه در 100K+ توکن و64000نویسه در 200K+ توکن. postCompactionMaxChars: سقف گزیده AGENTS.md که هنگام تزریق تازهسازی پس از Compaction استفاده میشود.
agents.entries.*.contextLimits
بازنویسی مختص هر عامل برای گزینههای مشترک contextLimits. فیلدهای حذفشده از
agents.defaults.contextLimits به ارث میرسند.
{ agents: { defaults: { contextLimits: { memoryGetMaxChars: 12000 }, }, list: [ { id: "tiny-local", contextLimits: { memoryGetMaxChars: 6000, }, }, ], },}skills.limits.maxSkillsPromptChars
سقف سراسری فهرست فشرده Skills که به اعلان سیستم تزریق میشود. این مورد
بر خواندن فایلهای SKILL.md هنگام درخواست تأثیری ندارد.
{ skills: { limits: { maxSkillsPromptChars: 18000 } },}agents.entries.*.skillsLimits.maxSkillsPromptChars
بازنویسی مختص هر عامل برای بودجه اعلان Skills.
{ agents: { list: [{ id: "tiny-local", skillsLimits: { maxSkillsPromptChars: 6000 } }], },}agents.defaults.imageMaxDimensionPx
حداکثر اندازه پیکسلی طولانیترین ضلع تصویر در بلوکهای تصویر رونوشت/ابزار پیش از فراخوانی ارائهدهنده.
پیشفرض: 1200.
مقادیر کمتر معمولاً مصرف توکن بینایی و اندازه محموله درخواست را برای اجراهای دارای اسکرینشات فراوان کاهش میدهند. مقادیر بیشتر جزئیات بصری بیشتری را حفظ میکنند.
{ agents: { defaults: { imageMaxDimensionPx: 1200 } },}agents.defaults.imageQuality
ترجیح فشردهسازی/جزئیات ابزار تصویر برای تصاویر بارگذاریشده از مسیر فایل، URL و ارجاعهای رسانهای.
پیشفرض: auto.
OpenClaw نردبان تغییر اندازه را با مدل تصویر انتخابشده تطبیق میدهد. برای نمونه، Claude Opus 4.8، OpenAI GPT-5.6 Sol، Qwen VL و مدلهای میزبانیشده بینایی Llama 4 میتوانند نسبت به مسیرهای قدیمیتر/پیشفرض بینایی با جزئیات بالا از تصاویر بزرگتری استفاده کنند، در حالی که نوبتهای چندتصویری در حالت auto با شدت بیشتری فشرده میشوند تا هزینه توکن و تأخیر کنترل شود.
مقادیر:
auto: با محدودیتهای مدل و تعداد تصاویر تطبیق بده.efficient: برای مصرف کمتر توکن و بایت، تصاویر کوچکتر را ترجیح بده.balanced: از نردبان استاندارد و متعادل استفاده کن.high: جزئیات بیشتری را برای اسکرینشاتها، نمودارها و تصاویر اسناد حفظ کن.
{ agents: { defaults: { imageQuality: "auto" } },}agents.defaults.userTimezone
منطقه زمانی برای زمینه اعلان سیستم (نه مُهرهای زمانی پیام). در صورت نبود، از منطقه زمانی میزبان استفاده میشود.
{ agents: { defaults: { userTimezone: "America/Chicago" } },}agents.defaults.timeFormat
قالب زمان در اعلان سیستم. پیشفرض: auto (ترجیح سیستمعامل).
{ agents: { defaults: { timeFormat: "auto" } }, // auto | 12 | 24}agents.defaults.model
{ agents: { defaults: { models: { "anthropic/claude-opus-4-6": { alias: "opus" }, "minimax/MiniMax-M2.7": { alias: "minimax" }, }, model: { primary: "anthropic/claude-opus-4-6", fallbacks: ["minimax/MiniMax-M2.7"], }, utilityModel: "openai/gpt-5.4-mini", imageModel: { primary: "openrouter/qwen/qwen-2.5-vl-72b-instruct:free", fallbacks: ["openrouter/google/gemini-2.0-flash-vision:free"], }, mediaModels: { image: { primary: "openai/gpt-image-2", fallbacks: ["google/gemini-3.1-flash-image"], }, video: { primary: "qwen/wan2.6-t2v", fallbacks: ["qwen/wan2.6-i2v"], }, }, pdfModel: { primary: "anthropic/claude-opus-4-6", fallbacks: ["openai/gpt-5.4-mini"], }, params: { cacheRetention: "long" }, // پارامترهای پیشفرض سراسری ارائهدهنده pdfMaxMb: 10, pdfMaxPages: 20, thinkingDefault: "low", verboseDefault: "off", toolProgressDetail: "explain", reasoningDefault: "off", elevatedDefault: "on", timeoutSeconds: 600, mediaMaxMb: 5, contextTokens: 200000, maxConcurrent: 4, }, },}model: یک رشته ("provider/model") یا یک شیء ({ primary, fallbacks }) را میپذیرد.- حالت رشتهای فقط مدل اصلی را تنظیم میکند.
- حالت شیء، مدل اصلی را بههمراه مدلهای جایگزین مرتبشده تنظیم میکند.
utilityModel: ارجاع یا نام مستعار اختیاریprovider/modelبرای وظایف داخلی کوتاه. درحالحاضر برای عنوانهای تولیدشده نشست در رابط کاربری کنترل، عنوانهای موضوع پیام خصوصی Telegram، عنوانهای خودکار رشتههای Discord و روایت پیشنویس پیشرفت استفاده میشود. وقتی تنظیم نشده باشد، OpenClaw در صورت وجود، مقدار پیشفرض اعلامشده مدل کوچکِ ارائهدهنده اصلی را استخراج میکند (OpenAI ←gpt-5.6-luna، Anthropic ←claude-haiku-4-5)؛ در غیر این صورت، وظایف عنوان از مدل اصلی عامل استفاده میکنند و روایت غیرفعال میماند. اگر یک مدل کاربردی مجزا نتواند عنوان تولیدشدهای را آماده یا تکمیل کند، OpenClaw آن عنوان را یکبار با مدل اصلی دوباره امتحان میکند. برای عنوانهای داشبورد، استخراج خودکار مدل کاربردی و جایگزین معمول از ارائهدهنده مؤثر نشست و نمایه احراز هویت آن استفاده میکنند؛ مدل کاربردی صریح، ارائهدهنده و احراز هویت پیکربندیشده خود را حفظ میکند. برای نادیدهگرفتن مسیر جایگزین مدل کاربردی،utilityModel: ""را تنظیم کنید؛ تولید عنوان داشبورد همچنان مستقیماً با مدل معمول نشست ادامه مییابد.agents.entries.*.utilityModelمقدار پیشفرض را بازنویسی میکند و بازنویسی مدل مختص عملیات بر هر دو اولویت دارد. وظایف کاربردی فراخوانیهای مدل جداگانه انجام میدهند و محتوای مختص وظیفه را به ارائهدهنده مدل انتخابشده میفرستند. تولید عنوان داشبورد حداکثر 1,000 نویسه نخستِ اولین پیام غیردستوری را میفرستد؛ روایت، درخواست ورودی را بههمراه خلاصههای فشرده و پالایششده ابزارها میفرستد. ارائهدهندهای را انتخاب کنید که با الزامات هزینه و پردازش داده شما مطابقت داشته باشد.imageModel: یک رشته ("provider/model") یا یک شیء ({ primary, fallbacks }) را میپذیرد.- وقتی مدل فعال نتواند تصویر بپذیرد، مسیر ابزار
imageاز آن بهعنوان پیکربندی مدل بینایی خود استفاده میکند. در عوض، مدلهای دارای قابلیت بینایی بومی، بایتهای تصویر بارگذاریشده را مستقیماً دریافت میکنند. - همچنین وقتی مدل انتخابشده یا پیشفرض نتواند ورودی تصویر بپذیرد، برای مسیریابی جایگزین استفاده میشود.
- ارجاعهای صریح
provider/modelرا ترجیح دهید. شناسههای بدون پیشوند برای سازگاری پذیرفته میشوند؛ اگر شناسهای بدون پیشوند بهطور یکتا با یک ورودی پیکربندیشده دارای قابلیت تصویر درmodels.providers.*.modelsمطابقت داشته باشد، OpenClaw آن را با ارائهدهنده مربوطه کامل میکند. تطابقهای پیکربندیشده مبهم به پیشوند صریح ارائهدهنده نیاز دارند.
- وقتی مدل فعال نتواند تصویر بپذیرد، مسیر ابزار
mediaModels.image: یک رشته ("provider/model") یا یک شیء ({ primary, fallbacks }) را میپذیرد.- قابلیت مشترک تولید تصویر و هر سطح ابزار/Plugin آینده که تصویر تولید کند، از آن استفاده میکنند.
- مقادیر معمول:
google/gemini-3.1-flash-imageبرای تولید تصویر بومی Gemini،fal/fal-ai/flux/devبرای fal،openai/gpt-image-2برای OpenAI Images یاopenai/gpt-image-1.5برای خروجی PNG/WebP با پسزمینه شفاف OpenAI. - اگر ارائهدهنده/مدلی را مستقیماً انتخاب میکنید، احراز هویت منطبق ارائهدهنده را نیز پیکربندی کنید (برای نمونه،
GEMINI_API_KEYیاGOOGLE_API_KEYبرایgoogle/*،OPENAI_API_KEYیا OpenAI Codex OAuth برایopenai/gpt-image-2/openai/gpt-image-1.5، وFAL_KEYبرایfal/*). - اگر حذف شود،
image_generateهمچنان میتواند یک ارائهدهنده پیشفرضِ دارای پشتوانه احراز هویت را استنباط کند. ابتدا ارائهدهنده پیشفرض فعلی و سپس سایر ارائهدهندگان ثبتشده تولید تصویر را بهترتیب شناسه ارائهدهنده امتحان میکند.
mediaModels.music: یک رشته ("provider/model") یا یک شیء ({ primary, fallbacks }) را میپذیرد.- قابلیت مشترک تولید موسیقی و ابزار داخلی
music_generateاز آن استفاده میکنند. - مقادیر معمول:
google/lyria-3-clip-preview،google/lyria-3-pro-previewیاminimax/music-2.6. - اگر حذف شود،
music_generateهمچنان میتواند یک ارائهدهنده پیشفرضِ دارای پشتوانه احراز هویت را استنباط کند. ابتدا ارائهدهنده پیشفرض فعلی و سپس سایر ارائهدهندگان ثبتشده تولید موسیقی را بهترتیب شناسه ارائهدهنده امتحان میکند. - اگر ارائهدهنده/مدلی را مستقیماً انتخاب میکنید، احراز هویت/کلید API منطبق ارائهدهنده را نیز پیکربندی کنید.
- قابلیت مشترک تولید موسیقی و ابزار داخلی
mediaModels.video: یک رشته ("provider/model") یا یک شیء ({ primary, fallbacks }) را میپذیرد.- قابلیت مشترک تولید ویدئو و ابزار داخلی
video_generateاز آن استفاده میکنند. - مقادیر معمول:
qwen/wan2.6-t2v،qwen/wan2.6-i2v،qwen/wan2.6-r2v،qwen/wan2.6-r2v-flashیاqwen/wan2.7-r2v. - اگر حذف شود،
video_generateهمچنان میتواند یک ارائهدهنده پیشفرضِ دارای پشتوانه احراز هویت را استنباط کند. ابتدا ارائهدهنده پیشفرض فعلی و سپس سایر ارائهدهندگان ثبتشده تولید ویدئو را بهترتیب شناسه ارائهدهنده امتحان میکند. - اگر ارائهدهنده/مدلی را مستقیماً انتخاب میکنید، احراز هویت/کلید API منطبق ارائهدهنده را نیز پیکربندی کنید.
- Plugin رسمی تولید ویدئوی Qwen حداکثر از 1 ویدئوی خروجی، 1 تصویر ورودی، 4 ویدئوی ورودی، مدتزمان 10 ثانیه و گزینههای سطح ارائهدهنده
size،aspectRatio،resolution،audioوwatermarkپشتیبانی میکند.
- قابلیت مشترک تولید ویدئو و ابزار داخلی
pdfModel: یک رشته ("provider/model") یا یک شیء ({ primary, fallbacks }) را میپذیرد.- ابزار
pdfاز آن برای مسیریابی مدل استفاده میکند. - اگر حذف شود، ابزار PDF ابتدا به
imageModelو سپس به مدل حلشده نشست/پیشفرض بازمیگردد.
- ابزار
pdfMaxMb: محدودیت پیشفرض اندازه PDF برای ابزارpdf، هنگامی کهmaxBytesMbدر زمان فراخوانی ارسال نشده باشد.pdfMaxPages: حداکثر تعداد پیشفرض صفحاتی که حالت جایگزین استخراج در ابزارpdfبررسی میکند.verboseDefault: سطح پیشفرض پرگویی عاملها. مقادیر:"off"،"on"،"full". پیشفرض:"off".toolProgressDetail: حالت جزئیات برای خلاصههای ابزار/verboseو خطوط ابزار در پیشنویس پیشرفت. مقادیر:"explain"(پیشفرض، برچسبهای انسانی فشرده) یا"raw"(افزودن دستور/جزئیات خام در صورت وجود).agents.entries.*.toolProgressDetailمختص هر عامل، این مقدار پیشفرض را بازنویسی میکند.reasoningDefault: نمایانی پیشفرض استدلال برای عاملها. مقادیر:"off"،"on"،"stream".agents.entries.*.reasoningDefaultمختص هر عامل، این مقدار پیشفرض را بازنویسی میکند. مقادیر پیشفرض پیکربندیشده استدلال فقط برای مالکان، فرستندگان مجاز یا زمینههای Gateway با مدیر اپراتور اعمال میشوند، آن هم وقتی هیچ بازنویسی استدلال مختص پیام یا نشست تنظیم نشده باشد.elevatedDefault: سطح پیشفرض خروجی ارتقایافته برای عاملها. مقادیر:"off"،"on"،"ask"،"full". پیشفرض:"on".model.primary: قالبprovider/model(برای مثال،openai/gpt-5.6-solبرای دسترسی Codex OAuth). اگر ارائهدهنده را حذف کنید، OpenClaw ابتدا یک نام مستعار، سپس یک تطابق یکتای ارائهدهنده پیکربندیشده برای دقیقاً همان شناسه مدل را امتحان میکند و تنها پس از آن به ارائهدهنده پیشفرض پیکربندیشده بازمیگردد (رفتار سازگاری منسوخشده است، بنابراینprovider/modelصریح را ترجیح دهید). اگر آن ارائهدهنده دیگر مدل پیشفرض پیکربندیشده را ارائه نکند، OpenClaw بهجای نمایش یک پیشفرض قدیمیِ ارائهدهنده حذفشده، به اولین ارائهدهنده/مدل پیکربندیشده بازمیگردد.contextTokens: سقف اختیاری سراسری عامل. میتواند بودجه مؤثر یک مدل بزرگتر را کاهش دهد، اما نمیتواند مدل را بالاتر ازcontextTokensپیکربندیشده یا کشفشده آن ببرد. برای فعالکردن پنجره بومی بزرگتر یک مدل مستقیم OpenAI،models.providers.openai.models[].contextWindowوcontextTokensرا برای آن مدل تنظیم کنید؛ مقادیر پیشفرض پنجره زمینه OpenAI را ببینید.models: نامهای مستعار پیکربندیشده و تنظیمات مختص هر مدل. هر ورودی میتواند شاملalias(میانبر) وparams(مختص ارائهدهنده، برای مثالtemperature،maxTokens،cacheRetention،context1m،responsesServerCompaction،responsesCompactThreshold، مسیریابیproviderدر OpenRouter،chat_template_kwargs،extra_body/extraBody) باشد. افزودن ورودیها، بازنویسی مدلها را محدود نمیکند.- برای نمایش همه مدلهای کشفشده ارائهدهندگان انتخابی، بدون فهرستکردن دستی تکتک شناسههای مدل، از ورودیهای
provider/*مانند"openai/*": {}یا"vllm/*": {}استفاده کنید. - وقتی همه مدلهای پویای کشفشده برای یک ارائهدهنده باید از زماناجرای یکسانی استفاده کنند،
agentRuntimeرا به ورودیprovider/*اضافه کنید. سیاست دقیق زماناجرایprovider/modelهمچنان بر نویسه عام اولویت دارد. - ویرایشهای امن فراداده: برای افزودن ورودیها از
openclaw config set agents.defaults.models '<json>' --strict-json --mergeاستفاده کنید.config setاز جایگزینیهایی که ورودیهای موجود را حذف میکنند خودداری میکند، مگر اینکه--replaceرا ارسال کنید.
- برای نمایش همه مدلهای کشفشده ارائهدهندگان انتخابی، بدون فهرستکردن دستی تکتک شناسههای مدل، از ورودیهای
modelPolicy.allow: فهرست مجاز صریح بازنویسیها. نامهای مستعار، ارجاعهای دقیقprovider/modelو نویسههای عام انتهای پیشوند مانندopenai/*یاclawrouter/anthropic/*را میپذیرد. برای مجازکردن هر مدلی، آن را حذف کنید یا از[]استفاده کنید.agents.entries.*.modelPolicy.allowسیاست پیشفرض آن عامل را جایگزین میکند؛ یک فهرست خالی صریح، آن عامل را به حالت مجازبودن همه مدلها وارد میکند.- جریانهای پیکربندی/راهاندازی اولیه مختص ارائهدهنده، مدلهای انتخابشده ارائهدهنده را در این نگاشت ادغام میکنند و ارائهدهندگان نامرتبطی را که از قبل پیکربندی شدهاند حفظ میکنند.
- برای مدلهای مستقیم OpenAI Responses، Compaction سمت سرور بهطور خودکار فعال میشود. برای توقف تزریق
context_managementازparams.responsesServerCompaction: falseیا برای بازنویسی آستانه ازparams.responsesCompactThresholdاستفاده کنید. Compaction سمت سرور OpenAI را ببینید.
params: پارامترهای پیشفرض سراسری ارائهدهنده که بر همه مدلها اعمال میشوند. درagents.defaults.paramsتنظیم کنید (برای مثال{ cacheRetention: "long" }).- تقدم ادغام
params(پیکربندی):agents.defaults.models["provider/model"].params(مختص مدل) مقدارagents.defaults.params(پایه سراسری) را بازنویسی میکند، سپسagents.entries.*.params(شناسه عامل منطبق) بر اساس کلید بازنویسی میکند. برای جزئیات، ذخیرهسازی موقت پرامپت را ببینید. models.providers.openrouter.params.provider: سیاست پیشفرض مسیریابی ارائهدهنده در سراسر OpenRouter. OpenClaw آن را به شیءproviderدرخواست OpenRouter ارسال میکند؛agents.defaults.models["openrouter/<model>"].params.providerمختص مدل و پارامترهای عامل بر اساس کلید بازنویسی میکنند. مسیریابی ارائهدهنده OpenRouter را ببینید.params.extra_body/params.extraBody: JSON عبوری پیشرفته که در بدنه درخواستهایapi: "openai-completions"برای پراکسیهای سازگار با OpenAI ادغام میشود. اگر با کلیدهای تولیدشده درخواست تداخل داشته باشد، بدنه اضافی اولویت دارد؛ مسیرهای تکمیل غیربومی همچنان پس از آنstoreمختص OpenAI را حذف میکنند.params.chat_template_kwargs: آرگومانهای الگوی گفتوگوی سازگار با vLLM/OpenAI که در بدنه سطحبالای درخواستهایapi: "openai-completions"ادغام میشوند. برایvllm/nemotron-3-*با تفکر غیرفعال، Plugin همراه vLLM بهطور خودکارenable_thinking: falseوforce_nonempty_content: trueرا ارسال میکند؛chat_template_kwargsصریح، مقادیر پیشفرض تولیدشده را بازنویسی میکند وextra_body.chat_template_kwargsهمچنان اولویت نهایی را دارد. مدلهای تفکر Qwen و Nemotron پیکربندیشده در vLLM، بهجای نردبان چندسطحی تلاش، گزینههای دودویی/think(off،on) را ارائه میکنند.compat.thinkingFormat: سبک محموله تفکر سازگار با OpenAI. از"together"برایreasoning.enabledبهسبک Together، از"qwen"برایenable_thinkingسطحبالا بهسبک Qwen، یا از"qwen-chat-template"برایchat_template_kwargs.enable_thinkingدر بکاندهای خانواده Qwen که از آرگومانهای کلیدی الگوی گفتوگو در سطح درخواست پشتیبانی میکنند، مانند vLLM، استفاده کنید. OpenClaw تفکر غیرفعال را بهfalseو تفکر فعال را بهtrueنگاشت میکند و مدلهای Qwen پیکربندیشده در vLLM برای این قالبها گزینههای دودویی/thinkرا ارائه میکنند.compat.supportedReasoningEfforts: فهرست میزان تلاش استدلالی سازگار با OpenAI برای هر مدل. برای نقاط پایانی سفارشی که واقعاً"xhigh"را میپذیرند، آن را درج کنید؛ سپس OpenClaw اعتبارسنجی/think xhighرا در منوهای فرمان، ردیفهای نشست Gateway، اعتبارسنجی وصله نشست، اعتبارسنجی CLI عامل و اعتبارسنجیllm-taskبرای ارائهدهنده/مدل پیکربندیشده ارائه میکند. هنگامی که بکاند برای یک سطح استاندارد به مقداری ویژه ارائهدهنده نیاز دارد، ازcompat.reasoningEffortMapاستفاده کنید.params.preserveThinking: گزینه فعالسازی مختص Z.AI برای حفظ تفکر. هنگامی که فعال باشد و تفکر روشن باشد، OpenClaw مقدارthinking.clear_thinking: falseرا ارسال وreasoning_contentقبلی را بازپخش میکند؛ تفکر و تفکر حفظشده در Z.AI را ببینید.localService: مدیر پردازش اختیاری در سطح ارائهدهنده برای سرورهای مدل محلی/خودمیزبان. هنگامی که مدل انتخابشده متعلق به آن ارائهدهنده باشد، OpenClaw نشانیhealthUrl(یاbaseUrl + "/models") را بررسی میکند، اگر نقطه پایانی از دسترس خارج باشدcommandرا باargsراهاندازی میکند، تاreadyTimeoutMsمنتظر میماند و سپس درخواست مدل را ارسال میکند.commandباید یک مسیر مطلق باشد.idleStopMs: 0پردازش را تا خروج OpenClaw زنده نگه میدارد؛ یک مقدار مثبت، پردازش راهاندازیشده توسط OpenClaw را پس از آن تعداد میلیثانیه بیکاری متوقف میکند. سرویسهای مدل محلی را ببینید.- سیاست زمان اجرا باید روی ارائهدهندگان یا مدلها قرار گیرد، نه روی
agents.defaults. برای قواعد سراسری ارائهدهنده ازmodels.providers.<provider>.agentRuntimeو برای قواعد مختص مدل ازagents.defaults.models["provider/model"].agentRuntime/agents.entries.*.models["provider/model"].agentRuntimeاستفاده کنید. پیشوند ارائهدهنده/مدل بهتنهایی هرگز یک هارنس را انتخاب نمیکند. اگر زمان اجرا تنظیم نشده باشد یاautoباشد، OpenAI فقط برای یک مسیر رسمی و دقیق HTTPS از نوع Platform Responses یا ChatGPT Responses، بدون بازنویسی درخواست توسط نویسنده، ممکن است Codex را بهطور ضمنی انتخاب کند. زمان اجرای ضمنی عامل OpenAI را ببینید. - نویسندگان پیکربندی که این فیلدها را تغییر میدهند (برای مثال
/models set،/models set-imageو فرمانهای افزودن/حذف جایگزین) فرم شیء استاندارد را ذخیره میکنند و در صورت امکان فهرستهای جایگزین موجود را حفظ میکنند. maxConcurrent: حداکثر اجرای موازی عامل در میان نشستها (هر نشست همچنان بهصورت ترتیبی اجرا میشود). پیشفرض:4.
سیاست زمان اجرا
{ models: { providers: { openai: { agentRuntime: { id: "codex" }, }, }, }, agents: { defaults: { model: "openai/gpt-5.6-sol", models: { "anthropic/claude-opus-5": { agentRuntime: { id: "claude-cli" }, }, "vllm/*": { agentRuntime: { id: "openclaw" }, }, }, }, },}id:"auto"،"openclaw"، شناسهٔ ثبتشدهٔ مهار Plugin، یا نام مستعار پشتیبانیشدهٔ بکاند CLI. Plugin همراه Codex،codexرا ثبت میکند؛ Plugin همراه Anthropic بکاند CLI با نامclaude-cliرا فراهم میکند.id: "auto"به مهارهای ثبتشدهٔ Plugin اجازه میدهد مسیرهای مؤثری را که قرارداد پشتیبانی خود را اعلام میکنند یا بهنحوی برآورده میسازند در اختیار بگیرند، و اگر هیچ مهاری منطبق نباشد از OpenClaw استفاده میکند. یک زمان اجرای صریح Plugin مانندid: "codex"به آن مهار و یک مسیر مؤثر سازگار نیاز دارد؛ اگر هرکدام در دسترس نباشد یا اجرا ناموفق باشد، بهصورت بسته شکست میخورد.id: "pi"فقط بهعنوان نام مستعار منسوخشدهٔopenclawپذیرفته میشود تا پیکربندیهای منتشرشده در v2026.5.22 و نسخههای پیشین حفظ شوند. پیکربندی جدید باید ازopenclawاستفاده کند.- ترتیب تقدم زمان اجرا ابتدا سیاست دقیق مدل (
agents.entries.*.models["provider/model"]،agents.defaults.models["provider/model"]، یاmodels.providers.<provider>.models[]) است، سپسagents.entries.*/agents.defaults.models["provider/*"]، و پس از آن سیاست سراسری ارائهدهنده درmodels.providers.<provider>.agentRuntime. - کلیدهای زمان اجرای کل عامل قدیمی هستند.
agents.defaults.agentRuntime،agents.entries.*.agentRuntime، پینهای زمان اجرای نشست، وOPENCLAW_AGENT_RUNTIMEدر انتخاب زمان اجرا نادیده گرفته میشوند. برای حذف مقادیر منسوخ،openclaw doctor --fixرا اجرا کنید. - مسیرهای رسمی HTTPS دقیق و واجد شرایط OpenAI Responses/ChatGPT که بازنویسی تألیفی درخواست ندارند، ممکن است بهطور ضمنی از مهار Codex استفاده کنند.
agentRuntime.id: "codex"در سطح ارائهدهنده/مدل، Codex را به الزامی با شکست بسته تبدیل میکند، اما یک مسیر ناسازگار را سازگار نمیکند. - برای استقرارهای Claude CLI، استفاده از
model: "anthropic/claude-opus-5"بههمراهagentRuntime.id: "claude-cli"در محدودهٔ مدل ترجیح داده میشود. ارجاعهای قدیمیclaude-cli/<model>همچنان برای سازگاری کار میکنند، اما پیکربندی جدید باید انتخاب ارائهدهنده/مدل را کانونی نگه دارد و بکاند اجرا را در سیاست زمان اجرای ارائهدهنده/مدل قرار دهد. - این فقط اجرای نوبت عامل متنی را کنترل میکند. تولید رسانه، بینایی، PDF، موسیقی، ویدئو و TTS همچنان از تنظیمات ارائهدهنده/مدل خود استفاده میکنند.
صورتهای کوتاه نام مستعار داخلی (فقط زمانی اعمال میشوند که مدل در agents.defaults.models باشد):
| نام مستعار | مدل |
|---|---|
opus |
anthropic/claude-opus-5 |
sonnet |
anthropic/claude-sonnet-5 |
gpt |
openai/gpt-5.4 |
gpt-mini |
openai/gpt-5.4-mini |
gpt-nano |
openai/gpt-5.4-nano |
gemini |
google/gemini-3.1-pro-preview |
gemini-flash |
google/gemini-3-flash-preview |
gemini-flash-lite |
google/gemini-3.1-flash-lite |
نامهای مستعار پیکربندیشدهٔ شما همیشه بر پیشفرضها تقدم دارند.
مدلهای Z.AI GLM-4.x بهطور خودکار حالت تفکر را فعال میکنند، مگر اینکه --thinking off را تنظیم کنید یا خودتان agents.defaults.models["zai/<model>"].params.thinking را تعریف کنید.
مدلهای Z.AI برای پخش جریانی فراخوانی ابزار، tool_stream را بهطور پیشفرض فعال میکنند. برای غیرفعالکردن آن، agents.defaults.models["zai/<model>"].params.tool_stream را روی false تنظیم کنید.
در OpenClaw، تفکر Anthropic Claude Opus 4.8 بهطور پیشفرض غیرفعال میماند؛ وقتی تفکر تطبیقی صریحاً فعال شود، پیشفرض تلاش متعلق به ارائهدهندهٔ Anthropic برابر high است. اگر سطح تفکر صریحی تنظیم نشده باشد، مدلهای Claude 4.6 بهطور پیشفرض از adaptive استفاده میکنند.
انتخاب بکاند CLI
سازوکارهای آداپتور CLI توسط Pluginها ثبت میشوند و زیر پیشفرضهای عامل
پیکربندی نمیشوند. همانطور که در بالا نشان داده شد، یک بکاند CLI ثبتشده را با
agentRuntime.id در محدودهٔ مدل انتخاب کنید. برای عملیات به بکاندهای CLI
و برای ثبت فرمان، نشست، تصویر و تجزیهگر به ساخت Pluginهای بکاند CLI
مراجعه کنید.
agents.defaults.promptOverlays
همپوشانیهای اعلان مستقل از ارائهدهنده که بر اساس خانوادهٔ مدل روی سطوح اعلان ساختهشده توسط OpenClaw اعمال میشوند. شناسههای مدل خانوادهٔ GPT-5 قرارداد رفتاری مشترک را در مسیرهای OpenClaw/ارائهدهنده دریافت میکنند؛ personality فقط لایهٔ سبک تعامل دوستانه را کنترل میکند. مسیرهای بومی سرور برنامهٔ Codex بهجای این همپوشانی GPT-5 متعلق به OpenClaw، دستورالعملهای پایه/مدل متعلق به Codex را حفظ میکنند، و OpenClaw شخصیت داخلی Codex را برای رشتههای بومی غیرفعال میکند.
{ agents: { defaults: { promptOverlays: { gpt5: { personality: "friendly", // friendly | on | off }, }, }, },}"friendly"(پیشفرض) و"on"لایهٔ سبک تعامل دوستانه را فعال میکنند."off"فقط لایهٔ دوستانه را غیرفعال میکند؛ قرارداد رفتاری برچسبخوردهٔ GPT-5 فعال میماند.plugins.entries.openai.config.personalityقدیمی همچنان زمانی خوانده میشود که این تنظیم مشترک تعیین نشده باشد.
agents.defaults.heartbeat
اجرای دورهای Heartbeat.
{ agents: { defaults: { heartbeat: { every: "30m", // 0m disables model: "openai/gpt-5.4-mini", includeReasoning: false, includeSystemPromptSection: true, // default: true; false omits the Heartbeat section from the system prompt lightContext: false, // default: false; true skips workspace bootstrap files for heartbeat runs isolatedSession: false, // default: false; true runs each heartbeat in a fresh session (no conversation history) skipWhenBusy: false, // default: false; true also waits for this agent's subagent/nested lanes session: "main", to: "+15555550123", directPolicy: "allow", // allow (default) | block target: "none", // default: none | options: last | whatsapp | telegram | discord | ... prompt: "Follow the heartbeat monitor scratch context...", ackMaxChars: 300, suppressToolErrorWarnings: false, timeoutSeconds: 45, }, }, },}every: رشتهٔ مدتزمان (ms/s/m/h). پیشفرض:30m(احراز هویت با کلید API) یا1h(احراز هویت OAuth). برای غیرفعالکردن، آن را روی0mتنظیم کنید.- تناوب در یک ردیف پایش Cron متعلق به سیستم نوشته میشود. برای ایجاد یک ردیف مفقود یا منسوخ،
openclaw doctor --fixرا اجرا کنید. اگر Cron غیرفعال باشد، Heartbeatهای زمانبندیشده اجرا نمیشوند و Gateway یک هشدار راهاندازی ثبت میکند. includeSystemPromptSection: وقتی false باشد، بخش Heartbeat را از اعلان سیستم حذف میکند. پیشفرض:true.suppressToolErrorWarnings: وقتی true باشد، محمولههای هشدار خطای ابزار را هنگام اجرای Heartbeat سرکوب میکند.timeoutSeconds: حداکثر زمان مجاز بر حسب ثانیه برای یک نوبت عامل Heartbeat، پیش از لغو آن. اگر تنظیم نشود، در صورت تنظیمبودن ازagents.defaults.timeoutSecondsاستفاده میشود؛ در غیر این صورت، تناوب Heartbeat با سقف 600 ثانیه بهکار میرود.directPolicy: سیاست تحویل مستقیم/DM.allow(پیشفرض) تحویل به مقصد مستقیم را مجاز میکند.blockتحویل به مقصد مستقیم را سرکوب وreason=dm-blockedرا منتشر میکند.lightContext: وقتی true باشد، اجرای Heartbeat از زمینهٔ راهاندازی سبک استفاده میکند و فایلهای راهاندازی فضای کاری را نادیده میگیرد. زمینهٔ موقت پایش در هر دو حالت توسط اجراکنندهٔ Heartbeat تزریق میشود.isolatedSession: وقتی true باشد، هر Heartbeat در نشستی تازه و بدون سابقهٔ مکالمهٔ قبلی اجرا میشود. همان الگوی جداسازی CronsessionTarget: "isolated". هزینهٔ توکن هر Heartbeat را از حدود ~100K به حدود ~2-5K توکن کاهش میدهد.skipWhenBusy: وقتی true باشد، اجرای Heartbeat در مسیرهای مشغول اضافی آن عامل به تعویق میافتد: کار زیرعامل مبتنی بر کلید نشست خودش یا کار فرمان تودرتو. مسیرهای Cron حتی بدون این پرچم همیشه Heartbeatها را به تعویق میاندازند.- برای هر عامل:
agents.entries.*.heartbeatرا تنظیم کنید. وقتی هر عاملیheartbeatرا تعریف کند، فقط همان عاملها Heartbeat اجرا میکنند. - Heartbeatها نوبتهای کامل عامل را اجرا میکنند — فاصلههای کوتاهتر توکن بیشتری مصرف میکنند.
agents.defaults.compaction
{ agents: { defaults: { compaction: { mode: "safeguard", // default | safeguard provider: "my-provider", // id of a registered compaction provider plugin (optional) thinkingLevel: "low", // optional compaction-only thinking override timeoutSeconds: 180, keepRecentTokens: 50000, recentTurnsPreserve: 3, identifierPolicy: "strict", // strict | off qualityGuard: { enabled: true, maxRetries: 1 }, midTurnPrecheck: { enabled: false }, // optional tool-loop pressure check postIndexSync: "async", // off | async | await postCompactionSections: ["Session Startup", "Red Lines"], model: "openrouter/anthropic/claude-sonnet-4-6", // optional compaction-only model override truncateAfterCompaction: true, // rotate to a smaller successor JSONL after compaction maxActiveTranscriptBytes: "20mb", // optional preflight local compaction trigger notifyUser: true, // notices when compaction starts/completes and on memory-flush degradation (default: false) memoryFlush: { enabled: true, model: "ollama/qwen3:8b", // optional memory-flush-only model override softThresholdTokens: 6000, forceFlushTranscriptBytes: "2mb", }, }, }, },}mode:defaultیاsafeguard(خلاصهسازی قطعهای برای تاریخچههای طولانی). به Compaction مراجعه کنید.provider: شناسهٔ Plugin ارائهدهندهٔ Compaction ثبتشده. وقتی تنظیم شود، بهجای خلاصهسازی داخلی LLM،summarize()ارائهدهنده فراخوانی میشود. در صورت شکست، به روش داخلی بازمیگردد. تنظیم ارائهدهنده،mode: "safeguard"را اجباری میکند. به Compaction مراجعه کنید.thinkingLevel: سطح تفکر اختیاری که فقط برای خلاصههای Compaction تعبیهشدهٔ OpenClaw استفاده میشود (off،minimal،low،medium،high،xhigh،adaptive،maxیاultra). این مقدار سطح تفکر فعلی نشست را بازنویسی میکند و به مدل/زماناجرای Compaction انتخابشده محدود میشود. برای بهارثبردن سطح نشست، آن را تنظیمنشده باقی بگذارید. Compaction بومی app-server در Codex این تنظیم را نادیده میگیرد، زیرا درخواست compact بومی فاقد بازنویسی تفکر برای هر عملیات است؛ OpenClaw هنگام پیکربندی آن، هشداری ثبت میکند.timeoutSeconds: حداکثر تعداد ثانیهٔ مجاز برای یک عملیات Compaction پیش از آنکه OpenClaw آن را لغو کند. پیشفرض:180.keepRecentTokens: بودجهٔ نقطهٔ برش عامل برای حفظ عیناً آخرین دنبالهٔ رونوشت./compactدستی، وقتی صریحاً تنظیم شده باشد، آن را رعایت میکند؛ در غیر این صورت، Compaction دستی یک نقطهٔ بازرسی سخت است.recentTurnsPreserve: تعداد آخرین نوبتهای کاربر/دستیار که بیرون از خلاصهسازی حفاظتی عیناً حفظ میشوند. پیشفرض:3.identifierPolicy:strict(پیشفرض) یاoff.strictهنگام خلاصهسازی Compaction، راهنمای داخلی حفظ شناسههای مات را در ابتدا اضافه میکند.qualityGuard: بررسیهای تلاش مجدد در صورت خروجی بدشکل برای خلاصههای حفاظتی. در حالت حفاظتی بهطور پیشفرض فعال است؛ برای ردکردن ممیزی،enabled: falseرا تنظیم کنید.midTurnPrecheck: بررسی اختیاری فشار حلقهٔ ابزار. وقتیenabled: trueباشد، OpenClaw پس از افزودهشدن نتایج ابزار و پیش از فراخوانی بعدی مدل، فشار زمینه را بررسی میکند. اگر زمینه دیگر نگنجد، تلاش جاری را پیش از ارسال پرامپت لغو میکند و برای کوتاهکردن نتایج ابزار یا انجام Compaction و تلاش مجدد، از مسیر بازیابی موجودِ پیشبررسی دوباره استفاده میکند. با هر دو حالت Compaction یعنیdefaultوsafeguardکار میکند. پیشفرض: غیرفعال.postIndexSync: حالت نمایهسازی مجدد حافظهٔ نشست پس از Compaction. پیشفرض:"async". برای بیشترین تازگی از"await"، برای تأخیر کمتر Compaction از"async"، یا فقط هنگامی که همگامسازی حافظهٔ نشست در جای دیگری انجام میشود از"off"استفاده کنید.postCompactionSections: نامهای اختیاری بخشهای H2/H3 در AGENTS.md که پس از Compaction دوباره تزریق میشوند. برای غیرفعالسازی، آن را تنظیمنشده بگذارید یا از[]استفاده کنید.model:provider/model-idاختیاری یا نام مستعار ساده ازagents.defaults.modelsفقط برای خلاصهسازی Compaction. نامهای مستعار ساده پیش از ارسال حل میشوند؛ در صورت تداخل، شناسههای لفظی مدلِ پیکربندیشده اولویت خود را حفظ میکنند. زمانی از این گزینه استفاده کنید که نشست اصلی باید یک مدل را حفظ کند، اما خلاصههای Compaction باید روی مدل دیگری اجرا شوند؛ وقتی تنظیم نشده باشد، Compaction از مدل اصلی نشست استفاده میکند.truncateAfterCompaction: پس از Compaction رونوشت نشست فعال را چرخش میدهد تا نوبتهای آینده فقط خلاصه و دنبالهٔ خلاصهنشده را بارگذاری کنند، درحالیکه رونوشت کامل قبلی بایگانیشده باقی میماند. از رشد نامحدود رونوشت فعال در نشستهای طولانیمدت جلوگیری میکند. پیشفرض:false.maxActiveTranscriptBytes: آستانهٔ اختیاری بایت (numberیا رشتههایی مانند"20mb") که وقتی تاریخچهٔ رونوشت از آستانه فراتر رود، پیش از اجرا Compaction محلی عادی را فعال میکند. بهtruncateAfterCompactionنیاز دارد تا Compaction موفق بتواند به رونوشت جانشین کوچکتری چرخش کند. وقتی تنظیم نشده باشد یا0باشد، غیرفعال است.notifyUser: وقتیtrueباشد، اعلانهای کوتاه نگهداشت زمینه را برای کاربر میفرستد: هنگام شروع و تکمیل Compaction (برای مثال، «در حال فشردهسازی زمینه...» و «Compaction کامل شد»)، و هنگامی که تخلیهٔ حافظهٔ پیش از Compaction به پایان ظرفیت خود میرسد و پاسخ در وضعیت تنزلیافته ادامه مییابد (برای مثال، «نگهداشت حافظه موقتاً ناموفق بود؛ پاسخ شما ادامه مییابد.»). برای بیصدا نگهداشتن این اعلانها، بهطور پیشفرض غیرفعال است.memoryFlush: نوبت عاملی بیصدا پیش از Compaction خودکار برای ذخیرهٔ حافظههای پایدار. وقتی این نوبت نگهداشت باید روی مدل محلی باقی بماند،modelرا روی ارائهدهنده/مدل دقیقی مانندollama/qwen3:8bتنظیم کنید؛ این بازنویسی زنجیرهٔ جایگزین نشست فعال را به ارث نمیبرد.forceFlushTranscriptBytesوقتی اندازهٔ رونوشت به آستانه برسد، حتی اگر شمارندههای توکن کهنه باشند، تخلیه را اجباری میکند. وقتی فضای کاری فقطخواندنی باشد، رد میشود.
دستورالعملهای سفارشی Compaction تحت مالکیت کد هستند. برای ساخت سفارشی خلاصه، یک
Plugin ارائهدهندهٔ Compaction با summarize() پیادهسازی کنید و هنگامی که
زمینهٔ پس از Compaction باید به پرامپتهای بعدی مدل تزریق شود، از
before_prompt_build استفاده کنید. Doctor فیلدهای دستورالعمل منسوخشده را حذف میکند و به این
درزها اشاره میکند.
agents.defaults.contextPruning
نتایج قدیمی ابزار را پیش از ارسال به LLM از زمینهٔ درونحافظهای هرس میکند. تاریخچهٔ نشست روی دیسک را تغییر نمیدهد. بهطور پیشفرض غیرفعال است؛ برای فعالسازی، mode: "cache-ttl" را تنظیم کنید.
{ agents: { defaults: { contextPruning: { mode: "cache-ttl", // خاموش (پیشفرض) | cache-ttl }, }, },}رفتار حالت cache-ttl
mode: "cache-ttl"گذرهای هرس را فعال میکند.- هرس ابتدا نتایج بیشازحد بزرگ ابزار را بهصورت نرم کوتاه میکند، سپس در صورت نیاز نتایج قدیمیتر ابزار را کاملاً پاک میکند.
کوتاهسازی نرم ابتدا + انتها را حفظ میکند و ... را در میانه درج میکند.
پاکسازی کامل کل نتیجهٔ ابزار را با جاینگهدار جایگزین میکند.
نکتهها:
- بلوکهای تصویر هرگز کوتاه/پاک نمیشوند.
- نسبتها بر پایهٔ نویسه هستند (تقریبی)، نه شمارش دقیق توکن.
- جدیدترین پیامهای دستیار حفظ میشوند.
برای جزئیات رفتار، به هرس نشست مراجعه کنید.
استریمسازی بلوکی
{ agents: { defaults: { blockStreamingDefault: "off", // on | off blockStreamingBreak: "text_end", // text_end | message_end blockStreamingChunk: { minChars: 800, maxChars: 1200, breakPreference: "paragraph" }, blockStreamingCoalesce: { idleMs: 1000 }, humanDelay: { mode: "natural" }, // off (پیشفرض) | natural | custom (استفاده از minMs/maxMs) }, },}- کانالهای غیر از Telegram برای فعالسازی پاسخهای بلوکی به
*.streaming.block.enabled: trueصریح نیاز دارند. QQ Bot استثناست: هیچ کلیدstreaming.blockندارد و پاسخهای بلوکی را استریم میکند، مگر اینکهchannels.qqbot.streaming.modeبرابر"off"باشد. - بازنویسیهای کانال:
channels.<channel>.streaming.block.coalesce(و گونههای مختص هر حساب). Discord، Google Chat، Mattermost، MS Teams، Signal و Slack بهطور پیشفرضminChars: 1500/idleMs: 1000هستند. blockStreamingChunk.breakPreference: مرز ترجیحی قطعه ("paragraph" | "newline" | "sentence").humanDelay: مکث تصادفی میان پاسخهای بلوکی. پیشفرض:off.natural= 800-2500ms.customازminMs/maxMsاستفاده میکند (برای هر کران تنظیمنشده، به بازهٔ طبیعی بازمیگردد). بازنویسی مختص عامل:agents.entries.*.humanDelay.
برای جزئیات رفتار + قطعهبندی، به استریمسازی مراجعه کنید.
نشانگرهای تایپ
{ agents: { defaults: { typingMode: "instant", // never | instant | thinking | message typingIntervalSeconds: 6, }, },}- پیشفرضها:
instantبرای گفتوگوهای مستقیم/اشارهها،messageبرای گفتوگوهای گروهی بدون اشاره. - پیشفرض
typingIntervalSeconds:6. - بازنویسی مختص عامل:
agents.entries.*.typingMode.
به نشانگرهای تایپ مراجعه کنید.
agents.defaults.sandbox
سندباکس اختیاری برای عامل تعبیهشده. برای راهنمای کامل، به سندباکس مراجعه کنید.
{ agents: { defaults: { sandbox: { mode: "non-main", // off (پیشفرض) | non-main | all backend: "docker", // docker (پیشفرض) | ssh | openshell scope: "agent", // session | agent (پیشفرض) | shared workspaceAccess: "none", // none (پیشفرض) | ro | rw workspaceRoot: "~/.openclaw/sandboxes", docker: { image: "openclaw-sandbox:bookworm-slim", containerPrefix: "openclaw-sbx-", workdir: "/workspace", readOnlyRoot: true, tmpfs: ["/tmp", "/var/tmp", "/run"], network: "none", user: "1000:1000", capDrop: ["ALL"], env: { LANG: "C.UTF-8" }, setupCommand: "apt-get update && apt-get install -y git curl jq", pidsLimit: 256, memory: "1g", memorySwap: "2g", cpus: 1, gpus: "all", ulimits: { nofile: { soft: 1024, hard: 2048 }, nproc: 256, }, seccompProfile: "/path/to/seccomp.json", apparmorProfile: "openclaw-sandbox", dns: ["1.1.1.1", "8.8.8.8"], extraHosts: ["internal.service:10.0.0.5"], binds: ["/home/user/source:/source:rw"], }, ssh: { target: "user@gateway-host:22", command: "ssh", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true, identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", // SecretRefها / محتوای درونخطی نیز پشتیبانی میشوند: // 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" }, }, browser: { enabled: false, image: "openclaw-sandbox-browser:bookworm-slim", network: "openclaw-sandbox-browser", cdpPort: 9222, cdpSourceRange: "172.21.0.1/32", vncPort: 5900, noVncPort: 6080, headless: false, enableNoVnc: true, allowHostControl: false, autoStart: true, autoStartTimeoutMs: 12000, }, prune: { idleHours: 24, maxAgeDays: 7, }, }, }, }, tools: { sandbox: { tools: { allow: [ "exec", "process", "read", "write", "edit", "apply_patch", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["browser", "canvas", "nodes", "cron", "discord", "gateway"], }, }, },}پیشفرضهای نشاندادهشده در بالا (تصویر off/docker/agent/none/bookworm-slim، شبکهٔ none و غیره) پیشفرضهای واقعی OpenClaw هستند، نه صرفاً مقادیر نمونه.
جزئیات سندباکس
بکاند:
docker: زماناجرای محلی Docker (پیشفرض)ssh: زماناجرای راهدور عمومی مبتنی بر SSHopenshell: زماناجرای OpenShell
وقتی backend: "openshell" انتخاب شود، تنظیمات مختص زماناجرا به
plugins.entries.openshell.config منتقل میشوند.
پیکربندی بکاند SSH:
target: مقصد SSH با قالبuser@host[:port]command: فرمان کلاینت SSH (پیشفرض:ssh)workspaceRoot: ریشهٔ مطلق راهدور برای فضاهای کاری هر محدوده (پیشفرض:/tmp/openclaw-sandboxes)identityFile/certificateFile/knownHostsFile: فایلهای محلی موجود که به OpenSSH داده میشوندidentityData/certificateData/knownHostsData: محتوای درونخطی یا SecretRefهایی که OpenClaw هنگام اجرا در فایلهای موقت قرار میدهدstrictHostKeyChecking/updateHostKeys: گزینههای سیاست کلید میزبان OpenSSH (مقدار پیشفرض هر دوtrueاست)
اولویت احراز هویت SSH:
identityDataبرidentityFileاولویت داردcertificateDataبرcertificateFileاولویت داردknownHostsDataبرknownHostsFileاولویت دارد- مقادیر
*Dataمبتنی بر SecretRef پیش از آغاز نشست سندباکس، از اسنپشات فعال زماناجرای اسرار حل میشوند
رفتار بکاند SSH:
- پس از ایجاد یا ایجاد مجدد، فضای کاری راهدور را یکبار مقداردهی اولیه میکند
- سپس فضای کاری SSH راهدور را بهعنوان مرجع اصلی نگه میدارد
exec، ابزارهای فایل و مسیرهای رسانه را از طریق SSH مسیریابی میکند- تغییرات راهدور را بهطور خودکار با میزبان همگام نمیکند
- از کانتینرهای مرورگر سندباکس پشتیبانی نمیکند
دسترسی به فضای کاری:
none: فضای کاری سندباکس هر محدوده زیر~/.openclaw/sandboxes(پیشفرض)ro: فضای کاری سندباکس در/workspace، فضای کاری عامل بهصورت فقطخواندنی در/agentسوار میشودrw: فضای کاری عامل بهصورت خواندنی/نوشتنی در/workspaceسوار میشود
محدوده:
session: کانتینر + فضای کاری برای هر نشستagent: یک کانتینر + فضای کاری برای هر عامل (پیشفرض)shared: کانتینر و فضای کاری مشترک (بدون جداسازی میان نشستها)
پیکربندی Plugin مربوط به OpenShell:
{plugins: { entries: { openshell: { enabled: true, config: { mode: "mirror", // آینهای (پیشفرض) | راهدور command: "openshell", from: "openclaw", remoteWorkspaceDir: "/sandbox", remoteAgentWorkspaceDir: "/agent", gateway: "lab", // اختیاری gatewayEndpoint: "https://lab.example", // اختیاری policy: "strict", // شناسهٔ اختیاری سیاست OpenShell providers: ["openai"], // اختیاری autoProviders: true, timeoutSeconds: 120, }, }, },},}حالت OpenShell:
mirror: پیش از اجرا، راهدور را از محلی مقداردهی اولیه میکند و پس از اجرا همگامسازی معکوس انجام میدهد؛ فضای کاری محلی مرجع اصلی باقی میماندremote: هنگام ایجاد سندباکس، راهدور را یکبار مقداردهی اولیه میکند و سپس فضای کاری راهدور را بهعنوان مرجع اصلی نگه میدارد
در حالت remote، ویرایشهای محلی میزبان که خارج از OpenClaw انجام شوند، پس از مرحلهٔ مقداردهی اولیه بهطور خودکار با سندباکس همگام نمیشوند.
انتقال از طریق SSH به سندباکس OpenShell انجام میشود، اما Plugin چرخهٔ عمر سندباکس و همگامسازی آینهای اختیاری را مدیریت میکند.
setupCommand پس از ایجاد کانتینر یکبار اجرا میشود (از طریق sh -lc). به خروجی شبکه، ریشهٔ قابلنوشتن و کاربر root نیاز دارد.
کانتینرها بهطور پیشفرض از network: "none" استفاده میکنند — اگر عامل به دسترسی خروجی نیاز دارد، آن را روی "bridge" (یا یک شبکهٔ bridge سفارشی) تنظیم کنید.
"host" مسدود است. "container:<id>" نیز بهطور پیشفرض مسدود است، مگر اینکه
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true را صریحاً تنظیم کنید (راهکار اضطراری).
نوبتهای app-server مربوط به Codex در یک سندباکس فعال OpenClaw، برای دسترسی شبکهٔ بومی حالت کد خود از همین تنظیم خروجی استفاده میکنند.
پیوستهای ورودی در media/inbound/* داخل فضای کاری فعال آمادهسازی میشوند.
docker.binds دایرکتوریهای میزبان بیشتری را سوار میکند؛ اتصالهای سراسری و مخصوص هر عامل با هم ادغام میشوند.
مرورگر سندباکسشده (sandbox.browser.enabled، پیشفرض false): Chromium + CDP در یک کانتینر. نشانی noVNC به پرامپت سیستم تزریق میشود. در openclaw.json به browser.enabled نیاز ندارد.
دسترسی ناظر noVNC بهطور پیشفرض از احراز هویت VNC استفاده میکند و OpenClaw یک نشانی توکن کوتاهعمر صادر میکند (بهجای افشای گذرواژه در نشانی مشترک).
allowHostControl: false(پیشفرض) مانع هدفگیری مرورگر میزبان توسط نشستهای سندباکسشده میشود.- مقدار پیشفرض
networkبرابرopenclaw-sandbox-browserاست (شبکهٔ bridge اختصاصی). فقط زمانی آن را رویbridgeتنظیم کنید که صریحاً اتصال سراسری bridge را میخواهید."host"در اینجا نیز مسدود است. cdpSourceRangeمیتواند ورود CDP در لبهٔ کانتینر را به یک محدودهٔ CIDR محدود کند (برای مثال172.21.0.1/32).sandbox.browser.bindsدایرکتوریهای میزبان بیشتری را فقط در کانتینر مرورگر سندباکس سوار میکند. وقتی تنظیم شود (از جمله[])، برای کانتینر مرورگر جایگزینdocker.bindsمیشود.- Chromium کانتینر مرورگر سندباکس همیشه با
--no-sandbox --disable-setuid-sandboxراهاندازی میشود (کانتینرها سازوکارهای هستهای موردنیاز سندباکس داخلی Chrome را ندارند)؛ هیچ گزینهٔ پیکربندی برای تغییر آن وجود ندارد. - پیشفرضهای راهاندازی در
scripts/sandbox-browser-entrypoint.shتعریف شدهاند و برای میزبانهای کانتینری تنظیم شدهاند: --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-dev-shm-usage--disable-background-networking--disable-breakpad--disable-crash-reporter--no-zygote--metrics-recording-only--password-store=basic--use-mock-keychain--disable-3d-apis،--disable-gpuو--disable-software-rasterizerبهطور پیشفرض فعال هستند و اگر استفاده از WebGL/3D به آن نیاز داشته باشد، میتوان آنها را باOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0غیرفعال کرد.--disable-extensions(بهطور پیشفرض فعال)؛ اگر گردش کار به افزونهها وابسته است،OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0آنها را دوباره فعال میکند.- بهطور پیشفرض
--renderer-process-limit=2؛ باOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>تغییر دهید، برای استفاده از محدودیت پیشفرض فرایندهای Chromium،0را تنظیم کنید. --headless=newفقط وقتیheadlessفعال باشد.- پیشفرضها خط مبنای ایمیج کانتینر هستند؛ برای تغییر پیشفرضهای کانتینر، از یک ایمیج مرورگر سفارشی با نقطهٔ ورود سفارشی استفاده کنید.
سندباکس مرورگر و sandbox.docker.binds فقط در Docker قابل استفادهاند.
ساخت ایمیجها (از یک نسخهٔ کاری کد منبع):
scripts/sandbox-setup.sh # ایمیج اصلی سندباکسscripts/sandbox-browser-setup.sh # ایمیج اختیاری مرورگربرای نصبهای npm بدون نسخهٔ کاری کد منبع، برای فرمانهای درونخطی docker build به سندباکسسازی § ایمیجها و راهاندازی مراجعه کنید.
agents.entries (بازنویسیهای مخصوص هر عامل)
از agents.entries.*.tts استفاده کنید تا ارائهدهنده، صدا، مدل،
سبک یا حالت TTS خودکار اختصاصی به یک عامل بدهید. بلوک عامل بهصورت عمیق روی
tts سراسری ادغام میشود؛ بنابراین اعتبارنامههای مشترک میتوانند در یک محل باقی بمانند و هر
عامل فقط فیلدهای صدا یا ارائهدهندهٔ موردنیاز خود را بازنویسی کند. بازنویسی عامل فعال
برای پاسخهای گفتاری خودکار، /tts audio، /tts status و
ابزار عامل tts اعمال میشود. برای نمونههای ارائهدهندگان و ترتیب اولویت به
تبدیل متن به گفتار مراجعه کنید.
{ agents: { list: [ { id: "main", default: true, name: "عامل اصلی", workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", model: "anthropic/claude-opus-4-6", // یا { primary, fallbacks } utilityModel: "openai/gpt-5.4-mini", thinkingDefault: "high", // بازنویسی سطح تفکر برای هر عامل reasoningDefault: "on", // بازنویسی قابلیت مشاهدهٔ استدلال برای هر عامل fastModeDefault: false, // بازنویسی حالت سریع برای هر عامل params: { cacheRetention: "none" }, // پارامترهای مطابق defaults.models را بر اساس کلید بازنویسی میکند tts: { providers: { elevenlabs: { speakerVoiceId: "EXAVITQu4vr4xnSDxMaL" }, }, }, skills: ["docs-search"], // در صورت تنظیم، جایگزین agents.defaults.skills میشود identity: { name: "Samantha", theme: "تنبلِ یاریرسان", emoji: "🦥", avatar: "avatars/samantha.png", }, groupChat: { mentionPatterns: ["@openclaw"] }, sandbox: { mode: "off" }, runtime: { type: "acp", acp: { agent: "codex", backend: "acpx", mode: "persistent", // پایدار | یکباره cwd: "/workspace/openclaw", }, }, subagents: { allowAgents: ["*"] }, tools: { profile: "coding", allow: ["browser"], deny: ["canvas"], elevated: { enabled: true }, }, }, ], },}id: شناسهٔ پایدار عامل (الزامی).default: وقتی چند مورد تنظیم شده باشند، نخستین مورد برنده میشود (هشدار ثبت میشود). اگر هیچکدام تنظیم نشده باشند، نخستین ورودی فهرست پیشفرض است.model: قالب رشتهای یک مدل اصلی سختگیرانه برای هر عامل، بدون مدل جایگزین، تنظیم میکند؛ قالب شیء{ primary }نیز سختگیرانه است، مگر اینکهfallbacksرا اضافه کنید. برای فعالکردن جایگزینی برای آن عامل از{ primary, fallbacks: [...] }استفاده کنید، یا برای صریحکردن رفتار سختگیرانه از{ primary, fallbacks: [] }استفاده کنید. کارهای Cron که فقطprimaryرا بازنویسی میکنند، همچنان مدلهای جایگزین پیشفرض را به ارث میبرند، مگر اینکهfallbacks: []را تنظیم کنید.utilityModel: بازنویسی اختیاری برای هر عامل جهت کارهای داخلی کوتاه، مانند عنوانهای تولیدشده برای نشست و رشته. ابتدا بهagents.defaults.utilityModelو سپس به مدل کوچک پیشفرض اعلامشده توسط ارائهدهندهٔ مؤثر نشست برمیگردد. عنوانهای داشبورد یکبار دیگر با مدل عادی مؤثر نشست تلاش میشوند. رشتهٔ خالی، مسیر ابزار کمکی جایگزین را برای این عامل نادیده میگیرد، بدون اینکه تولید عنوان داشبورد را غیرفعال کند.params: پارامترهای جریان برای هر عامل که روی ورودی مدل انتخابشده درagents.defaults.modelsادغام میشوند. از این مورد برای بازنویسیهای مختص عامل، مانندcacheRetention،temperatureیاmaxTokens، بدون تکرار کل کاتالوگ مدل استفاده کنید.tts: بازنویسیهای اختیاری تبدیل متن به گفتار برای هر عامل. این بلوک بهصورت عمیق رویttsادغام میشود؛ بنابراین اعتبارنامههای مشترک ارائهدهنده و سیاست جایگزینی را درttsنگه دارید و اینجا فقط مقادیر مختص شخصیت، مانند ارائهدهنده، صدا، مدل، سبک یا حالت خودکار را تنظیم کنید.skills: فهرست مجاز اختیاری Skills برای هر عامل. اگر حذف شود، عامل در صورت تنظیمبودنagents.defaults.skillsآن را به ارث میبرد؛ یک فهرست صریح، بهجای ادغام، مقادیر پیشفرض را جایگزین میکند و[]بهمعنای نبود Skills است.thinkingDefault: سطح پیشفرض اختیاری تفکر برای هر عامل (off | minimal | low | medium | high | xhigh | adaptive | max). وقتی هیچ بازنویسی در سطح پیام یا نشست تنظیم نشده باشد،agents.defaults.thinkingDefaultرا برای این عامل بازنویسی میکند. نمایهٔ ارائهدهنده/مدل انتخابشده تعیین میکند کدام مقادیر معتبرند؛ برای Google Gemini، مقدارadaptiveتفکر پویای تحت مالکیت ارائهدهنده را حفظ میکند (thinkingLevelدر Gemini 3/3.1 حذف میشود،thinkingBudget: -1در Gemini 2.5).reasoningDefault: میزان نمایش پیشفرض اختیاری استدلال برای هر عامل (on | off | stream). وقتی هیچ بازنویسی استدلال در سطح پیام یا نشست تنظیم نشده باشد،agents.defaults.reasoningDefaultرا برای این عامل بازنویسی میکند.fastModeDefault: پیشفرض اختیاری حالت سریع برای هر عامل ("auto" | true | false). وقتی هیچ بازنویسی حالت سریع در سطح پیام یا نشست تنظیم نشده باشد، اعمال میشود.models: بازنویسیهای اختیاری کاتالوگ مدل/زمان اجرا برای هر عامل که با شناسههای کاملprovider/modelکلیدگذاری میشوند. برای استثناهای زمان اجرای مختص عامل ازmodels["provider/model"].agentRuntimeاستفاده کنید.runtime: توصیفگر اختیاری زمان اجرا برای هر عامل. وقتی عامل باید بهطور پیشفرض از نشستهای چارچوب ACP استفاده کند، ازtype: "acp"با پیشفرضهایruntime.acp(agent،backend،mode،cwd) استفاده کنید.identity.avatar: مسیر نسبی به فضای کاری، نشانی وبhttp(s)یا URI نوعdata:.- فایلهای تصویر محلی
identity.avatarبا مسیر نسبی به فضای کاری به 2 MB محدودند. نشانیهای وبhttp(s)و URIهایdata:با محدودیت اندازهٔ فایل محلی بررسی نمیشوند. identityمقادیر پیشفرض را استخراج میکند:ackReactionازemoji، وmentionPatternsازname/emoji.subagents.allowAgents: فهرست مجاز شناسههای عامل پیکربندیشده برای مقصدهای صریحsessions_spawn.agentId(["*"]= هر مقصد پیکربندیشده؛ پیشفرض: فقط همان عامل). وقتی فراخوانیهای خودمقصدagentIdباید مجاز باشند، شناسهٔ درخواستکننده را وارد کنید. ورودیهای منقضیشدهای که پیکربندی عاملشان حذف شده است، توسطsessions_spawnرد و ازagents_listحذف میشوند؛ برای پاکسازی آنهاopenclaw doctor --fixرا اجرا کنید، یا اگر آن مقصد باید ضمن بهارثبردن مقادیر پیشفرض همچنان قابل ایجاد باشد، یک ورودی حداقلیagents.entries.*اضافه کنید.- محافظ وراثت سندباکس: اگر نشست درخواستکننده در سندباکس باشد،
sessions_spawnمقصدهایی را که بدون سندباکس اجرا میشوند رد میکند. subagents.requireAgentId: وقتی true باشد، فراخوانیهایsessions_spawnکهagentIdرا حذف کردهاند مسدود میشوند (انتخاب صریح نمایه را اجباری میکند؛ پیشفرض: false).subagents.maxConcurrent: بیشینهٔ اجرای همزمان عاملهای فرزند در سراسر اجرای زیرعاملها. پیشفرض:8.subagents.maxChildrenPerAgent: بیشینهٔ فرزندان فعالی که یک نشست عامل میتواند ایجاد کند. پیشفرض:5.subagents.maxSpawnDepth: بیشینهٔ عمق تودرتویی برای ایجاد زیرعامل (1-5). پیشفرض:1(بدون تودرتویی).subagents.archiveAfterMinutes: مدتزمانی که پس از آن وضعیت زیرعامل تکمیلشده بایگانی میشود. پیشفرض:60.
مسیریابی چندعاملی
چند عامل مجزا را درون یک Gateway اجرا کنید. چندعاملی را ببینید.
{ agents: { list: [ { id: "home", default: true, workspace: "~/.openclaw/workspace-home" }, { id: "work", workspace: "~/.openclaw/workspace-work" }, ], }, bindings: [ { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } }, { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } }, ],}فیلدهای تطبیق اتصال
type(اختیاری):routeبرای مسیریابی عادی (نوع حذفشده بهطور پیشفرض route است)،acpبرای اتصالهای پایدار مکالمهٔ ACP.match.channel(الزامی)match.accountId(اختیاری؛*= هر حساب؛ حذفشده = حساب پیشفرض)match.peer(اختیاری؛{ kind: direct|group|channel, id })match.guildId/match.teamId(اختیاری؛ مختص کانال)acp(اختیاری؛ فقط برایtype: "acp"):{ mode, label, cwd, backend }
ترتیب قطعی تطبیق:
match.peermatch.guildIdmatch.teamIdmatch.accountId(دقیق، بدون همتا/انجمن/تیم)match.accountId: "*"(در سراسر کانال)- عامل پیشفرض
در هر سطح، نخستین ورودی منطبق bindings برنده میشود.
برای ورودیهای type: "acp"، OpenClaw بر اساس هویت دقیق مکالمه (match.channel + حساب + match.peer.id) تصمیم میگیرد و از ترتیب سطوح اتصال مسیریابی بالا استفاده نمیکند.
نمایههای دسترسی برای هر عامل
دسترسی کامل (بدون سندباکس)
{agents: { list: [ { id: "personal", workspace: "~/.openclaw/workspace-personal", sandbox: { mode: "off" }, }, ],},}ابزارهای فقطخواندنی + فضای کاری
{agents: { list: [ { id: "family", workspace: "~/.openclaw/workspace-family", sandbox: { mode: "all", scope: "agent", workspaceAccess: "ro" }, tools: { allow: [ "read", "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", ], deny: ["write", "edit", "apply_patch", "exec", "process", "browser"], }, }, ],},}بدون دسترسی به سیستم فایل (فقط پیامرسانی)
{agents: { list: [ { id: "public", workspace: "~/.openclaw/workspace-public", sandbox: { mode: "all", scope: "agent", workspaceAccess: "none" }, tools: { allow: [ "sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status", "whatsapp", "telegram", "slack", "discord", "gateway", ], deny: [ "read", "write", "edit", "apply_patch", "exec", "process", "browser", "canvas", "nodes", "cron", "gateway", "image", ], }, }, ],},}برای جزئیات تقدم، سندباکس و ابزارهای چندعاملی را ببینید.
نشست
{ session: { scope: "per-sender", dmScope: "main", // main | per-peer | per-channel-peer | per-account-channel-peer identityLinks: { alice: ["telegram:123456789", "discord:987654321012345678"], }, reset: { mode: "daily", // daily | idle atHour: 4, idleMinutes: 60, }, resetByType: { thread: { mode: "daily", atHour: 4 }, direct: { mode: "idle", idleMinutes: 240 }, group: { mode: "idle", idleMinutes: 120 }, }, resetByChannel: { discord: { mode: "idle", idleMinutes: 30 }, }, resetTriggers: ["/new", "/reset"], store: "~/.openclaw/agents/{agentId}/sessions/sessions.json", maintenance: { mode: "enforce", // enforce (default) | warn pruneAfter: "30d", maxEntries: 500, resetArchiveRetention: "30d", // duration or false maxDiskBytes: "500mb", // optional hard budget highWaterBytes: "400mb", // optional cleanup target }, threadBindings: { enabled: true, idleHours: 24, // default inactivity auto-unfocus in hours (`0` disables) maxAgeHours: 0, // default hard max age in hours (`0` disables) }, sharing: { readOnly: true, suggest: true, drafts: true, }, mainKey: "main", // legacy (runtime always uses "main") sendPolicy: { rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }], default: "allow", }, },}جزئیات فیلدهای نشست
scope: راهبرد پایهٔ گروهبندی نشست برای زمینههای گفتوگوی گروهی.per-sender(پیشفرض): هر فرستنده در یک زمینهٔ کانال، نشست مجزایی دریافت میکند.global: همهٔ شرکتکنندگان در یک زمینهٔ کانال، یک نشست واحد را بهاشتراک میگذارند (فقط زمانی استفاده شود که زمینهٔ مشترک مدنظر است).dmScope: نحوهٔ گروهبندی پیامهای مستقیم.main: همهٔ پیامهای مستقیم، نشست اصلی را بهاشتراک میگذارند.per-peer: جداسازی بر اساس شناسهٔ فرستنده در کانالهای مختلف.per-channel-peer: جداسازی بر اساس کانال + فرستنده (برای صندوقهای ورودی چندکاربره توصیه میشود).per-account-channel-peer: جداسازی بر اساس حساب + کانال + فرستنده (برای حالت چندحسابی توصیه میشود).identityLinks: نگاشت شناسههای کانونی به همتایان دارای پیشوند ارائهدهنده برای اشتراکگذاری نشست میان کانالها. فرمانهای اتصال مانند/dock_discordاز همین نگاشت استفاده میکنند تا مسیر پاسخ نشست فعال را به همتای کانال پیوندخوردهٔ دیگری تغییر دهند؛ به اتصال کانال مراجعه کنید.reset: سیاست اصلی بازنشانی.noneبازنشانی خودکار را غیرفعال میکند و حالت پیشفرض است؛ در عوض Compaction زمینهٔ فعال را محدود میکند.dailyدر ساعت محلیatHourبازنشانی میکند؛idleپس ازidleMinutesبازنشانی میکند. اگر هر دو پیکربندی شده باشند، هرکدام زودتر منقضی شود اعمال میشود./newو/resetدر همهٔ حالتها در دسترس میمانند. تازگی بازنشانی روزانه ازsessionStartedAtردیف نشست استفاده میکند؛ تازگی بازنشانی بر اثر بیکاری ازlastInteractionAtاستفاده میکند. نوشتنهای پسزمینه/رویداد سیستمی مانند Heartbeat، بیدارباشهای Cron، اعلانهای اجرا و ثبت امور Gateway میتوانندupdatedAtرا بهروزرسانی کنند، اما نشستهای روزانه/بیکار را تازه نگه نمیدارند.resetByType: بازنویسیهای مختص هر نوع (direct،group،thread). Doctor ورودیهای قدیمیdmرا بهdirectمهاجرت میدهد؛ طرحوارهdmرا رد میکند.resetByChannel: بازنویسیهای بازنشانی مختص هر کانال که با شناسهٔ ارائهدهنده/کانال کلیدگذاری شدهاند. وقتی کانال نشست ورودی منطبق داشته باشد، برای آن نشست بدون قیدوشرط برresetByType/resetاولویت مییابد. فقط زمانی استفاده شود که یک کانال به رفتار بازنشانی متفاوتی از سیاست سطح نوع نیاز دارد.mainKey: فیلد قدیمی. زمان اجرا همیشه از"main"برای سطل اصلی گفتوگوی مستقیم استفاده میکند.sendPolicy: تطبیق بر اساسchannel،chatType(direct|group|channel، با نام مستعار قدیمیdm)،keyPrefixیاrawKeyPrefix. نخستین منع، اعمال میشود.maintenance: کنترلهای پاکسازی + نگهداشت مخزن نشست.mode:enforceپاکسازی را اعمال میکند و حالت پیشفرض است؛warnفقط هشدار صادر میکند.pruneAfter: حد آستانهٔ سنی برای ورودیهای کهنه (پیشفرض30d).maxEntries: حداکثر تعداد ورودیهای نشست SQLite (پیشفرض500). نوشتنهای زمان اجرا، پاکسازی دستهای را با یک حاشیهٔ کوچک سقف بالا برای محدودیتهای در مقیاس محیط عملیاتی انجام میدهند؛openclaw sessions cleanup --enforceمحدودیت را بلافاصله اعمال میکند.- نشستهای کوتاهعمر بررسی اجرای مدل Gateway از نگهداشت ثابت
24hاستفاده میکنند، اما پاکسازی وابسته به فشار است: تنها زمانی ردیفهای کهنهٔ بررسی صریح اجرای مدل را حذف میکند که فشار نگهداشت/محدودیت ورودیهای نشست ایجاد شده باشد. فقط کلیدهای بررسی صریح و دقیق منطبق باagent:*:explicit:model-run-<uuid>واجد شرایطاند؛ نشستهای عادی مستقیم، گروهی، رشتهای، Cron، قلاب، Heartbeat، ACP و عامل فرعی این نگهداشت 24h را به ارث نمیبرند. وقتی پاکسازی اجرای مدل انجام میشود، پیش از پاکسازی گستردهتر ورودیهای کهنهٔpruneAfterو محدودیتmaxEntriesاجرا میشود. rotateBytesقدیمی توسط طرحوارهٔ فعلی رد میشود؛openclaw doctor --fixآن را از پیکربندیهای قدیمیتر حذف میکند.resetArchiveRetention: نگهداشت مبتنی بر سن برای بایگانیهای رونوشت بازنشانیشده/حذفشده. بهطور پیشفرض، بایگانیها تا زمان بیرونرانی بر اساس بودجهٔ دیسک باقی میمانند؛ برای فعالسازی حذف بر اساس زمان واقعی یک مدت تعیین کنید، یا برای غیرفعالسازی صریح آنfalseرا تنظیم کنید.maxDiskBytes: بودجهٔ اختیاری دیسک برای شاخهٔ نشستها. در حالتwarnهشدارها را ثبت میکند؛ در حالتenforceابتدا قدیمیترین مصنوعات/نشستها را حذف میکند.highWaterBytes: هدف اختیاری پس از پاکسازی بودجه. مقدار پیشفرض،80%ازmaxDiskBytesاست.threadBindings: پیشفرضهای سراسری برای قابلیتهای نشست مقید به رشته.enabled: کلید اصلی اتصال نشست به رشته در کانالهای پشتیبانیشدهidleHours: لغو تمرکز خودکار پیشفرض پس از عدم فعالیت، بر حسب ساعت (0غیرفعال میکند؛ ارائهدهندگان میتوانند بازنویسی کنند)maxAgeHours: حداکثر سن قطعی پیشفرض بر حسب ساعت (0غیرفعال میکند؛ ارائهدهندگان میتوانند بازنویسی کنند)spawnSessions: دروازهٔ پیشفرض برای ایجاد نشستهای کاری مقید به رشته ازsessions_spawnو ایجاد رشتههای ACP. وقتی اتصال رشتهها فعال باشد، مقدار پیشفرضtrueاست؛ ارائهدهندگان/حسابها میتوانند بازنویسی کنند.defaultSpawnContext: زمینهٔ بومی پیشفرض عامل فرعی برای ایجادهای مقید به رشته ("fork"یا"isolated"). مقدار پیشفرض"fork"است.sharing: کنترل میکند مالکان و اتصالهایoperator.adminکدام حالتهای همکاری مختص نشست را میتوانند انتخاب کنند. مقدار پیشفرض همهٔ پرچمهاtrueاست؛ تنظیم یکی از آنها رویfalseآن گزینه را از رابط کاربری کنترل حذف میکند و باعث میشود نمایانی هنگام ایجاد یاsession.visibility.setآن را رد کند. نشستهای جدید باsharedآغاز میشوند، مگر اینکه رابط کاربری کنترل یکی را بهصورت پیشنویس آغاز کند.readOnly: اجازهٔread-only، که در آن افراد غیرعضو میتوانند تماشا کنند اما نمیتوانند ارسال کنند، هدایت کنند، متوقف کنند، تأیید کنند یا وضعیت نشست را تغییر دهند.suggest: اجازهٔsuggest. در این مرحله همان رفتار پذیرشread-onlyرا اعمال میکند؛ صف پیشنهاد قابلیتی برای آینده است.drafts: اجازهٔdraft، که نشست را از فهرست نشستها و انتشار رویدادها برای افراد غیرمدیر و غیرمالک پنهان میکند.
تغییرات عضویت و نمایانی بهصورت یادداشتهای سیستمی در رونوشت نشست نوشته میشوند. این کنترلها اپراتورهایی را هماهنگ میکنند که یک عامل را بهاشتراک میگذارند؛ اینها مرز امنیتی میان مستأجران نیستند. وقتی کار به جداسازی نیاز دارد، از Gatewayها یا عاملهای جداگانه استفاده کنید.
پیامها
{ messages: { responsePrefix: "🦞", // یا "auto" ackReaction: "👀", ackReactionScope: "group-mentions", // group-mentions | group-all | direct | all | off | none queue: { mode: "steer", // steer (پیشفرض) | followup | collect | interrupt debounceMs: 500, cap: 20, drop: "summarize", // old | new | summarize (پیشفرض) byChannel: { whatsapp: "followup", telegram: "followup", }, }, inbound: { debounceMs: 2000, // 0 غیرفعال میکند byChannel: { whatsapp: 5000, slack: 1500, }, }, },}پیشوند پاسخ
بازنویسیهای مختص کانال/حساب: channels.<channel>.responsePrefix، channels.<channel>.accounts.<id>.responsePrefix.
ترتیب حل (مشخصترین مورد اولویت دارد): حساب ← کانال ← سراسری. "" غیرفعال میکند و زنجیره را متوقف میسازد. "auto"، [{identity.name}] را استخراج میکند.
متغیرهای الگو:
| متغیر | توضیح | نمونه |
|---|---|---|
{model} |
نام کوتاه مدل | claude-opus-4-6 |
{modelFull} |
شناسهٔ کامل مدل | anthropic/claude-opus-4-6 |
{provider} |
نام ارائهدهنده | anthropic |
{thinkingLevel} |
سطح فعلی تفکر | high، low، off |
{identity.name} |
نام هویت عامل | (همان "auto") |
متغیرها به بزرگی و کوچکی حروف حساس نیستند. {think} نام مستعار {thinkingLevel} است.
واکنش تأیید دریافت
- مقدار پیشفرض،
identity.emojiعامل فعال و در غیر این صورت"👀"است. برای غیرفعالسازی،""را تنظیم کنید. - بازنویسیهای مختص کانال:
channels.<channel>.ackReaction،channels.<channel>.accounts.<id>.ackReaction. - ترتیب حل: حساب ← کانال ←
messages.ackReaction← بازگشت به هویت. - دامنه:
group-mentions(پیشفرض)،group-all،direct،allیاoff/none(واکنشهای تأیید دریافت را کاملاً غیرفعال میکند). messages.statusReactions.enabled: واکنشهای وضعیت چرخهٔ عمر را در Slack، Discord، Signal، Telegram و WhatsApp فعال میکند. در Discord، تنظیمنشدن این گزینه باعث میشود وقتی واکنشهای تأیید دریافت فعالاند، واکنشهای وضعیت نیز فعال بمانند. در Slack، Signal، Telegram و WhatsApp، برای فعالسازی واکنشهای وضعیت چرخهٔ عمر، آن را صریحاً رویtrueتنظیم کنید. Slack بهطور پیشفرض برای نمایش پیشرفت از وضعیت بومی رشتهٔ دستیار و پیامهای بارگذاری چرخشی استفاده میکند، درحالیکه واکنش تأیید دریافت پیکربندیشده را ثابت نگه میدارد.
صف
mode: راهبرد صف برای پیامهای ورودی که هنگام فعالبودن اجرای نشست میرسند. پیشفرض:"steer".steer: درخواست جدید را به اجرای فعال تزریق میکند.followup: درخواست جدید را پس از پایان اجرای فعال اجرا میکند.collect: پیامهای سازگار را دستهبندی میکند و بعداً با هم اجرا میکند.interrupt: پیش از آغاز جدیدترین درخواست، اجرای فعال را متوقف میکند.
debounceMs: تأخیر پیش از ارسال پیام صفشده/هدایتشده. پیشفرض:500.cap: حداکثر پیامهای صفشده پیش از اعمال سیاست حذف. پیشفرض:20.drop: راهبرد هنگام عبور از سقف."summarize"(پیشفرض) قدیمیترین ورودیها را حذف میکند اما خلاصههای فشرده را نگه میدارد؛"old"قدیمیترینها را بدون خلاصه حذف میکند؛"new"جدیدترین مورد را رد میکند.byChannel: بازنویسیهای مختص کانالmodeکه با شناسهٔ ارائهدهنده کلیدگذاری شدهاند.debounceMsByChannel: بازنویسیهای مختص کانالdebounceMsکه با شناسهٔ ارائهدهنده کلیدگذاری شدهاند.
حذف پرش ورودی
پیامهای سریع و صرفاً متنی از یک فرستنده را در یک نوبت واحد عامل دستهبندی میکند. رسانه/پیوستها بلافاصله دسته را ارسال میکنند. فرمانهای کنترلی از حذف پرش عبور میکنند. مقدار پیشفرض debounceMs: 2000.
سایر کلیدهای پیام
channels.whatsapp.responsePrefix: پیشوند پاسخ خروجی WhatsApp. Doctor تنها زمانی مقدار بازنشستهٔ ورودیmessagePrefixرا به اینجا منتقل میکند که این مقدار کانونی تنظیم نشده باشد.messages.visibleReplies: پاسخهای قابلمشاهدهٔ منبع را در مکالمههای مستقیم، گروهی و کانالی کنترل میکند ("message_tool"برای خروجی قابلمشاهده بهmessage(action=send)نیاز دارد؛"automatic"مانند گذشته پاسخهای عادی را ارسال میکند).messages.usageTemplate/messages.responseUsage: الگوی سفارشی پانوشت/usageو حالت پیشفرض استفاده در هر پاسخ (off | tokens | full، بهعلاوهٔ نام مستعار قدیمیonبرایtokens).messages.groupChat.mentionPatterns/historyLimit: محرکهای اشاره در پیامهای گروهی و اندازهٔ پنجرهٔ تاریخچه.messages.suppressToolErrors: وقتیtrueباشد، هشدارهای خطای ابزار⚠️را که به کاربر نمایش داده میشوند پنهان میکند (عامل همچنان خطاها را در زمینه میبیند و میتواند دوباره تلاش کند). پیشفرض:false.
TTS (تبدیل متن به گفتار)
{ tts: { auto: "off", // off (default) | always | inbound | tagged mode: "final", // final | all provider: "elevenlabs", summaryModel: "openai/gpt-5.4-mini", modelOverrides: { enabled: true }, maxTextLength: 4000, timeoutMs: 30000, providers: { elevenlabs: { apiKey: "example-elevenlabs-api-key", baseUrl: "https://api.elevenlabs.io", speakerVoiceId: "voice_id", modelId: "eleven_multilingual_v2", seed: 42, applyTextNormalization: "auto", languageCode: "en", voiceSettings: { stability: 0.5, similarityBoost: 0.75, style: 0.0, useSpeakerBoost: true, speed: 1.0, }, }, microsoft: { speakerVoice: "en-US-MichelleNeural", lang: "en-US", outputFormat: "audio-24khz-48kbitrate-mono-mp3", }, openai: { apiKey: "example-openai-api-key", baseUrl: "https://api.openai.com/v1", model: "gpt-4o-mini-tts", speakerVoice: "coral", }, }, },}مسیر سراسری تنظیمات ترجیحی بخشی از وضعیت ماشین است (مقدار پیشفرض
~/.openclaw/settings/tts.json؛ با OPENCLAW_TTS_PREFS بازنویسی میشود). پیکربندیهای پیشرفته
چندعاملی میتوانند برای مخزنهای مجزای تنظیمات ترجیحی
هر عامل، agents.entries.<id>.tts.prefsPath را تنظیم کنند.
autoحالت پیشفرض تبدیل خودکار متن به گفتار را کنترل میکند:off،always،inboundیاtagged. /tts on|offمیتواند تنظیمات ترجیحی محلی را بازنویسی کند و/tts statusوضعیت مؤثر را نشان میدهد.summaryModelبرای خلاصهسازی خودکار،agents.defaults.model.primaryرا بازنویسی میکند.modelOverridesبهطور پیشفرض فعال است (enabled !== false)؛ استفاده ازmodelOverrides.allowProviderاختیاری است و باید صریحاً فعال شود.- کلیدهای API در صورت نبود مقدار، از
ELEVENLABS_API_KEY/XI_API_KEYوOPENAI_API_KEYاستفاده میکنند. - ارائهدهندگان گفتار همراه، تحت مالکیت Plugin هستند. اگر
plugins.allowتنظیم شده است، هر Plugin ارائهدهنده TTS را که میخواهید استفاده کنید در آن بگنجانید؛ برای مثال،microsoftبرای Edge TTS. شناسه قدیمی ارائهدهنده، یعنیedge، بهعنوان نام مستعارmicrosoftپذیرفته میشود. providers.openai.baseUrlنقطه پایانی TTS متعلق به OpenAI را بازنویسی میکند. ترتیب تفکیک ابتدا پیکربندی، سپسOPENAI_TTS_BASE_URLو پس از آنhttps://api.openai.com/v1است.- وقتی
providers.openai.baseUrlبه یک نقطه پایانی غیر OpenAI اشاره میکند، OpenClaw آن را سرور TTS سازگار با OpenAI در نظر میگیرد و اعتبارسنجی مدل/صدا را آسانگیرانهتر میکند.
مکالمه
مقادیر پیشفرض حالت مکالمه (macOS/iOS/Android و رابط کنترل مرورگر).
{ talk: { provider: "elevenlabs", providers: { elevenlabs: { speakerVoiceId: "elevenlabs_voice_id", voiceAliases: { Clawd: "EXAVITQu4vr4xnSDxMaL", Roger: "CwhRBWXzGAHq8TQ4Fs17", }, modelId: "eleven_multilingual_v2", outputFormat: "mp3_44100_128", apiKey: "elevenlabs_api_key", }, mlx: { modelId: "mlx-community/Soprano-80M-bf16", }, system: {}, }, consultThinkingLevel: "low", consultFastMode: true, speechLocale: "ru-RU", silenceTimeoutMs: 1500, interruptOnSpeech: true, realtime: { provider: "openai", providers: { openai: { model: "gpt-realtime-2.1", speakerVoice: "cedar", }, }, instructions: "Speak warmly and keep answers brief.", mode: "realtime", // realtime | stt-tts | transcription transport: "webrtc", // webrtc | provider-websocket | gateway-relay | managed-room vadThreshold: 0.5, silenceDurationMs: 500, prefixPaddingMs: 300, reasoningEffort: "medium", brain: "agent-consult", // agent-consult | direct-tools | none }, },}- وقتی چند ارائهدهنده مکالمه پیکربندی شدهاند،
talk.providerباید با یکی از کلیدهایtalk.providersمطابقت داشته باشد. - کلیدهای مسطح قدیمی مکالمه (
talk.voiceId،talk.voiceAliases،talk.modelId،talk.outputFormat،talk.apiKey) فقط برای سازگاری هستند. برای بازنویسی پیکربندی ذخیرهشده بهtalk.providers.<provider>، دستورopenclaw doctor --fixرا اجرا کنید. - شناسههای صدا در صورت نبود مقدار، از
ELEVENLABS_VOICE_IDیاSAG_VOICE_IDاستفاده میکنند (رفتار کلاینت مکالمه macOS). providers.*.apiKeyرشتههای متن ساده یا اشیای SecretRef را میپذیرد.- استفاده جایگزین از
ELEVENLABS_API_KEYفقط زمانی اعمال میشود که هیچ کلید API مکالمهای پیکربندی نشده باشد. providers.*.voiceAliasesبه دستورالعملهای مکالمه اجازه میدهد از نامهای کاربرپسند استفاده کنند.providers.mlx.modelIdمخزن Hugging Face مورد استفاده کمککننده محلی MLX در macOS را انتخاب میکند. اگر مشخص نشود، macOS ازmlx-community/Soprano-80M-bf16استفاده میکند.- پخش MLX در macOS، در صورت وجود، از طریق کمککننده همراه
openclaw-mlx-ttsیا از طریق یک فایل اجرایی موجود درPATHانجام میشود؛OPENCLAW_MLX_TTS_BINمسیر کمککننده را برای توسعه بازنویسی میکند. consultThinkingLevelسطح تفکر را برای اجرای کامل عامل OpenClaw در پسزمینه فراخوانیهایopenclaw_agent_consultمکالمه بلادرنگ رابط کنترل، تعیین میکند. برای حفظ رفتار عادی نشست/مدل، آن را تنظیمنشده بگذارید.consultFastModeیک بازنویسی یکباره حالت سریع را برای مشورتهای بلادرنگ مکالمه رابط کنترل تنظیم میکند، بدون آنکه تنظیم عادی حالت سریع نشست را تغییر دهد.speechLocaleشناسه محلی BCP 47 مورد استفاده تشخیص گفتار مکالمه در Android، iOS و macOS را تنظیم میکند. Android همچنین از مؤلفه زبان آن برای هدایت رونویسی ورودی بلادرنگ استفاده میکند. برای استفاده از مقدار پیشفرض دستگاه، آن را تنظیمنشده بگذارید.silenceTimeoutMsمدت انتظار حالت مکالمه پس از سکوت کاربر، پیش از ارسال رونوشت را کنترل میکند. تنظیمنکردن آن، بازه مکث پیشفرض پلتفرم (700 ms on macOS and Android, 900 ms on iOS) را حفظ میکند.realtime.instructionsدستورالعملهای سیستمی مختص ارائهدهنده را به اعلان بلادرنگ داخلی OpenClaw میافزاید تا سبک صدا بدون از دست دادن راهنمایی پیشفرضopenclaw_agent_consultقابل پیکربندی باشد.realtime.vadThresholdآستانه فعالیت صوتی ارائهدهنده را از0(حساسترین) تا1(کمحساسترین) تنظیم میکند. تنظیمنکردن آن، مقدار پیشفرض ارائهدهنده را حفظ میکند.realtime.silenceDurationMsبازه سکوت با عدد صحیح مثبت را پیش از ثبت نوبت بلادرنگ کاربر توسط ارائهدهنده تنظیم میکند. تنظیمنکردن آن، مقدار پیشفرض ارائهدهنده را حفظ میکند.realtime.prefixPaddingMsمقدار صوت نگهداریشده پیش از آغاز گفتار تشخیصدادهشده را بهصورت عدد صحیح نامنفی تنظیم میکند. تنظیمنکردن آن، مقدار پیشفرض ارائهدهنده را حفظ میکند.realtime.reasoningEffortسطح استدلال مختص ارائهدهنده را برای نشستهای بلادرنگ تنظیم میکند. تنظیمنکردن آن، مقدار پیشفرض ارائهدهنده را حفظ میکند.realtime.consultRouting: "provider-direct"(پیشفرض) پاسخهای مستقیم ارائهدهنده را زمانی حفظ میکند که ارائهدهنده بلادرنگ، رونوشت نهایی کاربر را بدونopenclaw_agent_consultتولید کند. در عوض،"force-agent-consult"درخواست نهاییشده را از طریق OpenClaw مسیریابی میکند.
مرتبط
- مرجع پیکربندی — همه کلیدهای پیکربندی دیگر
- پیکربندی — کارهای رایج و راهاندازی سریع
- نمونههای پیکربندی