Providers
LM Studio
LM Studio เป็นแอปที่ใช้ง่ายแต่ทรงพลังสำหรับรันโมเดลแบบ open-weight บนฮาร์ดแวร์ของคุณเอง ช่วยให้คุณรันโมเดล llama.cpp (GGUF) หรือ MLX (Apple Silicon) ได้ มีให้ใช้งานทั้งแบบแพ็กเกจ GUI หรือเดมอนแบบไม่มีหน้าจอ (llmster) สำหรับเอกสารผลิตภัณฑ์และการตั้งค่า โปรดดู lmstudio.ai
เริ่มต้นอย่างรวดเร็ว
- ติดตั้ง LM Studio (เดสก์ท็อป) หรือ
llmster(ไม่มีหน้าจอ) แล้วเริ่มเซิร์ฟเวอร์ในเครื่อง:
curl -fsSL https://lmstudio.ai/install.sh | bash- เริ่มเซิร์ฟเวอร์
ตรวจสอบให้แน่ใจว่าคุณเริ่มแอปเดสก์ท็อป หรือรันเดมอนโดยใช้คำสั่งต่อไปนี้:
lms daemon uplms server start --port 1234หากคุณใช้แอป ตรวจสอบให้แน่ใจว่าเปิดใช้งาน JIT เพื่อให้ใช้งานได้ลื่นไหล เรียนรู้เพิ่มเติมใน คู่มือ LM Studio JIT และ TTL
- หากเปิดใช้งานการยืนยันตัวตนของ LM Studio ให้ตั้งค่า
LM_API_TOKEN:
export LM_API_TOKEN="your-lm-studio-api-token"หากปิดใช้งานการยืนยันตัวตนของ LM Studio คุณสามารถเว้นคีย์ API ว่างไว้ระหว่างการตั้งค่า OpenClaw แบบโต้ตอบได้
สำหรับรายละเอียดการตั้งค่าการยืนยันตัวตนของ LM Studio โปรดดู การยืนยันตัวตนของ LM Studio
- รันการเริ่มใช้งานและเลือก
LM Studio:
openclaw onboard- ในการเริ่มใช้งาน ให้ใช้พรอมป์
Default modelเพื่อเลือกโมเดล LM Studio ของคุณ
คุณยังสามารถตั้งค่าหรือเปลี่ยนภายหลังได้:
openclaw models set lmstudio/qwen/qwen3.5-9bคีย์โมเดลของ LM Studio ใช้รูปแบบ author/model-name (เช่น qwen/qwen3.5-9b) การอ้างอิงโมเดลของ OpenClaw
จะเติมชื่อผู้ให้บริการไว้ข้างหน้า: lmstudio/qwen/qwen3.5-9b คุณสามารถค้นหาคีย์ที่แน่นอนของ
โมเดลได้โดยรัน curl http://localhost:1234/api/v1/models แล้วดูที่ฟิลด์ key
การเริ่มใช้งานแบบไม่โต้ตอบ
ใช้การเริ่มใช้งานแบบไม่โต้ตอบเมื่อคุณต้องการเขียนสคริปต์สำหรับการตั้งค่า (CI, การจัดเตรียมระบบ, การบูตสแตรประยะไกล):
openclaw onboard \ --non-interactive \ --accept-risk \ --auth-choice lmstudioหรือระบุ URL ฐาน, โมเดล และคีย์ API เสริม:
openclaw onboard \ --non-interactive \ --accept-risk \ --auth-choice lmstudio \ --custom-base-url http://localhost:1234/v1 \ --lmstudio-api-key "$LM_API_TOKEN" \ --custom-model-id qwen/qwen3.5-9b--custom-model-id รับคีย์โมเดลตามที่ LM Studio ส่งคืน (เช่น qwen/qwen3.5-9b) โดยไม่รวม
คำนำหน้าผู้ให้บริการ lmstudio/
สำหรับเซิร์ฟเวอร์ LM Studio ที่ต้องยืนยันตัวตน ให้ส่ง --lmstudio-api-key หรือตั้งค่า LM_API_TOKEN
สำหรับเซิร์ฟเวอร์ LM Studio ที่ไม่ต้องยืนยันตัวตน ให้ละคีย์ไว้ OpenClaw จะจัดเก็บตัวทำเครื่องหมายในเครื่องที่ไม่ใช่ความลับ
--custom-api-key ยังคงรองรับเพื่อความเข้ากันได้ แต่แนะนำให้ใช้ --lmstudio-api-key สำหรับ LM Studio
คำสั่งนี้จะเขียน models.providers.lmstudio และตั้งค่าโมเดลเริ่มต้นเป็น
lmstudio/<custom-model-id> เมื่อคุณระบุคีย์ API การตั้งค่าจะเขียนโปรไฟล์การยืนยันตัวตน
lmstudio:default ด้วย
การตั้งค่าแบบโต้ตอบสามารถถามความยาวบริบทการโหลดที่ต้องการแบบไม่บังคับ และนำไปใช้กับโมเดล LM Studio ที่ค้นพบซึ่งบันทึกลงใน config
config ของ Plugin LM Studio เชื่อถือ endpoint ของ LM Studio ที่กำหนดค่าไว้สำหรับคำขอโมเดล รวมถึง loopback, LAN และโฮสต์ tailnet ต้นทางแบบ metadata/link-local ยังคงต้องเลือกใช้อย่างชัดเจน คุณสามารถเลือกไม่ใช้ได้โดยตั้งค่า models.providers.lmstudio.request.allowPrivateNetwork: false
การกำหนดค่า
ความเข้ากันได้ของการใช้งานแบบสตรีมมิง
LM Studio เข้ากันได้กับการใช้งานแบบสตรีมมิง เมื่อไม่ได้ส่งออบเจ็กต์
usage ที่มีรูปแบบแบบ OpenAI ออกมา OpenClaw จะกู้จำนวนโทเค็นจากเมตาดาต้าแบบ llama.cpp
timings.prompt_n / timings.predicted_n แทน
พฤติกรรมการใช้งานแบบสตรีมมิงเดียวกันนี้ใช้กับแบ็กเอนด์ในเครื่องที่เข้ากันได้กับ OpenAI เหล่านี้:
- vLLM
- SGLang
- llama.cpp
- LocalAI
- Jan
- TabbyAPI
- text-generation-webui
ความเข้ากันได้ของการคิด
เมื่อการค้นพบ /api/v1/models ของ LM Studio รายงานตัวเลือกการใช้เหตุผลเฉพาะโมเดล
OpenClaw จะแสดงค่า reasoning_effort ที่เข้ากันได้กับ OpenAI ที่ตรงกัน
ในเมตาดาต้าความเข้ากันได้ของโมเดล บิลด์ LM Studio ปัจจุบันสามารถประกาศตัวเลือก UI แบบไบนารี
เช่น allowed_options: ["off", "on"] แต่ปฏิเสธค่าเหล่านั้น
บน /v1/chat/completions; OpenClaw จะปรับรูปแบบการค้นพบแบบไบนารีนั้นให้เป็น
none, minimal, low, medium, high และ xhigh ก่อนส่งคำขอ
config LM Studio ที่บันทึกไว้จากเวอร์ชันเก่าซึ่งมีแมปการใช้เหตุผล off/on
จะถูกปรับรูปแบบด้วยวิธีเดียวกันเมื่อโหลดแค็ตตาล็อก
การกำหนดค่าแบบชัดเจน
{ models: { providers: { lmstudio: { baseUrl: "http://localhost:1234/v1", apiKey: "${LM_API_TOKEN}", api: "openai-completions", models: [ { id: "qwen/qwen3-coder-next", name: "Qwen 3 Coder Next", reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, contextWindow: 128000, maxTokens: 8192, }, ], }, }, },}การแก้ไขปัญหา
ตรวจไม่พบ LM Studio
ตรวจสอบให้แน่ใจว่า LM Studio กำลังทำงานอยู่ หากเปิดใช้งานการยืนยันตัวตน ให้ตั้งค่า LM_API_TOKEN ด้วย:
# Start via desktop app, or headless:lms server start --port 1234ตรวจสอบว่าเข้าถึง API ได้:
curl http://localhost:1234/api/v1/modelsข้อผิดพลาดการยืนยันตัวตน (HTTP 401)
หากการตั้งค่ารายงาน HTTP 401 ให้ตรวจสอบคีย์ API ของคุณ:
- ตรวจสอบว่า
LM_API_TOKENตรงกับคีย์ที่กำหนดค่าไว้ใน LM Studio - สำหรับรายละเอียดการตั้งค่าการยืนยันตัวตนของ LM Studio โปรดดู การยืนยันตัวตนของ LM Studio
- หากเซิร์ฟเวอร์ของคุณไม่ต้องการการยืนยันตัวตน ให้เว้นคีย์ว่างไว้ระหว่างการตั้งค่า
การโหลดโมเดลแบบทันเวลาพอดี
LM Studio รองรับการโหลดโมเดลแบบทันเวลาพอดี (JIT) ซึ่งโมเดลจะถูกโหลดเมื่อมีคำขอแรก โดยค่าเริ่มต้น OpenClaw จะโหลดโมเดลล่วงหน้าผ่าน endpoint การโหลดดั้งเดิมของ LM Studio ซึ่งช่วยได้เมื่อปิดใช้งาน JIT หากต้องการให้ JIT, TTL เมื่อไม่ได้ใช้งาน และพฤติกรรมการไล่ออกอัตโนมัติของ LM Studio เป็นผู้ดูแลวงจรชีวิตโมเดล ให้ปิดขั้นตอนการโหลดล่วงหน้าของ OpenClaw:
{ models: { providers: { lmstudio: { baseUrl: "http://localhost:1234/v1", api: "openai-completions", params: { preload: false }, models: [{ id: "qwen/qwen3.5-9b" }], }, }, },}โฮสต์ LM Studio บน LAN หรือ tailnet
ใช้ที่อยู่ที่เข้าถึงได้ของโฮสต์ LM Studio คง /v1 ไว้ และตรวจสอบให้แน่ใจว่า LM Studio ถูกผูกให้เข้าถึงได้เกินกว่า loopback บนเครื่องนั้น:
{ models: { providers: { lmstudio: { baseUrl: "http://gpu-box.local:1234/v1", apiKey: "lmstudio", api: "openai-completions", models: [{ id: "qwen/qwen3.5-9b" }], }, }, },}lmstudio จะเชื่อถือ endpoint ในเครื่อง/ส่วนตัวที่กำหนดค่าไว้โดยอัตโนมัติสำหรับคำขอโมเดลที่มีการป้องกัน รายการผู้ให้บริการแบบกำหนดเอง/ในเครื่องที่เข้ากันได้กับ OpenAI จะเชื่อถือต้นทาง baseUrl ที่กำหนดค่าไว้ตรงกันเช่นกัน ยกเว้นต้นทางแบบ metadata/link-local; คำขอไปยังพอร์ตหรือปลายทางส่วนตัวอื่นยังคงต้องใช้ models.providers.<id>.request.allowPrivateNetwork: true ตั้งค่า models.providers.<id>.request.allowPrivateNetwork: false เพื่อเลือกไม่ใช้ความเชื่อถือต้นทางที่ตรงกัน