Concepts and configuration
CLI โมเดล
การหมุนเวียนโปรไฟล์การยืนยันตัวตน ช่วงพัก และวิธีที่สิ่งนี้ทำงานร่วมกับ fallback
ภาพรวมผู้ให้บริการแบบรวดเร็วและตัวอย่าง
OpenClaw, Codex และรันไทม์ลูปของเอเจนต์อื่นๆ
คีย์การกำหนดค่าโมเดล
การอ้างอิงโมเดลจะเลือกผู้ให้บริการและโมเดล โดยปกติจะไม่เลือก runtime เอเจนต์ระดับต่ำโดยตรง การอ้างอิงเอเจนต์ OpenAI เป็นข้อยกเว้นหลัก: openai/gpt-5.5 จะทำงานผ่าน runtime app-server ของ Codex ตามค่าเริ่มต้นบนผู้ให้บริการ OpenAI อย่างเป็นทางการ การอ้างอิง Copilot แบบสมัครสมาชิก (github-copilot/*) ยังสามารถเลือกใช้ Plugin runtime เอเจนต์ GitHub Copilot ภายนอกได้ด้วย — เส้นทางนั้นยังคงต้องระบุอย่างชัดเจน (ไม่มี fallback แบบ auto) การ override runtime อย่างชัดเจนควรอยู่ในนโยบายผู้ให้บริการ/โมเดล ไม่ใช่ที่เอเจนต์หรือเซสชันทั้งหมด ในโหมด runtime ของ Codex การอ้างอิง openai/gpt-* ไม่ได้หมายถึงการคิดค่าบริการผ่าน API key; การยืนยันตัวตนอาจมาจากบัญชี Codex หรือโปรไฟล์ OAuth ของ openai ดู รันไทม์ของเอเจนต์ และ runtime เอเจนต์ GitHub Copilot
วิธีการเลือกโมเดลทำงาน
OpenClaw เลือกโมเดลตามลำดับนี้:
โมเดลหลัก
agents.defaults.model.primary (หรือ agents.defaults.model)
Fallback
agents.defaults.model.fallbacks (ตามลำดับ)
การสลับการยืนยันตัวตนของผู้ให้บริการเมื่อขัดข้อง
การสลับการยืนยันตัวตนเมื่อขัดข้องเกิดขึ้นภายในผู้ให้บริการก่อนจะย้ายไปยังโมเดลถัดไป
พื้นผิวโมเดลที่เกี่ยวข้อง
agents.defaults.modelsคือ allowlist/แคตตาล็อกของโมเดลที่ OpenClaw สามารถใช้ได้ (รวมถึง alias) ใช้รายการprovider/*เพื่อจำกัดผู้ให้บริการที่มองเห็นได้ ขณะยังคงให้การค้นหาผู้ให้บริการเป็นแบบไดนามิกagents.defaults.imageModelใช้ เฉพาะเมื่อ โมเดลหลักรับภาพไม่ได้agents.defaults.pdfModelใช้โดยเครื่องมือpdfหากละไว้ เครื่องมือจะ fallback ไปที่agents.defaults.imageModelแล้วจึงไปที่โมเดลของเซสชัน/ค่าเริ่มต้นที่ resolve แล้วagents.defaults.imageGenerationModelใช้โดยความสามารถสร้างภาพร่วมกัน หากละไว้image_generateยังสามารถอนุมานค่าเริ่มต้นของผู้ให้บริการที่มีการยืนยันตัวตนรองรับได้ โดยจะลองผู้ให้บริการค่าเริ่มต้นปัจจุบันก่อน จากนั้นลองผู้ให้บริการสร้างภาพที่ลงทะเบียนไว้ที่เหลือตามลำดับ provider-id หากคุณตั้งค่าผู้ให้บริการ/โมเดลแบบเฉพาะ ให้กำหนดค่าการยืนยันตัวตน/API key ของผู้ให้บริการนั้นด้วยagents.defaults.musicGenerationModelใช้โดยความสามารถสร้างเพลงร่วมกัน หากละไว้music_generateยังสามารถอนุมานค่าเริ่มต้นของผู้ให้บริการที่มีการยืนยันตัวตนรองรับได้ โดยจะลองผู้ให้บริการค่าเริ่มต้นปัจจุบันก่อน จากนั้นลองผู้ให้บริการสร้างเพลงที่ลงทะเบียนไว้ที่เหลือตามลำดับ provider-id หากคุณตั้งค่าผู้ให้บริการ/โมเดลแบบเฉพาะ ให้กำหนดค่าการยืนยันตัวตน/API key ของผู้ให้บริการนั้นด้วยagents.defaults.videoGenerationModelใช้โดยความสามารถสร้างวิดีโอร่วมกัน หากละไว้video_generateยังสามารถอนุมานค่าเริ่มต้นของผู้ให้บริการที่มีการยืนยันตัวตนรองรับได้ โดยจะลองผู้ให้บริการค่าเริ่มต้นปัจจุบันก่อน จากนั้นลองผู้ให้บริการสร้างวิดีโอที่ลงทะเบียนไว้ที่เหลือตามลำดับ provider-id หากคุณตั้งค่าผู้ให้บริการ/โมเดลแบบเฉพาะ ให้กำหนดค่าการยืนยันตัวตน/API key ของผู้ให้บริการนั้นด้วย- ค่าเริ่มต้นต่อเอเจนต์สามารถ override
agents.defaults.modelผ่านagents.list[].modelพร้อม binding ได้ (ดู การกำหนดเส้นทางหลายเอเจนต์)
แหล่งที่มาของการเลือกและพฤติกรรม fallback
provider/model เดียวกันอาจหมายถึงคนละอย่าง ขึ้นอยู่กับว่ามาจากที่ใด:
- ค่าเริ่มต้นที่กำหนดค่าไว้ (
agents.defaults.model.primaryและโมเดลหลักเฉพาะเอเจนต์) เป็นจุดเริ่มต้นปกติและใช้agents.defaults.model.fallbacks - การเลือก fallback อัตโนมัติเป็นสถานะกู้คืนชั่วคราว ระบบจะจัดเก็บพร้อม
modelOverrideSource: "auto"เพื่อให้ turn ถัดไปยังใช้ fallback chain ต่อได้โดยไม่ต้อง probe โมเดลหลักที่รู้ว่าใช้งานไม่ได้ทุกครั้ง; OpenClaw จะ probe โมเดลหลักเดิมอีกครั้งเป็นระยะ ล้างการเลือกอัตโนมัติเมื่อโมเดลกลับมาทำงาน และประกาศการเปลี่ยนผ่าน fallback/การกู้คืนหนึ่งครั้งต่อการเปลี่ยนสถานะ - การเลือกของเซสชันผู้ใช้เป็นแบบแน่นอน
/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/ payloadmodelคือโมเดลหลักต่อ job และยังคงใช้ fallback ที่กำหนดค่าไว้ เว้นแต่ job จะส่ง payloadfallbacksอย่างชัดเจน (ใช้fallbacks: []สำหรับการรัน cron แบบเข้มงวด) - ตัวเลือก default-model และ allowlist ของ CLI เคารพ
models.mode: "replace"โดยแสดงรายการmodels.providers.*.modelsที่ระบุไว้อย่างชัดเจนแทนการโหลดแคตตาล็อกในตัวทั้งหมด - ตัวเลือกโมเดลของ Control UI จะถาม Gateway เพื่อรับมุมมองโมเดลที่กำหนดค่าไว้: ใช้
agents.defaults.modelsเมื่อมีอยู่ รวมถึงรายการprovider/*แบบครอบคลุมผู้ให้บริการ มิฉะนั้นใช้models.providers.*.modelsที่ระบุไว้อย่างชัดเจนพร้อมผู้ให้บริการที่มีการยืนยันตัวตนใช้งานได้ แคตตาล็อกในตัวทั้งหมดสงวนไว้สำหรับมุมมองการเรียกดูอย่างชัดเจน เช่นmodels.listพร้อมview: "all"หรือopenclaw models list --all
นโยบายโมเดลแบบรวดเร็ว
- ตั้งค่าโมเดลหลักเป็นโมเดลรุ่นล่าสุดที่แข็งแกร่งที่สุดที่คุณมีสิทธิ์ใช้
- ใช้ fallback สำหรับงานที่อ่อนไหวต่อค่าใช้จ่าย/latency และแชตที่มีความเสี่ยงต่ำกว่า
- สำหรับเอเจนต์ที่เปิดใช้เครื่องมือหรืออินพุตที่ไม่น่าเชื่อถือ ให้หลีกเลี่ยงระดับโมเดลที่เก่ากว่า/อ่อนกว่า
Onboarding (แนะนำ)
หากคุณไม่ต้องการแก้ config ด้วยตนเอง ให้รัน onboarding:
openclaw onboardเครื่องมือนี้สามารถตั้งค่าโมเดล + การยืนยันตัวตนสำหรับผู้ให้บริการทั่วไป รวมถึง OpenAI Code (Codex) subscription (OAuth) และ Anthropic (API key หรือ 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(allowlist + alias + พารามิเตอร์ผู้ให้บริการ + รายการผู้ให้บริการไดนามิกprovider/*)models.providers(ผู้ให้บริการแบบกำหนดเองที่เขียนลงในmodels.json)
การแก้ allowlist อย่างปลอดภัย
ใช้การเขียนแบบเพิ่มเมื่ออัปเดต agents.defaults.models ด้วยตนเอง:
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeกฎการป้องกันการเขียนทับ
openclaw config set ปกป้อง map ของโมเดล/ผู้ให้บริการจากการเขียนทับโดยไม่ตั้งใจ การกำหนดค่า object แบบธรรมดาให้กับ agents.defaults.models, models.providers หรือ models.providers.<id>.models จะถูกปฏิเสธเมื่ออาจลบรายการที่มีอยู่ ใช้ --merge สำหรับการเปลี่ยนแปลงแบบเพิ่ม; ใช้ --replace เฉพาะเมื่อค่าที่ให้มาควรกลายเป็นค่าเป้าหมายทั้งหมด
การตั้งค่าผู้ให้บริการแบบ interactive และ openclaw configure --section model จะ merge การเลือกที่อยู่ในขอบเขตผู้ให้บริการเข้ากับ allowlist ที่มีอยู่เช่นกัน ดังนั้นการเพิ่ม Codex, Ollama หรือผู้ให้บริการอื่นจะไม่ทิ้งรายการโมเดลที่ไม่เกี่ยวข้อง Configure จะรักษา agents.defaults.model.primary ที่มีอยู่เมื่อมีการใช้การยืนยันตัวตนของผู้ให้บริการอีกครั้ง คำสั่งตั้งค่า default อย่างชัดเจน เช่น openclaw models auth login --provider <id> --set-default และ openclaw models set <model> ยังคงแทนที่ agents.defaults.model.primary
"ไม่อนุญาตให้ใช้โมเดล" (และเหตุผลที่คำตอบหยุด)
หากตั้งค่า agents.defaults.models ไว้ ค่านั้นจะกลายเป็น allowlist สำหรับ /model และสำหรับการ override เซสชัน เมื่อผู้ใช้เลือกโมเดลที่ไม่ได้อยู่ใน allowlist นั้น 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เมื่อคำสั่งที่ถูกปฏิเสธมี runtime override เช่น /model openai/gpt-5.5 --runtime codex ให้แก้ allowlist ก่อน แล้วลองคำสั่ง /model ... --runtime ... เดิมอีกครั้ง สำหรับการดำเนินการ Codex แบบ native โมเดลที่เลือกยังคงเป็น openai/gpt-5.5; runtime codex จะเลือก harness และใช้การยืนยันตัวตน Codex แยกต่างหาก
สำหรับโมเดล local/GGUF ให้จัดเก็บการอ้างอิงแบบมี provider prefix เต็มใน allowlist
เช่น ollama/gemma4:26b, lmstudio/Gemma4-26b-a4-it-gguf หรือ
provider/model ที่ตรงตามที่ openclaw models list --provider <provider> แสดง
ชื่อไฟล์ local แบบเปล่าๆ หรือชื่อแสดงผลไม่เพียงพอเมื่อ allowlist
เปิดใช้งานอยู่
หากคุณต้องการจำกัดผู้ให้บริการโดยไม่ต้องระบุทุกโมเดลด้วยตนเอง ให้เพิ่ม
รายการ provider/* ไปยัง agents.defaults.models:
{ agents: { defaults: { models: { "openai/*": {}, "vllm/*": {}, }, }, },}ด้วยนโยบายนี้ /model, /models และตัวเลือกโมเดลจะแสดงแคตตาล็อกที่ค้นพบ
สำหรับผู้ให้บริการเหล่านั้นเท่านั้น โมเดลใหม่จากผู้ให้บริการที่เลือกสามารถ
ปรากฏได้โดยไม่ต้องแก้ allowlist รายการ provider/model แบบ exact สามารถผสม
กับรายการ provider/* ได้เมื่อคุณต้องการโมเดลเฉพาะหนึ่งรายการจากผู้ให้บริการอื่น
ตัวอย่างการกำหนดค่า allowlist:
{ 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จะเปิดตัวเลือกแบบ interactive พร้อม dropdown ผู้ให้บริการและโมเดล รวมถึงขั้นตอน Submit - บน Telegram การเลือกในตัวเลือก
/modelsจะอยู่ในขอบเขตเซสชัน; การเลือกเหล่านี้จะไม่เปลี่ยนค่าเริ่มต้นถาวรของเอเจนต์ในopenclaw.json /models addถูกเลิกใช้แล้ว และตอนนี้จะส่งคืนข้อความเลิกใช้แทนการลงทะเบียนโมเดลจากแชต/model <#>เลือกจากตัวเลือกนั้น
การคงอยู่และการสลับแบบสด
/modelจะคงการเลือกเซสชันใหม่ทันที- หาก agent ว่างอยู่ การรันครั้งถัดไปจะใช้โมเดลใหม่ทันที
- หากมีการรันทำงานอยู่แล้ว OpenClaw จะทำเครื่องหมายการสลับแบบสดเป็นรายการที่รอดำเนินการ และจะรีสตาร์ตเข้าสู่โมเดลใหม่เฉพาะที่จุดลองใหม่ที่สะอาดเท่านั้น
- หากกิจกรรมของเครื่องมือหรือเอาต์พุตคำตอบเริ่มไปแล้ว การสลับที่รอดำเนินการอาจยังคงอยู่ในคิวจนกว่าจะมีโอกาสลองใหม่ภายหลังหรือถึงเทิร์นถัดไปของผู้ใช้
/model defaultจะล้างการเลือกของเซสชันและคืนเซสชันไปยังโมเดลเริ่มต้นที่กำหนดค่าไว้- ref
/modelที่ผู้ใช้เลือกจะเข้มงวดสำหรับเซสชันนั้น: หาก provider/model ที่เลือกเข้าถึงไม่ได้ คำตอบจะล้มเหลวให้เห็นอย่างชัดเจนแทนที่จะตอบแบบเงียบ ๆ จากagents.defaults.model.fallbacksซึ่งต่างจากค่าเริ่มต้นที่กำหนดค่าไว้และรายการหลักของงาน cron ที่ยังสามารถใช้เชน fallback ได้ /model statusคือมุมมองแบบละเอียด (ตัวเลือก auth และเมื่อกำหนดค่าไว้ จะแสดง endpointbaseUrlของ provider + โหมดapi)
การแยกวิเคราะห์ ref
- ref ของโมเดลจะถูกแยกวิเคราะห์โดยแบ่งที่
/ตัว แรก ใช้provider/modelเมื่อพิมพ์/model <ref> - หาก ID ของโมเดลมี
/อยู่ในตัวเอง (สไตล์ OpenRouter) คุณต้องใส่ prefix ของ provider (ตัวอย่าง:/model openrouter/moonshotai/kimi-k2) - หากคุณละ provider ไว้ OpenClaw จะ resolve อินพุตตามลำดับนี้:
- ตรงกับ alias
- ตรงกับ provider ที่กำหนดค่าไว้แบบไม่ซ้ำสำหรับ model id แบบไม่มี prefix นั้นพอดี
- fallback ที่เลิกใช้แล้วไปยัง provider เริ่มต้นที่กำหนดค่าไว้ — หาก provider นั้นไม่ได้เปิดเผยโมเดลเริ่มต้นที่กำหนดค่าไว้อีกต่อไป OpenClaw จะ fallback ไปยัง provider/model แรกที่กำหนดค่าไว้แทน เพื่อหลีกเลี่ยงการแสดงค่าเริ่มต้นของ provider ที่ถูกลบซึ่งล้าสมัย
พฤติกรรม/การกำหนดค่าคำสั่งฉบับเต็ม: คำสั่ง Slash
คำสั่ง 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
แสดงโมเดลที่กำหนดค่าไว้/พร้อมใช้งานด้วย auth โดยค่าเริ่มต้น แฟล็กที่มีประโยชน์:
--allbooleanแค็ตตาล็อกเต็ม รวมแถวแค็ตตาล็อกแบบสแตติกที่ provider แบบ bundled เป็นเจ้าของก่อนที่จะกำหนดค่า auth ดังนั้นมุมมองสำหรับการค้นพบเท่านั้นจึงสามารถแสดงโมเดลที่ยังไม่พร้อมใช้งานจนกว่าคุณจะเพิ่มข้อมูลรับรองของ provider ที่ตรงกัน
--localbooleanเฉพาะ provider ภายในเครื่องเท่านั้น
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk
" type="string">
กรองตาม ID ของ provider เช่น moonshot ไม่ยอมรับป้ายกำกับที่แสดงจากตัวเลือกแบบโต้ตอบ
--plainbooleanหนึ่งโมเดลต่อหนึ่งบรรทัด
--jsonbooleanเอาต์พุตที่เครื่องอ่านได้
models status
แสดงโมเดลหลักที่ resolve แล้ว, fallback, โมเดลภาพ และภาพรวม auth ของ provider ที่กำหนดค่าไว้ นอกจากนี้ยังแสดงสถานะการหมดอายุของ OAuth สำหรับโปรไฟล์ที่พบในที่เก็บ auth (โดยค่าเริ่มต้นจะเตือนภายใน 24 ชั่วโมง) --plain จะพิมพ์เฉพาะโมเดลหลักที่ resolve แล้ว
พฤติกรรม auth และ probe
- สถานะ OAuth จะแสดงเสมอ (และรวมอยู่ในเอาต์พุต
--json) หาก provider ที่กำหนดค่าไว้ไม่มีข้อมูลรับรองmodels statusจะพิมพ์ส่วน Missing auth - JSON มี
auth.oauth(หน้าต่างเตือน + โปรไฟล์) และauth.providers(auth ที่มีผลต่อ provider แต่ละราย รวมถึงข้อมูลรับรองที่อิง env)auth.oauthเป็นเฉพาะสุขภาพของโปรไฟล์ในที่เก็บ auth เท่านั้น; provider ที่มีเฉพาะ env จะไม่ปรากฏที่นั่น - ใช้
--checkสำหรับ automation (ออกด้วย1เมื่อขาดหาย/หมดอายุ,2เมื่อใกล้หมดอายุ) - ใช้
--probeสำหรับการตรวจสอบ auth แบบสด; แถว probe อาจมาจากโปรไฟล์ auth, ข้อมูลรับรอง env หรือmodels.json - หาก
auth.order.<provider>ที่ระบุชัดเจนละโปรไฟล์ที่จัดเก็บไว้ probe จะรายงานexcluded_by_auth_orderแทนที่จะลองใช้โปรไฟล์นั้น หากมี auth อยู่แต่ไม่สามารถ resolve โมเดลที่ probe ได้สำหรับ provider นั้น probe จะรายงานstatus: no_model
ตัวอย่าง (Claude CLI):
claude auth loginopenclaw models statusการสแกน (โมเดลฟรีของ OpenRouter)
openclaw models scan ตรวจสอบ แค็ตตาล็อกโมเดลฟรี ของ OpenRouter และสามารถ probe โมเดลสำหรับการรองรับเครื่องมือและภาพได้ตามต้องการ
--no-probebooleanข้าม probe แบบสด (เฉพาะ metadata)
"--min-params"--max-age-days"--provider"--max-candidates--set-defaultbooleanตั้งค่า agents.defaults.model.primary เป็นตัวเลือกแรก
--set-imagebooleanตั้งค่า agents.defaults.imageModel.primary เป็นตัวเลือกภาพแรก
ผลลัพธ์การสแกนจัดอันดับตาม:
- การรองรับภาพ
- เวลาแฝงของเครื่องมือ
- ขนาด context
- จำนวนพารามิเตอร์
อินพุต:
- รายการ
/modelsของ OpenRouter (ตัวกรอง:free) - probe แบบสดต้องใช้ API key ของ OpenRouter จากโปรไฟล์ auth หรือ
OPENROUTER_API_KEY(ดู ตัวแปรสภาพแวดล้อม) - ตัวกรองเสริม:
--max-age-days,--min-params,--provider,--max-candidates - การควบคุม request/probe:
--timeout,--concurrency
เมื่อ probe แบบสดทำงานใน TTY คุณสามารถเลือก fallback แบบโต้ตอบได้ ในโหมดไม่โต้ตอบ ให้ส่ง --yes เพื่อยอมรับค่าเริ่มต้น ผลลัพธ์เฉพาะ metadata มีไว้เพื่อให้ข้อมูล; --set-default และ --set-image ต้องใช้ probe แบบสด เพื่อให้ OpenClaw ไม่กำหนดค่าโมเดล OpenRouter ที่ไม่มี key และใช้งานไม่ได้
รีจิสทรีโมเดล (models.json)
provider แบบกำหนดเองใน models.providers จะถูกเขียนลงใน models.json ใต้ไดเรกทอรี agent (ค่าเริ่มต้น ~/.openclaw/agents/<agentId>/agent/models.json) แค็ตตาล็อกของ provider-plugin จะถูกจัดเก็บเป็น shard แค็ตตาล็อกที่สร้างขึ้นและเป็นของ Plugin ใต้สถานะ Plugin ของ agent และโหลดโดยอัตโนมัติ ไฟล์นี้จะถูก merge โดยค่าเริ่มต้น เว้นแต่ models.mode จะถูกตั้งค่าเป็น replace
ลำดับความสำคัญของโหมด merge
ลำดับความสำคัญของโหมด merge สำหรับ ID provider ที่ตรงกัน:
baseUrlที่ไม่ว่างซึ่งมีอยู่แล้วในmodels.jsonของ agent จะชนะapiKeyที่ไม่ว่างในmodels.jsonของ agent จะชนะเฉพาะเมื่อ provider นั้นไม่ได้ถูกจัดการโดย SecretRef ใน context config/auth-profile ปัจจุบัน- ค่า
apiKeyของ provider ที่จัดการโดย SecretRef จะถูกรีเฟรชจาก marker ต้นทาง (ENV_VAR_NAMEสำหรับ env refs,secretref-managedสำหรับ file/exec refs) แทนที่จะคง secret ที่ resolve แล้ว - ค่า header ของ provider ที่จัดการโดย SecretRef จะถูกรีเฟรชจาก marker ต้นทาง (
secretref-env:ENV_VAR_NAMEสำหรับ env refs,secretref-managedสำหรับ file/exec refs) apiKey/baseUrlของ agent ที่ว่างหรือขาดหายจะ fallback ไปยัง configmodels.providers- ฟิลด์ provider อื่น ๆ จะถูกรีเฟรชจาก config และข้อมูลแค็ตตาล็อกที่ normalize แล้ว
ที่เกี่ยวข้อง
- runtime ของ agent — OpenClaw, Codex และ runtime ลูป agent อื่น ๆ
- อ้างอิงการกำหนดค่า — key การกำหนดค่าโมเดล
- การสร้างภาพ — การกำหนดค่าโมเดลภาพ
- failover ของโมเดล — เชน fallback
- provider ของโมเดล — การกำหนดเส้นทาง provider และ auth
- การสร้างเพลง — การกำหนดค่าโมเดลเพลง
- การสร้างวิดีโอ — การกำหนดค่าโมเดลวิดีโอ