v0.8.4

模型路由

最後更新

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"),
})

相關頁面

EN