Concepts and configuration
مدلهای CLI
چرخش پروفایل احراز هویت، دورههای خنکسازی، و نحوه تعامل آن با جایگزینها.
مرور سریع ارائهدهنده و نمونهها.
OpenClaw، Codex، و دیگر زماناجراهای حلقه عامل.
کلیدهای پیکربندی مدل.
ارجاعهای مدل یک ارائهدهنده و مدل را انتخاب میکنند. آنها معمولا زماناجرای سطحپایین عامل را انتخاب نمیکنند. ارجاعهای عامل OpenAI استثنای اصلی هستند: openai/gpt-5.5 بهطور پیشفرض روی ارائهدهنده رسمی OpenAI از طریق زماناجرای سرور برنامه Codex اجرا میشود. ارجاعهای اشتراکی Copilot (github-copilot/*) علاوه بر این میتوانند به Plugin زماناجرای عامل خارجی GitHub Copilot وارد شوند — آن مسیر صریح باقی میماند (بدون جایگزین auto). بازنویسیهای صریح زماناجرا به سیاست ارائهدهنده/مدل تعلق دارند، نه به کل عامل یا نشست. در حالت زماناجرای Codex، ارجاع openai/gpt-* به معنای صورتحسابگیری کلید API نیست؛ احراز هویت میتواند از یک حساب Codex یا پروفایل OAuth openai بیاید. زماناجراهای عامل و زماناجرای عامل GitHub Copilot را ببینید.
انتخاب مدل چگونه کار میکند
OpenClaw مدلها را به این ترتیب انتخاب میکند:
مدل اصلی
agents.defaults.model.primary (یا agents.defaults.model).
جایگزینها
agents.defaults.model.fallbacks (بهترتیب).
جایگزینی خودکار احراز هویت ارائهدهنده
جایگزینی خودکار احراز هویت پیش از رفتن به مدل بعدی، داخل یک ارائهدهنده رخ میدهد.
سطوح مرتبط با مدل
agents.defaults.modelsفهرست مجاز/کاتالوگ مدلهایی است که OpenClaw میتواند استفاده کند (بهعلاوه نامهای مستعار). از ورودیهایprovider/*برای محدود کردن ارائهدهندگان قابلمشاهده استفاده کنید، در حالی که کشف ارائهدهنده پویا میماند.agents.defaults.imageModelفقط زمانی استفاده میشود که مدل اصلی نتواند تصویرها را بپذیرد.agents.defaults.pdfModelتوسط ابزارpdfاستفاده میشود. اگر حذف شود، ابزار ابتدا بهagents.defaults.imageModelو سپس به مدل حلشده نشست/پیشفرض برمیگردد.agents.defaults.imageGenerationModelتوسط قابلیت مشترک تولید تصویر استفاده میشود. اگر حذف شود،image_generateهمچنان میتواند یک پیشفرض ارائهدهنده دارای احراز هویت را استنباط کند. ابتدا ارائهدهنده پیشفرض فعلی را امتحان میکند، سپس ارائهدهندگان ثبتشده باقیمانده تولید تصویر را بهترتیب شناسه ارائهدهنده. اگر ارائهدهنده/مدل مشخصی تنظیم میکنید، احراز هویت/کلید API آن ارائهدهنده را هم پیکربندی کنید.agents.defaults.musicGenerationModelتوسط قابلیت مشترک تولید موسیقی استفاده میشود. اگر حذف شود،music_generateهمچنان میتواند یک پیشفرض ارائهدهنده دارای احراز هویت را استنباط کند. ابتدا ارائهدهنده پیشفرض فعلی را امتحان میکند، سپس ارائهدهندگان ثبتشده باقیمانده تولید موسیقی را بهترتیب شناسه ارائهدهنده. اگر ارائهدهنده/مدل مشخصی تنظیم میکنید، احراز هویت/کلید API آن ارائهدهنده را هم پیکربندی کنید.agents.defaults.videoGenerationModelتوسط قابلیت مشترک تولید ویدئو استفاده میشود. اگر حذف شود،video_generateهمچنان میتواند یک پیشفرض ارائهدهنده دارای احراز هویت را استنباط کند. ابتدا ارائهدهنده پیشفرض فعلی را امتحان میکند، سپس ارائهدهندگان ثبتشده باقیمانده تولید ویدئو را بهترتیب شناسه ارائهدهنده. اگر ارائهدهنده/مدل مشخصی تنظیم میکنید، احراز هویت/کلید API آن ارائهدهنده را هم پیکربندی کنید.- پیشفرضهای هر عامل میتوانند
agents.defaults.modelرا از طریقagents.list[].modelبههمراه اتصالها بازنویسی کنند (مسیریابی چندعاملی را ببینید).
منبع انتخاب و رفتار جایگزین
یک provider/model یکسان میتواند بسته به اینکه از کجا آمده، معنای متفاوتی داشته باشد:
- پیشفرضهای پیکربندیشده (
agents.defaults.model.primaryو مدلهای اصلی ویژه عامل) نقطه شروع عادی هستند و ازagents.defaults.model.fallbacksاستفاده میکنند. - انتخابهای جایگزین خودکار وضعیت بازیابی موقت هستند. آنها با
modelOverrideSource: "auto"ذخیره میشوند تا نوبتهای بعدی بتوانند بدون آزمودن هر باره یک مدل اصلی شناختهشده معیوب، همچنان از زنجیره جایگزین استفاده کنند؛ OpenClaw بهصورت دورهای مدل اصلی اولیه را دوباره میآزماید، پس از بازیابی انتخاب خودکار را پاک میکند، و گذارهای جایگزینی/بازیابی را یک بار بهازای هر تغییر وضعیت اعلام میکند. - انتخابهای نشست کاربر دقیق هستند.
/model، انتخابگر مدل،session_status(model=...)، وsessions.patchمقدارmodelOverrideSource: "user"را ذخیره میکنند؛ اگر آن ارائهدهنده/مدل انتخابشده در دسترس نباشد، OpenClaw بهجای عبور به مدل پیکربندیشده دیگر، بهصورت قابلمشاهده شکست میخورد. - تغییر
agents.defaults.model.primaryانتخابهای نشست موجود را بازنویسی نمیکند. اگر وضعیت میگویدThis session is pinned to X; config primary Y will apply to new/unpinned sessions.، انتخاب نشست فعلی را با/model defaultپاک کنید تا دوباره مدل اصلی پیکربندیشده را به ارث ببرد. - Cron
--model/ محمولهmodelیک مدل اصلی برای هر کار است. همچنان از جایگزینهای پیکربندیشده استفاده میکند مگر اینکه کار، محموله صریحfallbacksرا فراهم کند (برای اجرای سختگیرانه cron ازfallbacks: []استفاده کنید). - انتخابگرهای مدل پیشفرض CLI و فهرست مجاز با فهرست کردن
models.providers.*.modelsصریح بهجای بارگذاری کاتالوگ داخلی کامل، بهmodels.mode: "replace"احترام میگذارند. - انتخابگر مدل Control UI از Gateway نمای مدل پیکربندیشدهاش را میخواهد: در صورت وجود،
agents.defaults.models، شامل ورودیهای سراسری ارائهدهندهprovider/*، وگرنهmodels.providers.*.modelsصریح بهعلاوه ارائهدهندگانی با احراز هویت قابلاستفاده. کاتالوگ داخلی کامل برای نماهای مرور صریح مانندmodels.listباview: "all"یاopenclaw models list --allرزرو شده است.
سیاست سریع مدل
- مدل اصلی خود را روی قویترین مدل نسل جدیدی که در دسترس شماست تنظیم کنید.
- برای کارهای حساس به هزینه/تأخیر و گفتوگوی کمریسکتر، از جایگزینها استفاده کنید.
- برای عاملهای دارای ابزار یا ورودیهای نامطمئن، از ردههای مدل قدیمیتر/ضعیفتر پرهیز کنید.
راهاندازی اولیه (توصیهشده)
اگر نمیخواهید پیکربندی را دستی ویرایش کنید، راهاندازی اولیه را اجرا کنید:
openclaw onboardاین میتواند مدل + احراز هویت را برای ارائهدهندگان رایج تنظیم کند، از جمله اشتراک OpenAI Code (Codex) (OAuth) و Anthropic (کلید API یا Claude CLI).
کلیدهای پیکربندی (مرور کلی)
agents.defaults.model.primaryوagents.defaults.model.fallbacksagents.defaults.imageModel.primaryوagents.defaults.imageModel.fallbacksagents.defaults.pdfModel.primaryوagents.defaults.pdfModel.fallbacksagents.defaults.imageGenerationModel.primaryوagents.defaults.imageGenerationModel.fallbacksagents.defaults.videoGenerationModel.primaryوagents.defaults.videoGenerationModel.fallbacksagents.defaults.models(فهرست مجاز + نامهای مستعار + پارامترهای ارائهدهنده + ورودیهای ارائهدهنده پویایprovider/*)models.providers(ارائهدهندگان سفارشی نوشتهشده درmodels.json)
ویرایشهای ایمن فهرست مجاز
هنگام بهروزرسانی دستی agents.defaults.models از نوشتنهای افزایشی استفاده کنید:
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeقواعد محافظت در برابر بازنویسی ناخواسته
openclaw config set از نگاشتهای مدل/ارائهدهنده در برابر بازنویسی ناخواسته محافظت میکند. انتساب یک شیء ساده به agents.defaults.models، models.providers، یا models.providers.<id>.models وقتی باعث حذف ورودیهای موجود شود رد میشود. برای تغییرات افزایشی از --merge استفاده کنید؛ فقط زمانی از --replace استفاده کنید که مقدار ارائهشده باید به مقدار کامل هدف تبدیل شود.
راهاندازی تعاملی ارائهدهنده و openclaw configure --section model نیز انتخابهای محدود به ارائهدهنده را در فهرست مجاز موجود ادغام میکنند، بنابراین افزودن Codex، Ollama، یا ارائهدهندهای دیگر، ورودیهای مدل نامرتبط را حذف نمیکند. Configure هنگام اعمال دوباره احراز هویت ارائهدهنده، agents.defaults.model.primary موجود را حفظ میکند. فرمانهای صریح تنظیم پیشفرض مانند openclaw models auth login --provider <id> --set-default و openclaw models set <model> همچنان agents.defaults.model.primary را جایگزین میکنند.
«مدل مجاز نیست» (و چرا پاسخها متوقف میشوند)
اگر agents.defaults.models تنظیم شده باشد، برای /model و بازنویسیهای نشست به فهرست مجاز تبدیل میشود. وقتی کاربر مدلی را انتخاب میکند که در آن فهرست مجاز نیست، OpenClaw برمیگرداند:
Model "provider/model" is not allowed. Use /models to list providers, or /models <provider> to list models.Add it with: openclaw config set agents.defaults.models '{"provider/model":{}}' --strict-json --mergeوقتی فرمان ردشده شامل یک بازنویسی زماناجرا مانند /model openai/gpt-5.5 --runtime codex بود، ابتدا فهرست مجاز را اصلاح کنید، سپس همان فرمان /model ... --runtime ... را دوباره امتحان کنید. برای اجرای بومی Codex، مدل انتخابشده همچنان openai/gpt-5.5 است؛ زماناجرای codex مهار را انتخاب میکند و جداگانه از احراز هویت Codex استفاده میکند.
برای مدلهای محلی/GGUF، ارجاع کامل دارای پیشوند ارائهدهنده را در فهرست مجاز ذخیره کنید،
برای مثال ollama/gemma4:26b، lmstudio/Gemma4-26b-a4-it-gguf، یا
provider/model دقیقی که openclaw models list --provider <provider> نشان میدهد.
نام فایلهای محلی خام یا نامهای نمایشی وقتی فهرست مجاز فعال است کافی نیستند.
اگر میخواهید ارائهدهندگان را بدون فهرست کردن دستی همه مدلها محدود کنید،
ورودیهای provider/* را به agents.defaults.models اضافه کنید:
{ agents: { defaults: { models: { "openai/*": {}, "vllm/*": {}, }, }, },}با آن سیاست، /model، /models، و انتخابگرهای مدل فقط کاتالوگ کشفشده
برای آن ارائهدهندگان را نشان میدهند. مدلهای جدید از ارائهدهندگان انتخابشده میتوانند
بدون ویرایش فهرست مجاز ظاهر شوند. وقتی به یک مدل مشخص از ارائهدهندهای دیگر نیاز دارید،
ورودیهای دقیق provider/model را میتوان با ورودیهای provider/* ترکیب کرد.
نمونه پیکربندی فهرست مجاز:
{ agents: { defaults: { model: { primary: "anthropic/claude-sonnet-4-6" }, models: { "anthropic/claude-sonnet-4-6": { alias: "Sonnet" }, "anthropic/claude-opus-4-6": { alias: "Opus" }, }, }, },}تغییر مدلها در گفتوگو (/model)
میتوانید مدلها را برای نشست فعلی بدون راهاندازی مجدد تغییر دهید:
/model/model list/model 3/model openai/gpt-5.4/model default/model statusرفتار انتخابگر
/model(و/model list) یک انتخابگر فشرده و شمارهدار است (خانواده مدل + ارائهدهندگان موجود).- در Discord،
/modelو/modelsیک انتخابگر تعاملی با فهرستهای کشویی ارائهدهنده و مدل بههمراه مرحله Submit باز میکنند. - در Telegram، انتخابهای انتخابگر
/modelsمحدود به نشست هستند؛ آنها پیشفرض پایدار عامل را درopenclaw.jsonتغییر نمیدهند. /models addمنسوخ شده و اکنون بهجای ثبت مدلها از گفتوگو، یک پیام منسوخشدن برمیگرداند./model <#>از آن انتخابگر انتخاب میکند.
پایداری و جابهجایی زنده
/modelانتخاب نشست جدید را بلافاصله پایدار میکند.- اگر عامل بیکار باشد، اجرای بعدی فوراً از مدل جدید استفاده میکند.
- اگر اجرایی از قبل فعال باشد، OpenClaw یک جابهجایی زنده را بهصورت در انتظار علامتگذاری میکند و فقط در یک نقطهٔ تلاش مجدد تمیز، با مدل جدید دوباره شروع میکند.
- اگر فعالیت ابزار یا خروجی پاسخ از قبل شروع شده باشد، جابهجایی در انتظار میتواند تا فرصت تلاش مجدد بعدی یا نوبت کاربر بعدی در صف بماند.
/model defaultانتخاب نشست را پاک میکند و نشست را به مدل پیشفرض پیکربندیشده برمیگرداند.- ارجاع
/modelانتخابشده توسط کاربر برای آن نشست سختگیرانه است: اگر ارائهدهنده/مدل انتخابشده در دسترس نباشد، پاسخ بهصورت آشکار شکست میخورد و بهجای آن بیصدا ازagents.defaults.model.fallbacksپاسخ نمیدهد. این با پیشفرضهای پیکربندیشده و مدلهای اصلی کارهای cron متفاوت است، که همچنان میتوانند از زنجیرههای جایگزین استفاده کنند. /model statusنمای جزئیات است (نامزدهای احراز هویت و، هنگام پیکربندی، نقطهٔ پایانی ارائهدهندهbaseUrl+ حالتapi).
تجزیهٔ ارجاع
- ارجاعهای مدل با تقسیم بر اساس اولین
/تجزیه میشوند. هنگام نوشتن/model <ref>ازprovider/modelاستفاده کنید. - اگر خود شناسهٔ مدل شامل
/باشد (به سبک OpenRouter)، باید پیشوند ارائهدهنده را وارد کنید (مثال:/model openrouter/moonshotai/kimi-k2). - اگر ارائهدهنده را حذف کنید، OpenClaw ورودی را به این ترتیب حل میکند:
- تطبیق نام مستعار
- تطبیق یکتای ارائهدهندهٔ پیکربندیشده برای همان شناسهٔ مدل دقیقاً بدون پیشوند
- بازگشت منسوخ به ارائهدهندهٔ پیشفرض پیکربندیشده — اگر آن ارائهدهنده دیگر مدل پیشفرض پیکربندیشده را عرضه نکند، OpenClaw در عوض برای جلوگیری از نمایش پیشفرض کهنهٔ ارائهدهندهٔ حذفشده، به اولین ارائهدهنده/مدل پیکربندیشده بازمیگردد.
رفتار/پیکربندی کامل فرمان: فرمانهای اسلش.
فرمانهای CLI
openclaw models listopenclaw models statusopenclaw models set <provider/model>openclaw models set-image <provider/model> openclaw models aliases listopenclaw models aliases add <alias> <provider/model>openclaw models aliases remove <alias> openclaw models fallbacks listopenclaw models fallbacks add <provider/model>openclaw models fallbacks remove <provider/model>openclaw models fallbacks clear openclaw models image-fallbacks listopenclaw models image-fallbacks add <provider/model>openclaw models image-fallbacks remove <provider/model>openclaw models image-fallbacks clearopenclaw models (بدون زیرفرمان) میانبری برای models status است.
models list
بهطور پیشفرض مدلهای پیکربندیشده/در دسترس از نظر احراز هویت را نشان میدهد. پرچمهای مفید:
--allbooleanکاتالوگ کامل. شامل ردیفهای کاتالوگ ایستای متعلق به ارائهدهندهٔ همراه پیش از پیکربندی احراز هویت است، بنابراین نماهای فقط کشف میتوانند مدلهایی را نشان دهند که تا وقتی اعتبارنامههای ارائهدهندهٔ منطبق را اضافه نکنید در دسترس نیستند.
--localbooleanفقط ارائهدهندههای محلی.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk
" type="string">
فیلتر بر اساس شناسهٔ ارائهدهنده، برای مثال moonshot. برچسبهای نمایشی از انتخابگرهای تعاملی پذیرفته نمیشوند.
--plainbooleanهر خط یک مدل.
--jsonbooleanخروجی قابل خواندن توسط ماشین.
models status
مدل اصلی حلشده، جایگزینها، مدل تصویر، و نمای کلی احراز هویت ارائهدهندههای پیکربندیشده را نشان میدهد. همچنین وضعیت انقضای OAuth را برای پروفایلهای یافتشده در مخزن احراز هویت نمایش میدهد (بهطور پیشفرض در ۲۴ ساعت پایانی هشدار میدهد). --plain فقط مدل اصلی حلشده را چاپ میکند.
رفتار احراز هویت و کاوش
- وضعیت OAuth همیشه نشان داده میشود (و در خروجی
--jsonگنجانده میشود). اگر یک ارائهدهندهٔ پیکربندیشده اعتبارنامه نداشته باشد،models statusبخش احراز هویت مفقود را چاپ میکند. - JSON شامل
auth.oauth(پنجرهٔ هشدار + پروفایلها) وauth.providers(احراز هویت مؤثر برای هر ارائهدهنده، از جمله اعتبارنامههای مبتنی بر env) است.auth.oauthفقط سلامت پروفایل مخزن احراز هویت است؛ ارائهدهندههای فقط env در آن ظاهر نمیشوند. - برای اتوماسیون از
--checkاستفاده کنید (کد خروج1هنگام مفقود/منقضی،2هنگام نزدیک به انقضا). - برای بررسیهای زندهٔ احراز هویت از
--probeاستفاده کنید؛ ردیفهای کاوش میتوانند از پروفایلهای احراز هویت، اعتبارنامههای env، یاmodels.jsonبیایند. - اگر
auth.order.<provider>صریح یک پروفایل ذخیرهشده را حذف کند، کاوش بهجای امتحان کردن آن،excluded_by_auth_orderگزارش میکند. اگر احراز هویت وجود داشته باشد اما هیچ مدل قابل کاوشی برای آن ارائهدهنده حل نشود، کاوشstatus: no_modelگزارش میکند.
مثال (Claude CLI):
claude auth loginopenclaw models statusاسکن (مدلهای رایگان OpenRouter)
openclaw models scan کاتالوگ مدلهای رایگان OpenRouter را بررسی میکند و میتواند بهصورت اختیاری مدلها را برای پشتیبانی از ابزار و تصویر کاوش کند.
--no-probebooleanرد کردن کاوشهای زنده (فقط فراداده).
"--min-params"--max-age-days"--provider"--max-candidates--set-defaultbooleanتنظیم agents.defaults.model.primary روی اولین انتخاب.
--set-imagebooleanتنظیم agents.defaults.imageModel.primary روی اولین انتخاب تصویر.
نتایج اسکن بر اساس این موارد رتبهبندی میشوند:
- پشتیبانی از تصویر
- تأخیر ابزار
- اندازهٔ زمینه
- تعداد پارامترها
ورودی:
- فهرست
/modelsOpenRouter (فیلتر:free) - کاوشهای زنده به کلید API OpenRouter از پروفایلهای احراز هویت یا
OPENROUTER_API_KEYنیاز دارند (به متغیرهای محیطی مراجعه کنید) - فیلترهای اختیاری:
--max-age-days،--min-params،--provider،--max-candidates - کنترلهای درخواست/کاوش:
--timeout،--concurrency
وقتی کاوشهای زنده در TUI اجرا شوند، میتوانید جایگزینها را بهصورت تعاملی انتخاب کنید. در حالت غیرتعاملی، برای پذیرش پیشفرضها --yes را پاس دهید. نتایج فقط فراداده جنبهٔ اطلاعرسانی دارند؛ --set-default و --set-image به کاوشهای زنده نیاز دارند تا OpenClaw یک مدل OpenRouter بدون کلید و غیرقابل استفاده را پیکربندی نکند.
رجیستری مدلها (models.json)
ارائهدهندههای سفارشی در models.providers در models.json زیر پوشهٔ عامل نوشته میشوند (پیشفرض ~/.openclaw/agents/<agentId>/agent/models.json). کاتالوگهای provider-plugin بهصورت shardهای کاتالوگ تولیدشده و متعلق به Plugin زیر وضعیت Plugin عامل ذخیره میشوند و بهطور خودکار بارگذاری میشوند. این فایل بهطور پیشفرض ادغام میشود مگر اینکه models.mode روی replace تنظیم شده باشد.
اولویت حالت ادغام
اولویت حالت ادغام برای شناسههای ارائهدهندهٔ منطبق:
baseUrlغیرخالی که از قبل درmodels.jsonعامل وجود دارد برنده میشود.apiKeyغیرخالی درmodels.jsonعامل فقط وقتی برنده میشود که آن ارائهدهنده در زمینهٔ فعلی پیکربندی/پروفایل احراز هویت تحت مدیریت SecretRef نباشد.- مقادیر
apiKeyارائهدهندهٔ تحت مدیریت SecretRef بهجای پایدار کردن رازهای حلشده، از نشانگرهای منبع (ENV_VAR_NAMEبرای ارجاعهای env،secretref-managedبرای ارجاعهای file/exec) نوسازی میشوند. - مقادیر سرآیند ارائهدهندهٔ تحت مدیریت SecretRef از نشانگرهای منبع (
secretref-env:ENV_VAR_NAMEبرای ارجاعهای env،secretref-managedبرای ارجاعهای file/exec) نوسازی میشوند. apiKey/baseUrlخالی یا مفقود عامل بهmodels.providersپیکربندی بازمیگردد.- سایر فیلدهای ارائهدهنده از پیکربندی و دادهٔ کاتالوگ نرمالسازیشده نوسازی میشوند.
مرتبط
- زمانهای اجرای عامل — OpenClaw، Codex، و دیگر زمانهای اجرای حلقهٔ عامل
- مرجع پیکربندی — کلیدهای پیکربندی مدل
- تولید تصویر — پیکربندی مدل تصویر
- جابهجایی خودکار مدل — زنجیرههای جایگزین
- ارائهدهندههای مدل — مسیریابی ارائهدهنده و احراز هویت
- تولید موسیقی — پیکربندی مدل موسیقی
- تولید ویدئو — پیکربندی مدل ویدئو