Providers
อนุมาน
inferrs สามารถให้บริการโมเดลภายในเครื่องอยู่เบื้องหลัง API /v1 ที่เข้ากันได้กับ OpenAI OpenClaw ทำงานกับ inferrs ผ่านเส้นทาง openai-completions ทั่วไป
| คุณสมบัติ | ค่า |
|---|---|
| รหัสผู้ให้บริการ | inferrs (กำหนดเอง; กำหนดค่าภายใต้ models.providers.inferrs) |
| Plugin | ไม่มี — inferrs ไม่ใช่ Plugin ผู้ให้บริการ OpenClaw ที่รวมมาในชุด |
| ตัวแปรสภาพแวดล้อมสำหรับการตรวจสอบสิทธิ์ | ไม่บังคับ ค่าใดก็ใช้ได้หากเซิร์ฟเวอร์ inferrs ของคุณไม่มีการตรวจสอบสิทธิ์ |
| API | เข้ากันได้กับ OpenAI (openai-completions) |
| URL ฐานที่แนะนำ | http://127.0.0.1:8080/v1 (หรือที่ใดก็ตามที่เซิร์ฟเวอร์ inferrs ของคุณอยู่) |
เริ่มต้นใช้งาน
เริ่ม inferrs ด้วยโมเดล
inferrs serve google/gemma-4-E2B-it \
--host 127.0.0.1 \
--port 8080 \
--device metal
ตรวจสอบว่าเข้าถึงเซิร์ฟเวอร์ได้
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
เพิ่มรายการผู้ให้บริการ OpenClaw
เพิ่มรายการผู้ให้บริการอย่างชัดเจนและชี้โมเดลเริ่มต้นของคุณไปยังรายการนั้น ดูตัวอย่างการกำหนดค่าแบบเต็มด้านล่าง
ตัวอย่างการกำหนดค่าแบบเต็ม
ตัวอย่างนี้ใช้ Gemma 4 บนเซิร์ฟเวอร์ inferrs ภายในเครื่อง
{
agents: {
defaults: {
model: { primary: "inferrs/google/gemma-4-E2B-it" },
models: {
"inferrs/google/gemma-4-E2B-it": {
alias: "Gemma 4 (inferrs)",
},
},
},
},
models: {
mode: "merge",
providers: {
inferrs: {
baseUrl: "http://127.0.0.1:8080/v1",
apiKey: "inferrs-local",
api: "openai-completions",
models: [
{
id: "google/gemma-4-E2B-it",
name: "Gemma 4 E2B (inferrs)",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 131072,
maxTokens: 4096,
compat: {
requiresStringContent: true,
},
},
],
},
},
},
}
การกำหนดค่าขั้นสูง
เหตุใด requiresStringContent จึงสำคัญ
เส้นทาง Chat Completions บางส่วนของ inferrs ยอมรับเฉพาะ
messages[].content ที่เป็นสตริง ไม่ใช่อาร์เรย์ส่วนเนื้อหาแบบมีโครงสร้าง
compat: {
requiresStringContent: true
}
OpenClaw จะแปลงส่วนเนื้อหาข้อความล้วนให้เป็นสตริงธรรมดาก่อนส่ง คำขอ
ข้อควรระวังเกี่ยวกับ Gemma และ schema เครื่องมือ
การผสมผสาน inferrs + Gemma บางชุดในปัจจุบันยอมรับคำขอ
/v1/chat/completions ขนาดเล็กโดยตรง แต่ยังคงล้มเหลวในเทิร์น
runtime ของเอเจนต์ OpenClaw แบบเต็ม
หากเกิดขึ้น ให้ลองวิธีนี้ก่อน:
compat: {
requiresStringContent: true,
supportsTools: false
}
การตั้งค่านี้จะปิดใช้พื้นผิว schema เครื่องมือของ OpenClaw สำหรับโมเดล และสามารถลดแรงกดดันของพรอมป์ ต่อแบ็กเอนด์ภายในเครื่องที่เข้มงวดกว่าได้
หากคำขอขนาดเล็กโดยตรงยังทำงานได้ แต่เทิร์นเอเจนต์ OpenClaw ปกติยังคง
ขัดข้องภายใน inferrs ปัญหาที่เหลือมักเป็นพฤติกรรมของโมเดล/เซิร์ฟเวอร์
ต้นทาง มากกว่าชั้นการขนส่งของ OpenClaw
การทดสอบ smoke แบบแมนนวล
เมื่อกำหนดค่าแล้ว ให้ทดสอบทั้งสองชั้น:
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'content-type: application/json' \
-d '{"model":"google/gemma-4-E2B-it","messages":[{"role":"user","content":"What is 2 + 2?"}],"stream":false}'
openclaw infer model run \
--model inferrs/google/gemma-4-E2B-it \
--prompt "What is 2 + 2? Reply with one short sentence." \
--json
หากคำสั่งแรกทำงานแต่คำสั่งที่สองล้มเหลว ให้ตรวจสอบส่วนการแก้ไขปัญหาด้านล่าง
พฤติกรรมแบบพร็อกซี
inferrs จะถูกมองเป็นแบ็กเอนด์ /v1 ที่เข้ากันได้กับ OpenAI แบบพร็อกซี ไม่ใช่
ปลายทาง OpenAI แบบเนทีฟ
- การปรับรูปแบบคำขอเฉพาะ OpenAI แบบเนทีฟไม่มีผลที่นี่
- ไม่มี
service_tier, ไม่มี Responsesstore, ไม่มีคำใบ้ prompt-cache และไม่มี การปรับรูปแบบเพย์โหลดสำหรับความเข้ากันได้กับการให้เหตุผลของ OpenAI - ส่วนหัวการระบุแหล่งที่มาของ OpenClaw ที่ซ่อนอยู่ (
originator,version,User-Agent) จะไม่ถูกแทรกใน URL ฐานinferrsแบบกำหนดเอง
การแก้ไขปัญหา
curl /v1/models ล้มเหลว
inferrs ไม่ได้ทำงานอยู่ เข้าถึงไม่ได้ หรือไม่ได้ผูกกับ
โฮสต์/พอร์ตที่คาดไว้ ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์เริ่มทำงานแล้วและกำลังฟังอยู่ที่ที่อยู่ที่คุณ
กำหนดค่าไว้
messages[].content คาดว่าจะเป็นสตริง
ตั้งค่า compat.requiresStringContent: true ในรายการโมเดล ดูรายละเอียดในส่วน
requiresStringContent ด้านบน
การเรียก /v1/chat/completions โดยตรงผ่าน แต่ openclaw infer model run ล้มเหลว
ลองตั้งค่า compat.supportsTools: false เพื่อปิดใช้พื้นผิว schema เครื่องมือ
ดูข้อควรระวังเกี่ยวกับ schema เครื่องมือของ Gemma ด้านบน
inferrs ยังขัดข้องเมื่อเทิร์นเอเจนต์ใหญ่ขึ้น
หาก OpenClaw ไม่พบข้อผิดพลาด schema แล้ว แต่ inferrs ยังขัดข้องเมื่อเทิร์น
เอเจนต์ใหญ่ขึ้น ให้ถือว่าเป็นข้อจำกัดของ inferrs ต้นทางหรือโมเดล ลด
แรงกดดันของพรอมป์ หรือเปลี่ยนไปใช้แบ็กเอนด์หรือโมเดลภายในเครื่องอื่น