Providers
ClawRouter
ClawRouter มอบคีย์เดียวที่กำหนดขอบเขตด้วยนโยบายให้ OpenClaw สำหรับผู้ให้บริการโมเดลต้นทางหลายราย
Plugin clawrouter ที่รวมมาในชุดจะค้นหาเฉพาะโมเดลที่คีย์นั้นอนุญาต
กำหนดเส้นทางของแต่ละโมเดลผ่านโปรโตคอลที่ประกาศไว้ และรายงาน
งบประมาณของคีย์และการใช้งานรวมบนพื้นผิวแสดงการใช้งานของ OpenClaw
ข้อมูลประจำตัวต้นทางและการส่งต่อตามผู้ให้บริการจะยังคงอยู่ใน ClawRouter ดังนั้น
จึงไม่จำเป็นต้องติดตั้งหรือยืนยันตัวตน Plugin ของผู้ให้บริการต้นทางแต่ละรายบน
โฮสต์ OpenClaw Plugin นี้รวมมากับ OpenClaw (enabledByDefault: true)
เพียงมีข้อมูลประจำตัว ClawRouter ที่ออกให้เท่านั้น
| คุณสมบัติ | ค่า |
|---|---|
| ผู้ให้บริการ | clawrouter |
| Plugin | รวมมาในชุด (รวมอยู่ใน OpenClaw) |
| การยืนยันตัวตน | CLAWROUTER_API_KEY |
| URL เริ่มต้น | https://clawrouter.openclaw.ai |
| แค็ตตาล็อกโมเดล | กำหนดขอบเขตตามข้อมูลประจำตัวผ่าน /v1/catalog |
| โควตา | งบประมาณและการใช้งานรายเดือนผ่าน /v1/usage |
เริ่มต้นใช้งาน
รับข้อมูลประจำตัวที่กำหนดขอบเขต
ขอข้อมูลประจำตัวจากผู้ดูแลระบบ ClawRouter โดยนโยบายของข้อมูลประจำตัวนั้นต้องครอบคลุม ผู้ให้บริการ โมเดล และงบประมาณรายเดือนที่ควรใช้ ข้อมูลประจำตัวจะ แสดงเพียงครั้งเดียวเมื่อออกให้
กำหนดค่า OpenClaw
export CLAWROUTER_API_KEY="..."openclaw onboard --auth-choice clawrouter-api-keyopenclaw plugins enable clawrouterclawrouter รวมมาในชุดและเปิดใช้งานตามค่าเริ่มต้น หากการกำหนดค่าตั้งค่า
plugins.allow ให้เพิ่ม clawrouter ลงในรายการนั้นก่อนเปิดใช้งาน สำหรับ
การติดตั้งใช้งานแบบกำหนดเอง ให้ตั้งค่า models.providers.clawrouter.baseUrl เป็น
ต้นทางของ ClawRouter โดยค่าเริ่มต้นคือ https://clawrouter.openclaw.ai
แสดงรายการโมเดลที่ได้รับอนุญาต
openclaw models list --all --provider clawrouterใช้การอ้างอิงโมเดลที่ส่งคืนมาตามที่แสดงทุกประการ โดยยังคงเนมสเปซต้นทางไว้
เช่น clawrouter/openai/gpt-5.5,
clawrouter/anthropic/claude-sonnet-4-6 หรือ
clawrouter/google/gemini-3.5-flash หากกำหนดค่า agents.defaults.modelPolicy.allow
ให้เพิ่มการอ้างอิง ClawRouter ที่เลือกแต่ละรายการลงไป
เลือกโมเดล
openclaw models set clawrouter/<provider>/<model>นอกจากนี้ยังสามารถเลือกโมเดลที่ส่งคืนมาสำหรับการเรียกใช้หนึ่งครั้งด้วย
openclaw agent --model clawrouter/<provider>/<model> --message "..."
การติดตั้งใช้งานแบบไม่โต้ตอบที่มีการจัดการ
เก็บคีย์พร็อกซีไว้ในการฉีดข้อมูลลับของเวิร์กโหลด และจัดเก็บเฉพาะ
SecretRef ใน openclaw.json ฟิลด์มาตรฐานสำหรับการจัดการมีดังนี้:
| วัตถุประสงค์ | ฟิลด์การกำหนดค่าหรือสภาพแวดล้อม |
|---|---|
| ต้นทางของเราเตอร์ | models.providers.clawrouter.baseUrl |
| ข้อมูลประจำตัว | models.providers.clawrouter.apiKey -> env SecretRef |
| ค่าข้อมูลลับ | CLAWROUTER_API_KEY ในสภาพแวดล้อมของกระบวนการ Gateway |
| โมเดลเริ่มต้น | agents.defaults.model.primary -> clawrouter/<provider>/<model> |
| แท็กเวิร์กโหลด | models.providers.clawrouter.headers.X-ClawRouter-Project-Id (ไม่บังคับ) |
ตัวอย่างเช่น ตัวควบคุมการติดตั้งใช้งานสามารถเป็นเจ้าของแพตช์ JSON5 นี้:
{ plugins: { entries: { clawrouter: { enabled: true } }, }, models: { providers: { clawrouter: { baseUrl: "https://clawrouter.internal.example", apiKey: { source: "env", provider: "default", id: "CLAWROUTER_API_KEY", }, headers: { "X-ClawRouter-Project-Id": "fakeco", }, }, }, }, agents: { defaults: { model: { primary: "clawrouter/openai/gpt-5.5" }, }, },}หากการติดตั้งใช้งานตั้งค่า plugins.allow ให้คงรายการที่มีอยู่และเพิ่ม
clawrouter ตรวจสอบความถูกต้องและนำไปใช้โดยไม่ใช้วิซาร์ดแบบโต้ตอบ:
openclaw config patch --file ./clawrouter.patch.json5 --dry-run --jsonopenclaw config patch --file ./clawrouter.patch.json5การทดลองเรียกใช้จะแก้ค่า SecretRef แต่จะไม่แสดงค่าของข้อมูลลับ หากต้องการหมุนเวียน
ข้อมูลประจำตัว ให้อัปเดต Secret ภายนอกที่จ่ายค่า CLAWROUTER_API_KEY และ
รีสตาร์ตเวิร์กโหลด Gateway เพื่อโหลดสภาพแวดล้อมของกระบวนการใหม่
ไฟล์การกำหนดค่าและการอ้างอิงโมเดลจะไม่เปลี่ยนแปลง
สำหรับ Gateway แบบ Docker สแตนด์อโลนที่สร้างจากซอร์ส ClawRouter รวมอยู่ใน
รันไทม์รากแล้ว ให้เลือกเฉพาะ Plugin ช่องทางที่ต้องจัดแพ็กเกจแยกต่างหาก
เช่น OPENCLAW_EXTENSIONS=clickclack, slack หรือ msteams; ดู
อิมเมจที่สร้างจากซอร์สพร้อม Plugin ที่เลือก
การติดตั้งใช้งานแบบไฟล์เก็บถาวร/อุปกรณ์ต้องจัดแพ็กเกจซอร์สที่นำมารวมเดียวกันผ่าน
ไปป์ไลน์อาร์ติแฟกต์ของตนเอง แทนการใช้อิมเมจ OCI
ความพร้อมและหลักฐานจากระบบจริง
การตรวจสอบเหล่านี้พิสูจน์ขอบเขตที่ต่างกัน อย่าใช้รายการหนึ่งแทนอีกรายการ:
# ตรวจสอบเฉพาะสถานะกระบวนการ ClawRouter โดยไม่ใช้ข้อมูลประจำตัวหรือโมเดลต้นทางcurl -fsS https://clawrouter.internal.example/v1/health # ตรวจสอบเฉพาะความพร้อมเมื่อเริ่มต้น Gateway ของ OpenClaw โดยไม่มีการเรียกโมเดลcurl -fsS http://127.0.0.1:18789/readyz # การค้นพบแค็ตตาล็อกที่กำหนดขอบเขตตามข้อมูลประจำตัวopenclaw models list --all --provider clawrouter --json # โพรบการอนุมานจริงขั้นต่ำผ่านผู้ให้บริการ ClawRouter ที่กำหนดค่าไว้openclaw models status --probe --probe-provider clawrouter --probe-max-tokens 8 --json # คาแนรีของเวิร์กโหลดโดยใช้การอ้างอิงโมเดลที่ได้รับอนุญาตอย่างถูกต้องopenclaw agent --agent main \ --model clawrouter/openai/gpt-5.5 \ --message "ตอบกลับให้ตรงตามนี้ทุกประการ: CLAWROUTER_CANARY_OK" \ --jsonใช้โมเดลที่แค็ตตาล็อกตามขอบเขตส่งคืนมา แทนการคัดลอกโมเดลตัวอย่าง
โดยไม่ตรวจสอบ การตอบกลับ /readyz ที่สำเร็จหมายความว่า Gateway สามารถให้บริการ
คำขอได้ แต่ไม่ได้ยืนยันว่า ClawRouter ข้อมูลประจำตัวของระบบ หรือผู้ให้บริการ
ต้นทางพร้อมใช้งาน โพรบโมเดลและคาแนรีของเอเจนต์คือหลักฐานการอนุมาน
สำหรับการวินิจฉัยในระบบจริง ให้เรียกคาแนรีและตรวจสอบบันทึกมาตรฐานของ Gateway การวินิจฉัยการขนส่งโมเดลเฉพาะเมตาดาต้าที่มีอยู่จะส่งบรรทัดในรูปแบบดังนี้:
[model-fetch] เริ่ม provider=clawrouter api=openai-responses model=openai/gpt-5.5 method=POST url=https://clawrouter.internal.example/v1/responses[model-fetch] การตอบกลับ provider=clawrouter api=openai-responses model=openai/gpt-5.5 status=200Plugin จะส่งส่วนหัว X-ClawRouter-Client, X-ClawRouter-Agent-Id และ
X-ClawRouter-Session-Id ที่มีความยาวจำกัด เมื่อมีตัวระบุเหล่านั้น นอกจากนี้ยัง
แมป callId (<run-id>:model:<n>) สำหรับการวินิจฉัยของการเรียกโมเดลไปยัง
X-Request-ID เพื่อให้สามารถเชื่อมโยงเหตุการณ์การเรียกโมเดลของ OpenClaw กับ
เส้นทางตรวจสอบเฉพาะเมตาดาต้าของ ClawRouter ได้ ค่าที่อยู่ภายในงบประมาณ request-id
128 อักขระจะเหมือนกัน ค่าที่ยาวกว่าจะคงคำต่อท้าย :model:<n> และแฮชแบบ
กำหนดผลลัพธ์แน่นอน เพื่อให้การเรียกแต่ละครั้งยังมีขนาดจำกัดและเชื่อมโยงกันได้ เมตาดาต้าการติดตั้งใช้งานแบบคงที่
เช่น X-ClawRouter-Project-Id สามารถตั้งค่าในแมป headers ของผู้ให้บริการได้
ส่วนหัวสำหรับการระบุเอเจนต์และเซสชันยังคงมีขีดจำกัดแยกต่างหากที่ 256 อักขระ
รหัสคำขออัตโนมัติที่มีอักขระนอกชุดตัวระบุ ASCII ของ ClawRouter
จะใช้รูปแบบที่จำกัดขนาดและกำหนดผลลัพธ์แน่นอนแบบเดียวกัน
ส่วนหัวที่กำหนดค่าไว้อย่างชัดเจน รวมถึง X-Request-ID ในรูปแบบตัวพิมพ์ใดก็ตาม จะมี
ลำดับความสำคัญเหนือค่าอัตโนมัติ การวินิจฉัยการขนส่งจะบันทึกเมตาดาต้าการกำหนดเส้นทางและการตอบกลับ
แต่จะไม่บันทึกข้อมูลประจำตัว รหัสคำขอ พรอมต์ หรือผลลัพธ์ที่สร้าง
เหตุการณ์ตรวจสอบของ ClawRouter เองจะแสดงผู้ให้บริการต้นทางที่เลือกและ
สถานะการเก็บรักษาเนื้อหา
การค้นพบโมเดล
GET /v1/catalog ส่งคืน { providers: [...] } โดยรายการของผู้ให้บริการแต่ละรายการ
จะแสดง models[] ของตนเอง (พร้อมรหัสต้นทาง ความสามารถ และราคา) และ
เส้นทางคำขอที่รองรับ OpenClaw ไม่มีรายการโมเดล ClawRouter แบบคงที่
ชุดที่สองให้มาด้วย โมเดลในแค็ตตาล็อกจะได้รับการประกาศเป็นโมเดล OpenClaw เมื่อ:
- นโยบายของข้อมูลประจำตัวอนุญาตผู้ให้บริการของโมเดลนั้น
- โมเดลในแค็ตตาล็อกประกาศความสามารถ LLM ที่รองรับ (
llm.responses,llm.chat,llm.messagesหรือllm.streamพร้อมเส้นทางสตรีมมิง ที่ตรงกัน) และ - ผู้ให้บริการเปิดเผยเส้นทางที่ตรงกันสำหรับการขนส่งประเภทใดประเภทหนึ่งด้านล่าง
การเพิ่มโมเดลไปยังผู้ให้บริการ ClawRouter ที่รองรับไม่ต้องออกรุ่น OpenClaw ใหม่: การรีเฟรชแค็ตตาล็อกครั้งถัดไป (แคช 60 วินาทีต่อขอบเขตข้อมูลประจำตัว) จะค้นพบ โมเดลนั้น โมเดลที่ต้องใช้โปรโตคอลการรับส่งแบบใหม่ต้องเพิ่มการรองรับใน Plugin ก่อน
Plugin โปรโตคอลและผู้ให้บริการ
ClawRouter เป็นเจ้าของข้อมูลประจำตัวต้นทาง แค็ตตาล็อกของระบบจะบอก OpenClaw ว่าต้องใช้ การขนส่งใด จึงไม่จำเป็นต้องติดตั้ง Plugin การยืนยันตัวตนของบริษัทต้นทางทุกแห่ง
| ความสามารถ/เส้นทางในแค็ตตาล็อก | การขนส่งของ OpenClaw |
|---|---|
llm.responses (ผู้ให้บริการที่เข้ากันได้กับ OpenAI) |
openai-responses |
llm.chat (ผู้ให้บริการที่เข้ากันได้กับ OpenAI) |
openai-completions |
llm.messages + เส้นทาง anthropic.messages |
anthropic-messages |
llm.stream + เส้นทาง google.generate_content แบบสตรีมมิง |
google-generative-ai |
Plugin ยังใช้นโยบายการเล่นซ้ำและสคีมาของเครื่องมือที่ตรงกันสำหรับ
ตระกูลเหล่านั้นด้วย (ความเข้ากันได้ของสคีมาเครื่องมือ OpenAI/DeepSeek/Gemini/Perplexity
และนโยบายการเล่นซ้ำแบบเนทีฟของ Anthropic และ Google Gemini) โมเดล Perplexity จะได้รับ
การเขียนสคีมาใหม่อย่างเข้มงวด: ระบบจะลบ patternProperties และ additionalProperties และ
ทุกสคีมาวัตถุจะประกาศ properties เนื่องจาก Perplexity ปฏิเสธสคีมาเครื่องมือ
ที่ไม่มีค่าเหล่านี้ ผู้ให้บริการในแค็ตตาล็อกที่เปิดเผยเฉพาะ
รูปแบบคำขอที่ไม่รองรับจะไม่ถูกประกาศเป็นโมเดลข้อความของ OpenClaw โดยตั้งใจ
ให้ทำให้ผู้ให้บริการเหล่านั้นเป็นมาตรฐานตามหนึ่งในสัญญาที่รองรับใน
ClawRouter แทนการส่งเพย์โหลดที่เข้ากันไม่ได้
โควตาและการใช้งาน
การตอบกลับ /v1/usage ของ ClawRouter จะป้อนข้อมูลให้พื้นผิวแสดงการใช้งาน
ของผู้ให้บริการ OpenClaw ตามปกติ ได้แก่ ยอดรวมคำขอ โทเค็น และค่าใช้จ่าย รวมถึงหน้าต่าง
งบประมาณรายเดือนเมื่อคีย์มีขีดจำกัด คีย์ที่ไม่มีการวัดปริมาณยังคงแสดงการใช้งานรวม
โดยไม่มีหน้าต่างเปอร์เซ็นต์
การค้นหาโควตาใช้คีย์ตามขอบเขตเดียวกับการค้นพบโมเดล การค้นหาโควตา ที่ล้มเหลวจะไม่ขัดขวางการเรียกใช้โมเดล
ตรวจสอบสแนปช็อตจากระบบจริงด้วย:
openclaw status --usageopenclaw models statusสแนปช็อตผู้ให้บริการเดียวกันพร้อมใช้งานสำหรับ /status ในแชตและ UI
การใช้งานของ OpenClaw งบประมาณมีขอบเขตครอบคลุมทั้งนโยบาย ดังนั้นคำขอที่มาจากไคลเอนต์อื่น
ซึ่งใช้นโยบาย ClawRouter เดียวกันอาจเปลี่ยนเปอร์เซ็นต์คงเหลือได้
การแก้ไขปัญหา
| อาการ | การตรวจสอบ |
|---|---|
| ไม่มีโมเดล ClawRouter | ยืนยันว่าเปิดใช้งาน Plugin และ plugins.allow อนุญาต จากนั้นตรวจสอบว่าข้อมูลประจำตัวยังใช้งานได้และอนุญาตผู้ให้บริการที่พร้อมอย่างน้อยหนึ่งราย |
| ไม่พบโมเดล ClawRouter ที่กำหนดค่าไว้ | ตรวจสอบความสามารถ /v1/catalog และการรองรับเส้นทางของโมเดลนั้น สัญญาการขนส่งที่ไม่รองรับจะถูกกรองออกโดยตั้งใจ |
| นโยบายปฏิเสธการแทนที่โมเดล | เพิ่มการอ้างอิงแค็ตตาล็อกที่ตรงกันทุกประการหรือ clawrouter/* ไปยัง agents.defaults.modelPolicy.allow |
401 หรือ 403 จากแค็ตตาล็อกหรือการใช้งาน |
ออกข้อมูลประจำตัว ClawRouter ใหม่หรือกำหนดขอบเขตใหม่ OpenClaw จะไม่ย้อนกลับไปใช้คีย์ของผู้ให้บริการต้นทาง |
| การเรียกโมเดลล้มเหลวหลังการค้นพบ | ตรวจสอบการเชื่อมต่อผู้ให้บริการและสถานะของระบบต้นทางใน ClawRouter แล้วลองอีกครั้งหลังสถานะความพร้อมกลับคืนมา |
| การใช้งานมียอดรวมแต่ไม่มีเปอร์เซ็นต์ | นโยบายไม่มีการวัดปริมาณ ให้เพิ่มงบประมาณรายเดือนใน ClawRouter เพื่อแสดงหน้าต่างเปอร์เซ็นต์ |
พฤติกรรมด้านความปลอดภัย
- การค้นพบแค็ตตาล็อกจำกัดขอบเขตตามคีย์พร็อกซีที่กำหนดค่าไว้ และแคชแยกตามขอบเขตข้อมูลประจำตัว (ไดเรกทอรีเอเจนต์ ไดเรกทอรีเวิร์กสเปซ รหัสโปรไฟล์การตรวจสอบสิทธิ์ และ URL ฐาน)
- คีย์พร็อกซีจะถูกแนบเฉพาะเมื่อส่งคำขอเท่านั้น โดยจะไม่ถูกจัดเก็บไว้ในข้อมูลเมตาของโมเดล
- ค่าการระบุที่มาและการเชื่อมโยงคำขออัตโนมัติจะถูกตัดช่องว่าง และปฏิเสธอักขระควบคุมก่อนส่ง ค่าการระบุที่มาจำกัดไว้ที่ 256 อักขระ ส่วนรหัสคำขอจำกัดไว้ที่ 128 อักขระ
- ข้อมูลวินิจฉัยการรับส่งข้อมูลของโมเดลมีเฉพาะข้อมูลเมตา และจะไม่มีคีย์พร็อกซีหรือเนื้อหาของโมเดลรวมอยู่ด้วย
- รหัสโมเดล Anthropic และ Gemini แบบเนทีฟจะถูกเขียนใหม่เป็นรหัสต้นทางเฉพาะเมื่อส่งเท่านั้น
- แถวในแค็ตตาล็อกที่ไม่รองรับหรือไม่ได้รับสิทธิ์จะปฏิเสธโดยค่าเริ่มต้นและไม่สามารถเลือกได้