การเลือกโมเดลอัตโนมัติ
เมื่อใช้ model "auto" Gateway จะประเมินความยากของงานแล้วเลือกโมเดลที่เวิร์กสเปซอนุญาต โมเดลที่ระบุชื่อจะไม่ถูกสลับ และทุกคำตอบบอกว่าโมเดลใดเป็นผู้ตอบ
ระบุโมเดลหรือใช้ auto#
ช่อง model รับชื่อโมเดลจาก GET /v1/models หรือ auto
model | สิ่งที่เกิดขึ้น |
|---|---|
auto | Gateway เลือกโมเดลที่เวิร์กสเปซอนุญาต ตามความยากของงาน |
| ชื่อโมเดล | ตอบด้วยโมเดลนั้นเท่านั้น และจะไม่ถูกแทนที่ด้วยโมเดลอื่น |
agentlab/… | ถูกปฏิเสธด้วย 400 invalid_model ข้อความจะแสดงค่าที่ใช้ได้ |
| ชื่อที่ Gateway ไม่รู้จัก | ถูกปฏิเสธด้วย 404 model_not_found ข้อความจะแสดงค่าที่ใช้ได้ |
| โมเดลที่เวิร์กสเปซไม่อนุญาต | ถูกปฏิเสธด้วย 403 model_not_enabled |
/v1/chat/completions และ /v1/responses เลือกจากโมเดลทั้งหมดที่อนุญาต ไม่ว่าบริษัทใดจะเป็นผู้สร้าง ส่วน /v1/messages ใช้เฉพาะโมเดล Claude และคำขอ Responses ที่มีเพียงโมเดล OpenAI ที่รองรับได้ (เช่น คำขอที่มีเครื่องมือ code_interpreter) จะใช้เฉพาะโมเดล OpenAI
Claude Code และ Codex ตรวจชื่อโมเดลก่อนส่ง จึงส่ง auto ไม่ได้ ทั้งสองจึงคงชื่อโมเดลจริงไว้ในคำขอและเพิ่มเฮดเดอร์ X-AgentLab-Routing: auto เพื่อให้ Gateway เป็นผู้เลือก เฮดเดอร์ต้องเป็น auto พอดีและส่งเพียงครั้งเดียว ค่าอื่นจะถูกปฏิเสธด้วย 400
auto เลือกอย่างไร#
- ประเมินงาน โมเดลที่ถูกที่สุดที่อนุญาตและส่งผลลัพธ์แบบมีโครงสร้างได้จะอ่านข้อความบางส่วนของคำขอ (ต้นของพรอมต์ระบบ ข้อความผู้ใช้แรกและล่าสุด และชื่อเครื่องมือ ไม่เกิน 8 KiB และไม่อ่านทั้งบทสนทนา) แล้วบอกว่าเป็นงานประเภทใดและต้องทำหลายขั้นตอนหรือไม่
- เลือกโมเดล งานหลายขั้นตอนได้โมเดลที่แรงกว่า งานวิเคราะห์ เขียนโค้ด และวางแผนทั่วไปได้โมเดลมาตรฐาน งานดึงข้อมูล เรียบเรียงใหม่ และสนทนาทั่วไปได้โมเดลที่ถูกที่สุดที่อนุญาต
- ใช้โมเดลเดิมตลอดรอบ ขั้นตอนถัดไปของลูปเครื่องมือเดียวกันจะใช้โมเดลเดียวกับขั้นแรก เพื่อให้ reasoning ที่เข้ารหัส ลายเซ็น thinking และแคชพรอมต์ยังใช้ได้
เมื่อการประเมินล้มเหลว หมดเวลา (หลัง 6 วินาที) หรือไม่แน่ใจ โมเดลมาตรฐานจะเป็นผู้ตอบ auto จะไม่เลือกโมเดลที่ถูกกว่าเมื่อตัดสินไม่ได้
เมื่อขีดจำกัดค่าใช้จ่ายรายเดือนของเวิร์กสเปซเหลือไม่ถึง 20% งานที่ประเมินว่าเป็นหลายขั้นตอนจะได้โมเดลมาตรฐานแทนโมเดลที่แรงกว่า
การประเมินเป็นการเรียกโมเดลแยกต่างหาก ซึ่งบันทึกและคิดค่าใช้จ่ายภายใต้คีย์เดียวกัน และเชื่อมโยงกับคำขอที่ประเมินนั้น
ใช้เฉพาะบางผู้ให้บริการ#
หากต้องการให้คำขอใช้เฉพาะโมเดลของบางบริษัท ให้ส่ง provider.only ไปกับ Chat Completions หรือ Responses ในรูปแบบเดียวกับ OpenRouter:
{
"model": "auto",
"provider": { "only": ["anthropic"] },
"messages": [{ "role": "user", "content": "Hello" }]
}- ผู้ให้บริการคือบริษัทที่สร้างโมเดล ตามที่รายการโมเดลในคอนโซลแสดง:
anthropic,openai,google,meta,xai,deepseek,moonshot,mistral,zhipu,qwen,minimax,amazon,microsoft,cohereหรือblack-forest-labsโดยanthropicรวมถึง Claude บน Amazon Bedrock และ Google Vertex AI - auto การประเมิน การลองใหม่ และรายการ
autoในmodelsจะใช้เฉพาะโมเดลของผู้ให้บริการเหล่านี้ และการตั้งค่าโมเดลของเวิร์กสเปซยังมีผลเหมือนเดิม - การระบุโมเดลที่อยู่นอกรายการ ชื่อผู้ให้บริการที่ไม่รู้จัก หรือตัวเลือกอื่นใน
providerจะถูกปฏิเสธด้วย 400 และparamเป็นprovider.only(หรือชื่อตัวเลือกนั้น) หากไม่มีโมเดลใดของผู้ให้บริการในรายการที่รองรับคำขอได้ ก็จะถูกปฏิเสธด้วย 400 และข้อความจะระบุผู้ให้บริการที่รองรับได้ - Gateway เป็นผู้อ่าน
providerเท่านั้น และจะไม่ส่งไปยังโมเดล
ดูว่า auto เลือกอะไร#
ทุกคำขอที่ได้คำตอบจะมี
| เฮดเดอร์ | ค่า |
|---|---|
X-Agentlab-Model | โมเดลที่ตอบ |
X-Agentlab-Decision | เหตุผล: requested_model สำหรับโมเดลที่ระบุชื่อ ส่วน auto จะเป็น auto_assessed, auto_reused, auto_uncertain, auto_assessment_failed, auto_assessment_timeout หรือ auto_budget_guard |
X-Agentlab-Assessment | เมื่อใช้ auto คือผลการประเมิน เช่น analysis/multi_step หรือ unavailable เมื่อไม่มีการประเมิน |
X-Request-Id | id ของคำขอ ตรงกับที่แสดงในหน้าการใช้งานและในไฟล์ส่งออก |
Chat Completions ยังส่งโมเดลที่ตอบกลับมาใน model และเหตุผลใน agentlab_decision.reason (auto หรือ requested_model)