vLLM สามารถให้บริการโมเดลโอเพนซอร์ส (และโมเดลแบบกำหนดเองบางส่วน) ผ่าน HTTP API ที่ เข้ากันได้กับ OpenAI OpenClaw เชื่อมต่อกับ vLLM โดยใช้ APIDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openai-completions
OpenClaw ยังสามารถ ค้นหาอัตโนมัติ โมเดลที่มีอยู่จาก vLLM ได้เมื่อคุณเลือกใช้ด้วย VLLM_API_KEY (ค่าใดก็ใช้ได้หากเซิร์ฟเวอร์ของคุณไม่ได้บังคับใช้การยืนยันตัวตน) ใช้ vllm/* ใน agents.defaults.models เพื่อให้การค้นหายังคงเป็นแบบไดนามิกเมื่อคุณกำหนดค่า URL ฐานของ vLLM แบบกำหนดเองด้วย
OpenClaw ถือว่า vllm เป็นผู้ให้บริการท้องถิ่นที่เข้ากันได้กับ OpenAI ซึ่งรองรับ
การนับการใช้งานแบบสตรีม ดังนั้นจำนวนโทเค็นของสถานะ/บริบทจึงสามารถอัปเดตจาก
การตอบกลับ stream_options.include_usage ได้
| คุณสมบัติ | ค่า |
|---|---|
| ID ผู้ให้บริการ | vllm |
| API | openai-completions (เข้ากันได้กับ OpenAI) |
| การยืนยันตัวตน | ตัวแปรสภาพแวดล้อม VLLM_API_KEY |
| URL ฐานเริ่มต้น | http://127.0.0.1:8000/v1 |
เริ่มต้นใช้งาน
เริ่ม vLLM ด้วยเซิร์ฟเวอร์ที่เข้ากันได้กับ OpenAI
URL ฐานของคุณควรเปิดเผยปลายทาง
/v1 (เช่น /v1/models, /v1/chat/completions) โดยทั่วไป vLLM ทำงานที่:ตั้งค่าตัวแปรสภาพแวดล้อมสำหรับคีย์ API
ค่าใดก็ใช้ได้หากเซิร์ฟเวอร์ของคุณไม่ได้บังคับใช้การยืนยันตัวตน:
การค้นหาโมเดล (ผู้ให้บริการโดยนัย)
เมื่อมีการตั้งค่าVLLM_API_KEY (หรือมีโปรไฟล์การยืนยันตัวตนอยู่แล้ว) และคุณ ไม่ได้ กำหนด models.providers.vllm OpenClaw จะเรียกค้น:
หากคุณตั้งค่า
models.providers.vllm อย่างชัดเจน OpenClaw จะใช้โมเดลที่คุณประกาศไว้เป็นค่าเริ่มต้น เพิ่ม "vllm/*": {} ลงใน agents.defaults.models เมื่อคุณต้องการให้ OpenClaw เรียกปลายทาง /models ของผู้ให้บริการที่กำหนดค่านั้น และรวมโมเดล vLLM ทั้งหมดที่ประกาศไว้การกำหนดค่าอย่างชัดเจน (โมเดลแบบกำหนดเอง)
ใช้การกำหนดค่าอย่างชัดเจนเมื่อ:- vLLM ทำงานบนโฮสต์หรือพอร์ตอื่น
- คุณต้องการตรึงค่า
contextWindowหรือmaxTokens - เซิร์ฟเวอร์ของคุณต้องใช้คีย์ API จริง (หรือคุณต้องการควบคุมส่วนหัว)
- คุณเชื่อมต่อกับปลายทาง vLLM ที่เป็น local loopback, LAN หรือ Tailscale ที่เชื่อถือได้
การกำหนดค่าขั้นสูง
พฤติกรรมแบบพร็อกซี
พฤติกรรมแบบพร็อกซี
vLLM จะถูกมองเป็นแบ็กเอนด์
/v1 ที่เข้ากันได้กับ OpenAI แบบพร็อกซี ไม่ใช่ปลายทาง
OpenAI แบบเนทีฟ ซึ่งหมายความว่า:| พฤติกรรม | ใช้หรือไม่ |
|---|---|
| การจัดรูปคำขอ OpenAI แบบเนทีฟ | ไม่ |
service_tier | ไม่ส่ง |
Responses store | ไม่ส่ง |
| คำแนะนำ prompt-cache | ไม่ส่ง |
| การจัดรูป payload สำหรับ OpenAI reasoning-compat | ไม่ใช้ |
| ส่วนหัวการระบุที่มาของ OpenClaw แบบซ่อน | ไม่ถูกฉีดบน URL ฐานแบบกำหนดเอง |
การควบคุมการคิดของ Qwen
การควบคุมการคิดของ Qwen
สำหรับโมเดล Qwen ที่ให้บริการผ่าน vLLM ให้ตั้งค่า
ระดับการคิดที่ไม่ใช่
params.qwenThinkingFormat: "chat-template" ในรายการโมเดลเมื่อ
เซิร์ฟเวอร์คาดหวัง kwargs ของ chat-template ของ Qwen OpenClaw จะแมป /think off เป็น:off จะส่ง enable_thinking: true หากปลายทางของคุณ
คาดหวังแฟล็กระดับบนสุดแบบ DashScope แทน ให้ใช้
params.qwenThinkingFormat: "top-level" เพื่อส่ง enable_thinking ที่
รากของคำขอ นอกจากนี้ยังยอมรับ params.qwen_thinking_format แบบ snake-case ด้วยการควบคุมการคิดของ Nemotron 3
การควบคุมการคิดของ Nemotron 3
vLLM/Nemotron 3 สามารถใช้ kwargs ของ chat-template เพื่อควบคุมว่า reasoning จะถูก
ส่งกลับเป็น reasoning แบบซ่อนหรือข้อความคำตอบที่มองเห็นได้ เมื่อเซสชัน OpenClaw
ใช้ หากต้องการปรับค่าเหล่านี้ ให้ตั้งค่า
vllm/nemotron-3-* โดยปิดการคิด Plugin vLLM ที่มาพร้อมกันจะส่ง:chat_template_kwargs ภายใต้ params ของโมเดล
หากคุณตั้งค่า params.extra_body.chat_template_kwargs ด้วย ค่านั้นจะมี
ลำดับความสำคัญสุดท้าย เนื่องจาก extra_body เป็นตัวเขียนทับ request-body ตัวสุดท้ายการเรียกใช้เครื่องมือของ Qwen ปรากฏเป็นข้อความ
การเรียกใช้เครื่องมือของ Qwen ปรากฏเป็นข้อความ
ก่อนอื่นตรวจสอบให้แน่ใจว่า vLLM เริ่มด้วยตัวแยกวิเคราะห์ tool-call และ chat
template ที่ถูกต้องสำหรับโมเดล ตัวอย่างเช่น vLLM ระบุ แทนที่ คุณสามารถใช้การเขียนทับเดียวกันจาก CLI ได้:นี่เป็นวิธีแก้ไขความเข้ากันได้แบบเลือกใช้ ทำให้ทุก turn ของโมเดลที่มี
เครื่องมือต้องมีการเรียกใช้เครื่องมือ ดังนั้นให้ใช้เฉพาะกับรายการโมเดลท้องถิ่นเฉพาะ
ที่ยอมรับพฤติกรรมนั้นได้ อย่าใช้เป็นค่าเริ่มต้นทั่วโลกสำหรับโมเดล
vLLM ทั้งหมด และอย่าใช้พร็อกซีที่แปลงข้อความผู้ช่วยใดๆ
เป็นการเรียกใช้เครื่องมือที่สั่งทำงานได้อย่างไม่พิจารณา
hermes สำหรับโมเดล Qwen2.5
และ qwen3_xml สำหรับโมเดล Qwen3-Coderอาการ:- skills หรือเครื่องมือไม่ทำงานเลย
- ผู้ช่วยพิมพ์ JSON/XML ดิบ เช่น
{"name":"read","arguments":...} - vLLM ส่งอาร์เรย์
tool_callsว่างกลับมาเมื่อ OpenClaw ส่งtool_choice: "auto"
tool_choice: "required" สำหรับรายการโมเดลเหล่านั้น ให้บังคับฟิลด์คำขอ
ที่เข้ากันได้กับ OpenAI ด้วย params.extra_body:Qwen-Qwen2.5-Coder-32B-Instruct ด้วย id ที่แน่นอนซึ่งส่งกลับโดย:URL ฐานแบบกำหนดเอง
URL ฐานแบบกำหนดเอง
หากเซิร์ฟเวอร์ vLLM ของคุณทำงานบนโฮสต์หรือพอร์ตที่ไม่ใช่ค่าเริ่มต้น ให้ตั้งค่า
baseUrl ในการกำหนดค่าผู้ให้บริการอย่างชัดเจน:การแก้ไขปัญหา
การตอบกลับครั้งแรกช้า หรือเซิร์ฟเวอร์ระยะไกลหมดเวลา
การตอบกลับครั้งแรกช้า หรือเซิร์ฟเวอร์ระยะไกลหมดเวลา
สำหรับโมเดลท้องถิ่นขนาดใหญ่ โฮสต์ LAN ระยะไกล หรือลิงก์ tailnet ให้ตั้งค่า
หมดเวลาคำขอตามขอบเขตผู้ให้บริการ:
timeoutSeconds ใช้กับคำขอ HTTP ของโมเดล vLLM เท่านั้น รวมถึง
การตั้งค่าการเชื่อมต่อ ส่วนหัวการตอบกลับ การสตรีม body และการยกเลิก
guarded-fetch ทั้งหมด ควรใช้ค่านี้ก่อนเพิ่ม
agents.defaults.timeoutSeconds ซึ่งควบคุมการรัน agent ทั้งหมดไม่สามารถเข้าถึงเซิร์ฟเวอร์
ไม่สามารถเข้าถึงเซิร์ฟเวอร์
ตรวจสอบว่าเซิร์ฟเวอร์ vLLM กำลังทำงานและเข้าถึงได้:หากคุณเห็นข้อผิดพลาดการเชื่อมต่อ ให้ตรวจสอบโฮสต์ พอร์ต และตรวจสอบว่า vLLM เริ่มด้วยโหมดเซิร์ฟเวอร์ที่เข้ากันได้กับ OpenAI
สำหรับปลายทาง local loopback, LAN หรือ Tailscale แบบชัดเจน ให้ตั้งค่า
models.providers.vllm.request.allowPrivateNetwork: true ด้วย; คำขอของผู้ให้บริการ
จะบล็อก URL เครือข่ายส่วนตัวตามค่าเริ่มต้น เว้นแต่ผู้ให้บริการนั้น
จะถูกเชื่อถืออย่างชัดเจนข้อผิดพลาดการยืนยันตัวตนในคำขอ
ข้อผิดพลาดการยืนยันตัวตนในคำขอ
หากคำขอล้มเหลวด้วยข้อผิดพลาดการยืนยันตัวตน ให้ตั้งค่า
VLLM_API_KEY จริงที่ตรงกับการกำหนดค่าเซิร์ฟเวอร์ของคุณ หรือกำหนดค่าผู้ให้บริการอย่างชัดเจนภายใต้ models.providers.vllmไม่พบโมเดลจากการค้นหา
ไม่พบโมเดลจากการค้นหา
การค้นหาอัตโนมัติต้องตั้งค่า
VLLM_API_KEY หากคุณกำหนด models.providers.vllm ไว้แล้ว OpenClaw จะใช้เฉพาะโมเดลที่คุณประกาศไว้ เว้นแต่ agents.defaults.models จะมี "vllm/*": {}เครื่องมือแสดงผลเป็นข้อความดิบ
เครื่องมือแสดงผลเป็นข้อความดิบ
หากโมเดล Qwen พิมพ์ไวยากรณ์เครื่องมือ JSON/XML แทนที่จะสั่งทำงาน skill
ให้ตรวจสอบคำแนะนำ Qwen ในการกำหนดค่าขั้นสูงด้านบน วิธีแก้ตามปกติคือ:
- เริ่ม vLLM ด้วยตัวแยกวิเคราะห์/template ที่ถูกต้องสำหรับโมเดลนั้น
- ยืนยัน id โมเดลที่แน่นอนด้วย
openclaw models list --provider vllm - เพิ่มการเขียนทับ
params.extra_body.tool_choice: "required"เฉพาะต่อโมเดลโดยเฉพาะก็ต่อเมื่อtool_choice: "auto"ยังคงส่งคืน การเรียกใช้เครื่องมือแบบว่างหรือเป็นข้อความเท่านั้น
ที่เกี่ยวข้อง
การเลือกโมเดล
การเลือกผู้ให้บริการ refs โมเดล และพฤติกรรม failover
OpenAI
ผู้ให้บริการ OpenAI แบบเนทีฟและพฤติกรรมเส้นทางที่เข้ากันได้กับ OpenAI
OAuth และการยืนยันตัวตน
รายละเอียดการยืนยันตัวตนและกฎการใช้ข้อมูลรับรองซ้ำ
การแก้ไขปัญหา
ปัญหาทั่วไปและวิธีแก้ไข