---
read_when:
    - การเปลี่ยนพฤติกรรมการใช้โมเดลสำรองหรือประสบการณ์ผู้ใช้ในการเลือกโมเดล
    - การแก้ไขข้อบกพร่อง "ไม่อนุญาตให้ใช้โมเดล" หรือการย้อนกลับไปใช้ผู้ให้บริการเริ่มต้นที่ล้าสมัย
    - การทำงานเกี่ยวกับพฤติกรรมการผสาน/ข้อมูลลับของ models.json
sidebarTitle: Models CLI
summary: วิธีที่ OpenClaw แก้ไขการอ้างอิงผู้ให้บริการ/โมเดล คีย์การกำหนดค่า และคำสั่งแชต `/model`
title: CLI สำหรับโมเดล
x-i18n:
    generated_at: "2026-07-20T16:02:31Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 357d3f248eed4369ae475f6f632ba256c43fba982b2d94640b3c2f87c95ea54c
    source_path: concepts/models.md
    workflow: 16
---

<CardGroup cols={2}>
  <Card title="การสลับโมเดลเมื่อขัดข้อง" href="/th/concepts/model-failover">
    การหมุนเวียนโปรไฟล์การยืนยันตัวตน ช่วงพักการใช้งาน และการทำงานร่วมกับโมเดลสำรอง
  </Card>
  <Card title="ผู้ให้บริการโมเดล" href="/th/concepts/model-providers">
    ภาพรวมผู้ให้บริการและตัวอย่างแบบย่อ
  </Card>
  <Card title="เอกสารอ้างอิง CLI สำหรับโมเดล" href="/th/cli/models">
    เอกสารอ้างอิงคำสั่งและแฟล็ก `openclaw models` ฉบับเต็ม
  </Card>
  <Card title="เอกสารอ้างอิงการกำหนดค่า" href="/th/gateway/config-agents#agent-defaults">
    คีย์การกำหนดค่าโมเดล ค่าเริ่มต้น และตัวอย่าง
  </Card>
</CardGroup>

การอ้างอิงโมเดล (`provider/model`) จะเลือกผู้ให้บริการและโมเดล ไม่ใช่รันไทม์
เอเจนต์ระดับล่าง เมื่อไม่ได้ตั้งค่านโยบายรันไทม์หรือตั้งเป็น `auto` นโยบาย
เส้นทางที่ผู้ให้บริการของ OpenAI เป็นเจ้าของอาจเลือก Codex เฉพาะสำหรับเส้นทาง
Responses ของ HTTPS Platform อย่างเป็นทางการหรือเส้นทาง ChatGPT Responses ที่ตรงกันทุกประการ
และไม่มีการเขียนค่าลบล้างคำขอไว้ โดยคำนำหน้า `openai/*` เพียงอย่างเดียวจะไม่เลือก
Codex ส่วนอะแดปเตอร์ Completions, เอนด์พอยต์แบบกำหนดเอง และพฤติกรรมคำขอที่เขียนกำหนดไว้
จะยังคงทำงานบน OpenClaw เอนด์พอยต์ HTTP แบบข้อความธรรมดาที่เป็นทางการจะถูกปฏิเสธ
ดู [รันไทม์เอเจนต์โดยนัยของ OpenAI](/th/providers/openai#implicit-agent-runtime)

การอ้างอิง Copilot แบบสมัครสมาชิก (`github-copilot/*`) สามารถเลือกใช้ Plugin รันไทม์
เอเจนต์ GitHub Copilot ภายนอกได้ แต่เส้นทางดังกล่าวจะต้องระบุอย่างชัดเจนเสมอ
(จะไม่ถูกเลือกโดย `auto`) การลบล้างรันไทม์ต้องอยู่ในนโยบายผู้ให้บริการ/โมเดล
ไม่ใช่กับทั้งเอเจนต์หรือเซสชัน การเลือกรันไทม์ไม่ได้กำหนดการเรียกเก็บเงิน:
ข้อมูลประจำตัวคีย์ API ของ OpenAI และข้อมูลประจำตัวการสมัครสมาชิก ChatGPT/Codex
ยังคงแยกจากกัน ดู [รันไทม์เอเจนต์](/th/concepts/agent-runtimes) และ
[รันไทม์เอเจนต์ GitHub Copilot](/th/plugins/copilot)

## ลำดับการเลือก

<Steps>
  <Step title="โมเดลหลัก">
    `agents.defaults.model.primary` (หรือ `agents.defaults.model` ในรูปแบบสตริงธรรมดา)
  </Step>
  <Step title="โมเดลสำรอง">
    `agents.defaults.model.fallbacks` โดยจะลองตามลำดับ
  </Step>
  <Step title="การสลับการยืนยันตัวตนเมื่อขัดข้อง">
    การหมุนเวียนโปรไฟล์การยืนยันตัวตนจะเกิดขึ้นภายในผู้ให้บริการก่อนที่ OpenClaw จะย้ายไปยังโมเดลสำรองถัดไป
  </Step>
</Steps>

พื้นผิวการกำหนดค่าโมเดลที่เกี่ยวข้อง:

- `agents.defaults.models` จัดเก็บนามแฝงและการตั้งค่ารายโมเดล การเพิ่มรายการไม่ได้จำกัดการลบล้างโมเดล
- `agents.defaults.modelPolicy.allow` คือรายการอนุญาตสำหรับการลบล้างที่ไม่บังคับ ใช้การอ้างอิงที่ตรงกันทุกประการหรืออักขระตัวแทนคำนำหน้าที่ลงท้าย เช่น `provider/*` และ `provider/namespace/*`; ละไว้หรือตั้งเป็น `[]` เพื่ออนุญาตทุกโมเดล `agents.list[].modelPolicy.allow` รายเอเจนต์จะแทนที่นโยบายเริ่มต้นสำหรับเอเจนต์นั้น
- `agents.defaults.utilityModel` คือโมเดลต้นทุนต่ำกว่าที่ไม่บังคับสำหรับงานภายในระยะสั้น เช่น ชื่อเซสชันแดชบอร์ดที่สร้างขึ้น ชื่อเธรด/หัวข้อของช่องทางที่รองรับ และคำบรรยายความคืบหน้า `agents.list[].utilityModel` รายเอเจนต์จะลบล้างค่านี้ เมื่อไม่ได้ตั้งค่า OpenClaw จะใช้ค่าเริ่มต้นของโมเดลขนาดเล็กที่ผู้ให้บริการหลักประกาศไว้เมื่อมี (OpenAI → `gpt-5.6-luna`, Anthropic → `claude-haiku-4-5`) มิฉะนั้นจะใช้โมเดลหลักของเอเจนต์; ตั้งเป็นสตริงว่างเพื่อปิดใช้การกำหนดเส้นทางยูทิลิตี ชื่อที่สร้างขึ้นจะลองใหม่หนึ่งครั้งด้วยโมเดลหลักเมื่อโมเดลยูทิลิตีที่แยกต่างหากล้มเหลว สำหรับชื่อแดชบอร์ด การอนุมานยูทิลิตีอัตโนมัติและการใช้โมเดลสำรองตามปกติจะเป็นไปตามผู้ให้บริการและโปรไฟล์การยืนยันตัวตนที่มีผลกับเซสชัน ส่วนโมเดลยูทิลิตีที่ระบุอย่างชัดเจนจะคงผู้ให้บริการ/การยืนยันตัวตนที่กำหนดค่าไว้ โมเดลยูทิลิตีที่เป็นค่าว่างจะข้ามเฉพาะเส้นทางโมเดลขนาดเล็กทางเลือก ไม่ได้ข้ามการสร้างชื่อแดชบอร์ด งานยูทิลิตีเป็นการเรียกโมเดลแยกต่างหากและอาจส่งเนื้อหางานที่มีขอบเขตจำกัดไปยังผู้ให้บริการโมเดลที่เลือก
- `agents.defaults.imageModel` ใช้เฉพาะเมื่อโมเดลหลักไม่สามารถรับรูปภาพได้
- `agents.defaults.pdfModel` ใช้โดยเครื่องมือ `pdf` หากไม่ได้ตั้งค่า เครื่องมือจะใช้ `imageModel` เป็นตัวสำรอง จากนั้นจึงใช้โมเดลเซสชัน/ค่าเริ่มต้นที่ได้รับการแก้ไขแล้ว
- `agents.defaults.imageGenerationModel`, `musicGenerationModel` และ `videoGenerationModel` รองรับเครื่องมือสร้างสื่อที่ใช้ร่วมกัน หากไม่ได้ตั้งค่า แต่ละเครื่องมือจะอนุมานค่าเริ่มต้นของผู้ให้บริการที่มีการยืนยันตัวตนรองรับ โดยเริ่มจากผู้ให้บริการเริ่มต้นปัจจุบัน จากนั้นจึงเป็นผู้ให้บริการที่ลงทะเบียนที่เหลือสำหรับความสามารถนั้นตามลำดับรหัสผู้ให้บริการ ตั้ง `agents.defaults.mediaGenerationAutoProviderFallback: false` เพื่อปิดใช้การอนุมานข้ามผู้ให้บริการดังกล่าวโดยยังคงใช้โมเดลสำรองที่ระบุไว้อย่างชัดเจน
- `agents.list[].model` รายเอเจนต์ (รวมถึงการผูก) จะลบล้าง `agents.defaults.model` — ดู [การกำหนดเส้นทางหลายเอเจนต์](/th/concepts/multi-agent)

เอกสารอ้างอิงคีย์ ค่าเริ่มต้น และตัวอย่าง JSON5 ฉบับเต็ม: [เอกสารอ้างอิงการกำหนดค่า](/th/gateway/config-agents#agent-defaults)

## แหล่งที่มาของการเลือกและความเข้มงวดของโมเดลสำรอง

`provider/model` เดียวกันจะทำงานแตกต่างกันตามแหล่งที่มา:

| แหล่งที่มา                                                                  | พฤติกรรม                                                                                                                                                                                                                                                       |
| ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ค่าเริ่มต้นที่กำหนดค่าไว้ (`agents.defaults.model.primary`, โมเดลหลักรายเอเจนต์) | จุดเริ่มต้นตามปกติ; ใช้ `agents.defaults.model.fallbacks`                                                                                                                                                                                                 |
| โมเดลสำรองอัตโนมัติ                                                           | สถานะการกู้คืนชั่วคราว ซึ่งจัดเก็บเป็น `modelOverrideSource: "auto"` OpenClaw จะตรวจสอบโมเดลหลักเดิมซ้ำเป็นระยะ ล้างการเลือกอัตโนมัติเมื่อกู้คืนได้ และประกาศการเปลี่ยนผ่านไปยังโมเดลสำรอง/การกู้คืนหนึ่งครั้งต่อการเปลี่ยนสถานะ                              |
| การเลือกในเซสชันของผู้ใช้                                                  | ตรงกันทุกประการและเข้มงวด `/model`, ตัวเลือกโมเดล, `session_status(model=...)` และ `sessions.patch` จะจัดเก็บ `modelOverrideSource: "user"` หากไม่สามารถเข้าถึงผู้ให้บริการ/โมเดลดังกล่าวได้ การทำงานจะล้มเหลวอย่างเห็นได้ชัดแทนที่จะไหลต่อไปยังโมเดลอื่นที่กำหนดค่าไว้ |
| Cron `--model` / เพย์โหลด `model`                                        | โมเดลหลักรายงาน ยังคงใช้โมเดลสำรองที่กำหนดค่าไว้ เว้นแต่งานจะระบุเพย์โหลด `fallbacks` ของตนเอง (`fallbacks: []` บังคับให้ทำงานแบบเข้มงวด)                                                                                                                    |

กฎการเลือกอื่นๆ:

- การเปลี่ยน `agents.defaults.model.primary` จะไม่เขียนทับการตรึงเซสชันที่มีอยู่ หากสถานะรายงาน `This session is pinned to X; config primary Y will apply to new/unpinned sessions.` ให้เรียกใช้ `/model default` เพื่อล้างการตรึง
- ตัวเลือกโมเดลเริ่มต้นและรายการอนุญาตของ CLI จะเคารพ `models.mode: "replace"` โดยแสดงเฉพาะ `models.providers.*.models` แทนแค็ตตาล็อกในตัวทั้งหมด
- ตัวเลือกโมเดลใน Control UI จะขอมุมมองโมเดลที่กำหนดค่าไว้จาก Gateway `modelPolicy.allow` ที่ระบุอย่างชัดเจนจะกรองมุมมองนี้ รวมถึงรายการอักขระตัวแทนคำนำหน้าที่ลงท้าย มิฉะนั้นจะแสดงโมเดลที่กำหนดค่าไว้พร้อมผู้ให้บริการที่มีการยืนยันตัวตนซึ่งใช้งานได้ แค็ตตาล็อกในตัวทั้งหมดสงวนไว้สำหรับมุมมองเรียกดูที่ระบุอย่างชัดเจน (`models.list` พร้อม `view: "all"` หรือ `openclaw models list --all`)
- UI คลังผู้ให้บริการใช้ `models.list` พร้อม `view: "provider-config"` เพื่อแสดงแถว `models.providers.*.models` ที่แหล่งข้อมูลเป็นผู้เขียน โดยไม่ใช้รายการอนุญาตของตัวเลือก

กลไกฉบับเต็ม: [การสลับโมเดลเมื่อขัดข้อง](/th/concepts/model-failover)

## นโยบายโมเดลแบบย่อ

- ตั้งโมเดลหลักเป็นโมเดลรุ่นล่าสุดที่มีประสิทธิภาพสูงสุดซึ่งพร้อมใช้งานสำหรับคุณ
- ใช้โมเดลสำรองสำหรับงานที่คำนึงถึงต้นทุน/เวลาแฝงและการแชตที่มีความเสี่ยงต่ำกว่า
- สำหรับเอเจนต์ที่เปิดใช้เครื่องมือหรืออินพุตที่ไม่น่าเชื่อถือ ให้หลีกเลี่ยงโมเดลระดับเก่ากว่า/อ่อนกว่า

## การเริ่มต้นใช้งาน

```bash
openclaw onboard
```

ตั้งค่าโมเดลและการยืนยันตัวตนสำหรับผู้ให้บริการทั่วไปโดยไม่ต้องแก้ไขการกำหนดค่าด้วยตนเอง รวมถึง OAuth สำหรับการสมัครสมาชิก OpenAI Codex และ Anthropic (คีย์ API หรือใช้ Claude CLI ซ้ำ)

เมื่อไม่ได้กำหนดค่าโมเดลหลัก การตั้งค่าคีย์ API ของ OpenAI ใหม่จะเลือก
`openai/gpt-5.6`; รหัส API โดยตรงแบบเปล่าจะได้รับการแก้ไขเป็นระดับ Sol การตั้งค่า
OAuth ของ ChatGPT/Codex ใหม่จะเลือกการอ้างอิงแค็ตตาล็อก `openai/gpt-5.6-sol` ที่ตรงกันทุกประการ
การยืนยันตัวตนซ้ำจะคงโมเดลหลักที่ระบุอย่างชัดเจนไว้ รวมถึง
`openai/gpt-5.5` หากบัญชีไม่สามารถใช้ GPT-5.6 ได้ ให้เลือก
`openai/gpt-5.5` อย่างชัดเจน; OpenClaw จะไม่ลดระดับให้โดยไม่แจ้ง

## "ไม่อนุญาตให้ใช้โมเดล" (และเหตุใดการตอบกลับจึงหยุดลง)

หาก `agents.defaults.modelPolicy.allow` ไม่ว่าง ค่านี้จะกลายเป็นรายการอนุญาตสำหรับ `/model`, การลบล้างเซสชัน และ `--model` การเลือกโมเดลนอกเหนือจากรายการอนุญาตดังกล่าวจะส่งคืนก่อนที่จะสร้างการตอบกลับตามปกติ `agents.list[].modelPolicy.allow` รายเอเจนต์จะแทนที่นโยบายเริ่มต้นสำหรับเอเจนต์นั้น

```text
รายการอนุญาต agents.defaults.modelPolicy.allow ไม่อนุญาตการลบล้างโมเดล "provider/model"
เพิ่ม "provider/model", "provider/*" หรือคำนำหน้า "provider/namespace/*" ที่แคบกว่าลงใน agents.defaults.modelPolicy.allow หรือลบ/ทำรายการให้ว่างเพื่ออนุญาตทุกโมเดล
```

แก้ไขโดยเพิ่มโมเดลหรืออักขระตัวแทนผู้ให้บริการลงในคีย์ `modelPolicy.allow` ที่ระบุ ลบ/ทำรายการนั้นให้ว่าง หรือเลือกโมเดลจาก `/model list` หากคำสั่งที่ถูกปฏิเสธมีการลบล้างรันไทม์ เช่น `/model openai/gpt-5.5 --runtime codex` ให้แก้ไขรายการอนุญาตก่อน แล้วลองคำสั่งเดิมอีกครั้ง

สำหรับโมเดลภายในเครื่อง/GGUF รายการอนุญาตต้องมีการอ้างอิงแบบเต็มที่มีคำนำหน้าผู้ให้บริการ เช่น `ollama/gemma4:26b` หรือ `lmstudio/Gemma4-26b-a4-it-gguf` — ตรวจสอบสตริงที่ตรงกันทุกประการใน `openclaw models list --provider <provider>` เมื่อรายการอนุญาตทำงานแล้ว ชื่อไฟล์แบบเปล่าหรือชื่อที่แสดงเพียงอย่างเดียวไม่เพียงพอ

หากต้องการจำกัดผู้ให้บริการโดยไม่ต้องระบุทุกโมเดล ให้ใช้รายการอักขระตัวแทนคำนำหน้าที่ลงท้าย `provider/*` ซึ่งครอบคลุมทั้งผู้ให้บริการจะตรงกับทุกโมเดลภายใต้ผู้ให้บริการนั้น ส่วนคำนำหน้าที่แคบกว่า เช่น `clawrouter/anthropic/*` จะตรงกับเนมสเปซนั้นเท่านั้น:

```json5
{
  agents: {
    defaults: {
      modelPolicy: {
        allow: ["openai/*", "vllm/*"],
      },
    },
  },
}
```

จากนั้น `/model`, `/models` และตัวเลือกโมเดลจะแสดงแค็ตตาล็อกที่ค้นพบสำหรับผู้ให้บริการเหล่านั้นเท่านั้น และโมเดลใหม่สามารถปรากฏขึ้นได้โดยไม่ต้องแก้ไขรายการอนุญาต ผสมรายการ `provider/model` ที่ตรงกันทุกประการกับรายการ `provider/*` เพื่อรวมโมเดลเฉพาะหนึ่งรายการจากผู้ให้บริการรายอื่น

ตัวอย่างรายการอนุญาตพร้อมนามแฝงและการตั้งค่ารายโมเดล:

```json5
{
  agents: {
    defaults: {
      model: { primary: "anthropic/claude-sonnet-4-6" },
      modelPolicy: {
        allow: ["anthropic/claude-sonnet-4-6", "anthropic/claude-opus-4-6"],
      },
      models: {
        "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
        "anthropic/claude-opus-4-6": { alias: "Opus" },
      },
    },
  },
}
```

<Accordion title="แก้ไขรายการอนุญาตอย่างชัดเจน">
ตั้งค่ารายการทั้งหมดโดยตรง:

```bash
openclaw config set agents.defaults.modelPolicy.allow '["openai/gpt-5.4","anthropic/*"]' --strict-json
```

`openclaw models set`, การตั้งค่าผู้ให้บริการ และ `openclaw models aliases add` สามารถเพิ่มรายการภายใต้ `agents.defaults.models` ได้ แต่จะไม่เปลี่ยน `modelPolicy.allow` การทำเช่นนี้ช่วยให้ข้อมูลเมตาและนามแฝงของโมเดลเป็นอิสระจากนโยบายการลบล้าง
</Accordion>

## `/model` ในแชต

```text
/model
/model list
/model 3
/model openai/gpt-5.4
/model default
/model status
```

- `/model` และ `/model list` จะแสดงตัวเลือกแบบมีหมายเลขขนาดกะทัดรัด (ตระกูลโมเดล + ผู้ให้บริการที่พร้อมใช้งาน) ส่วน `/model <#>` ใช้เลือกจากรายการนี้ ใน Discord ระบบจะเปิดเมนูแบบเลื่อนลงสำหรับผู้ให้บริการ/โมเดล พร้อมขั้นตอน Submit ส่วนใน Telegram การเลือกจากตัวเลือกจะมีขอบเขตเฉพาะเซสชัน และจะไม่เขียนทับค่าเริ่มต้นถาวรของเอเจนต์ใน `openclaw.json` โดยเด็ดขาด `/models add` เลิกใช้แล้ว และจะส่งข้อความตอบกลับแทนการลงทะเบียนโมเดลจากแชต
- `/model` จะบันทึกการเลือกใหม่ของเซสชันทันที หากเอเจนต์ไม่มีงาน การเรียกใช้ครั้งถัดไปจะใช้ค่านั้นทันที แต่หากมีการเรียกใช้ที่กำลังทำงานอยู่ การสลับจะถูกจัดคิวไว้สำหรับจุดลองใหม่ที่สะอาดถัดไป (หรือจุดหลังจากนั้น หากกิจกรรมของเครื่องมือหรือการส่งคำตอบเริ่มต้นไปแล้ว)
- `/model default` จะล้างการเลือกของเซสชัน เพื่อให้กลับไปรับค่าหลักที่กำหนดไว้อีกครั้ง
- การอ้างอิง `/model` ที่ผู้ใช้เลือกจะมีผลอย่างเคร่งครัดสำหรับเซสชันนั้น หากไม่สามารถเข้าถึงได้ การตอบกลับจะล้มเหลวอย่างชัดเจน แทนที่จะใช้ `agents.defaults.model.fallbacks` เป็นทางเลือกสำรองโดยไม่แจ้งให้ทราบ ค่าเริ่มต้นที่กำหนดไว้และโมเดลหลักของงาน Cron จะยังคงใช้ลำดับทางเลือกสำรอง
- `/model status` คือมุมมองโดยละเอียด ซึ่งแสดงตัวเลือกการยืนยันตัวตนของผู้ให้บริการแต่ละราย และเมื่อมีการกำหนดค่า จะแสดงปลายทางของผู้ให้บริการ `baseUrl` พร้อมโหมด `api`
- การอ้างอิงโมเดลจะถูกแยกวิเคราะห์โดยแบ่งที่ `/` ตัวแรก ให้พิมพ์ `provider/model` หาก ID โมเดลมี `/` อยู่ภายใน (รูปแบบ OpenRouter) ให้ใส่คำนำหน้าผู้ให้บริการด้วย เช่น `/model openrouter/moonshotai/kimi-k2` หากละเว้นผู้ให้บริการ OpenClaw จะลองตามลำดับดังนี้: (1) จับคู่นามแฝง (2) จับคู่กับผู้ให้บริการที่กำหนดค่าไว้เพียงรายเดียวสำหรับ ID โมเดลแบบไม่มีคำนำหน้าที่ตรงกันทุกประการ (3) ใช้ผู้ให้บริการเริ่มต้นที่กำหนดไว้ (ทางเลือกสำรองที่เลิกใช้แล้ว) และหากผู้ให้บริการนั้นไม่ให้บริการโมเดลเริ่มต้นที่กำหนดไว้อีกต่อไป ระบบจะใช้ผู้ให้บริการ/โมเดลคู่แรกที่กำหนดค่าไว้แทน เพื่อหลีกเลี่ยงการแสดงค่าเริ่มต้นเก่าของผู้ให้บริการที่ถูกนำออกแล้ว
- การอ้างอิงโมเดลจะถูกปรับให้เป็นตัวพิมพ์เล็ก ส่วน ID ผู้ให้บริการต้องตรงตามที่ระบุทุกประการ ดังนั้นให้ใช้ ID ที่ Plugin ประกาศ

ลักษณะการทำงานของคำสั่งและการกำหนดค่าทั้งหมด: [คำสั่งเครื่องหมายทับ](/th/tools/slash-commands)

## CLI

```bash
openclaw models status
openclaw models list
openclaw models set <provider/model>
openclaw models set-image <provider/model>
openclaw models scan
openclaw models aliases list|add|remove
openclaw models fallbacks list|add|remove|clear
openclaw models image-fallbacks list|add|remove|clear
openclaw models auth list|add|login|paste-api-key|paste-token|setup-token|order
```

`openclaw models` ที่ไม่มีคำสั่งย่อยเป็นทางลัดสำหรับ `models status` ซึ่งจะแสดงวันหมดอายุของ OAuth สำหรับโปรไฟล์ในที่เก็บข้อมูลการยืนยันตัวตนด้วย (โดยค่าเริ่มต้นจะแจ้งเตือนภายใน 24h) แฟล็กทั้งหมด โครงสร้าง JSON และคำสั่งย่อยของโปรไฟล์การยืนยันตัวตน: [เอกสารอ้างอิง Models CLI](/th/cli/models)

<AccordionGroup>
  <Accordion title="การสแกน (โมเดลฟรีของ OpenRouter)">
    `openclaw models scan` จะตรวจสอบแค็ตตาล็อกโมเดลฟรีสาธารณะของ OpenRouter และสามารถทดสอบตัวเลือกแบบสดเพื่อดูการรองรับเครื่องมือและรูปภาพได้ ตัวแค็ตตาล็อกเป็นข้อมูลสาธารณะ ดังนั้นการสแกนเฉพาะข้อมูลเมตา (`--no-probe`) จึงไม่ต้องใช้คีย์ แต่การทดสอบแบบสด รวมถึง `--set-default`/`--set-image` ต้องใช้ API key ของ OpenRouter (โปรไฟล์การยืนยันตัวตนหรือ `OPENROUTER_API_KEY`) และหากไม่มีคีย์ ระบบจะปิดการทำงานอย่างปลอดภัยโดยแสดงผลลัพธ์เฉพาะข้อมูลเมตา

    ผลลัพธ์จะจัดอันดับตามลำดับดังนี้: การรองรับรูปภาพ จากนั้นเวลาแฝงของเครื่องมือ จากนั้นขนาดบริบท และจำนวนพารามิเตอร์ ใน TTY ผลลัพธ์ที่ผ่านการทดสอบจะแสดงข้อความให้เลือกทางเลือกสำรองแบบโต้ตอบ ส่วนโหมดไม่โต้ตอบต้องใช้ `--yes` เพื่อยอมรับค่าเริ่มต้น

  </Accordion>
</AccordionGroup>

## รีจิสทรีโมเดล (`models.json`)

ผู้ให้บริการแบบกำหนดเองที่กำหนดค่าภายใต้ `models.providers` จะถูกเขียนลงใน `models.json` ภายในไดเรกทอรีของเอเจนต์ (ค่าเริ่มต้นคือ `~/.openclaw/agents/<agentId>/agent/models.json`) แค็ตตาล็อก Plugin ของผู้ให้บริการจะถูกจัดเก็บแยกกันเป็นส่วนย่อยแค็ตตาล็อกที่สร้างขึ้นและ Plugin เป็นเจ้าของ โดยจะโหลดโดยอัตโนมัติ ตามค่าเริ่มต้น ไฟล์นี้จะถูกรวมกับการกำหนดค่า ให้ตั้งค่า `models.mode: "replace"` เพื่อใช้เฉพาะผู้ให้บริการที่กำหนดค่าไว้

<AccordionGroup>
  <Accordion title="ลำดับความสำคัญของโหมดรวม">
    สำหรับ ID ผู้ให้บริการที่ตรงกัน:

    - `baseUrl` ที่ไม่ว่างและมีอยู่แล้วใน `models.json` ของเอเจนต์จะมีลำดับความสำคัญสูงกว่า
    - `apiKey` ที่ไม่ว่างใน `models.json` จะมีลำดับความสำคัญสูงกว่าเฉพาะเมื่อผู้ให้บริการนั้นไม่ได้รับการจัดการด้วย SecretRef ในบริบทการกำหนดค่า/โปรไฟล์การยืนยันตัวตนปัจจุบัน
    - ค่า `apiKey` ที่จัดการด้วย SecretRef จะรีเฟรชจากเครื่องหมายแหล่งที่มาแทนการบันทึกข้อมูลลับที่แก้ค่าแล้ว ได้แก่ ชื่อตัวแปรสภาพแวดล้อมสำหรับการอ้างอิง env และ `secretref-managed` สำหรับการอ้างอิง file/exec
    - ค่าของส่วนหัวที่จัดการด้วย SecretRef จะรีเฟรชในลักษณะเดียวกัน โดยใช้ `secretref-env:ENV_VAR_NAME` สำหรับการอ้างอิง env
    - `apiKey`/`baseUrl` ที่ว่างหรือไม่มีอยู่ใน `models.json` จะใช้ `models.providers` จากการกำหนดค่าเป็นทางเลือกสำรอง
    - ฟิลด์อื่นของผู้ให้บริการจะรีเฟรชจากการกำหนดค่าและข้อมูลแค็ตตาล็อกที่ปรับมาตรฐานแล้ว

  </Accordion>
</AccordionGroup>

การบันทึกเครื่องหมายยึดแหล่งที่มาเป็นข้อมูลหลัก: OpenClaw จะเขียนเครื่องหมายจากสแนปช็อตการกำหนดค่าแหล่งที่มาที่ใช้งานอยู่ (ก่อนการแก้ค่า) ไม่ใช่จากค่าข้อมูลลับของรันไทม์ที่แก้ค่าแล้ว ทุกครั้งที่สร้าง `models.json` ใหม่ รวมถึงเส้นทางที่ขับเคลื่อนด้วยคำสั่ง เช่น `openclaw agent`

## ที่เกี่ยวข้อง

- [รันไทม์ของเอเจนต์](/th/concepts/agent-runtimes) — OpenClaw, Codex และรันไทม์ลูปเอเจนต์อื่นๆ
- [เอกสารอ้างอิงการกำหนดค่า](/th/gateway/config-agents#agent-defaults) — คีย์การกำหนดค่าโมเดล
- [การสร้างรูปภาพ](/th/tools/image-generation) — การกำหนดค่าโมเดลรูปภาพ
- [การสลับไปใช้โมเดลสำรอง](/th/concepts/model-failover) — ลำดับทางเลือกสำรอง
- [ผู้ให้บริการโมเดล](/th/concepts/model-providers) — การกำหนดเส้นทางผู้ให้บริการและการยืนยันตัวตน
- [เอกสารอ้างอิง Models CLI](/th/cli/models) — เอกสารอ้างอิงคำสั่งและแฟล็กทั้งหมด
- [การสร้างเพลง](/th/tools/music-generation) — การกำหนดค่าโมเดลเพลง
- [การสร้างวิดีโอ](/th/tools/video-generation) — การกำหนดค่าโมเดลวิดีโอ
