模型路由
最後更新
router.New 如何把 provider@model 名稱轉成 Agent,以及如何換供應商。
provider@model 解析
router.New 以 @ 切開名稱,前綴查表決定建構哪個 Agent:
| 輸入 | 結果 |
|---|---|
claude@claude-opus-5 |
core/claude 的 Agent |
compat[lmstudio]@qwen3-30b |
core/compat,Name() 回 lmstudio@qwen3-30b |
groq@llama-3.3-70b(未知前綴) |
改寫為 compat[groq]@llama-3.3-70b,需 BaseURL |
groq(無 @) |
回 unknown provider 錯誤 |
方括號實例名讓同一個 compat 轉接層同時代表多個端點,Name() 會保留實例名,log 與用量統計才分得出來源。
換一家供應商
Name 是唯一要改的地方,其餘程式碼不動:
agent, err := router.New(router.Config{Name: "openai@gpt-5.1", APIKey: os.Getenv("OPENAI_API_KEY")})
agent, err = router.New(router.Config{Name: "gemini@gemini-3-pro", APIKey: os.Getenv("GEMINI_API_KEY")})
agent, err = router.New(router.Config{Name: "deepseek@deepseek-chat", APIKey: os.Getenv("DEEPSEEK_API_KEY")})
未知前綴
未知前綴會自動落到 OpenAI 相容端點,只要補上 BaseURL:
agent, err := router.New(router.Config{
Name: "groq@llama-3.3-70b",
BaseURL: "https://api.groq.com/openai/v1",
APIKey: os.Getenv("GROQ_API_KEY"),
})