Skip to main content

vtcode_config/models/model_id/
defaults.rs

1use crate::models::Provider;
2
3use super::ModelId;
4
5impl ModelId {
6    /// Get recommended fallback models in order of preference
7    pub fn fallback_models() -> Vec<ModelId> {
8        vec![
9            ModelId::Gemini3FlashPreview,
10            ModelId::GPT52,
11            ModelId::GPT5,
12            ModelId::OpenAIGptOss20b,
13            ModelId::ClaudeOpus46,
14            ModelId::ClaudeSonnet46,
15            ModelId::DeepSeekReasoner,
16            ModelId::ZaiGlm5,
17        ]
18    }
19
20    /// Get the default model for general use
21    pub fn default_model() -> Self {
22        ModelId::Gemini3FlashPreview
23    }
24
25    /// Get the default orchestrator model (more capable)
26    pub fn default_orchestrator() -> Self {
27        ModelId::Gemini31ProPreview
28    }
29
30    /// Get provider-specific defaults for orchestrator
31    pub fn default_orchestrator_for_provider(provider: Provider) -> Self {
32        match provider {
33            Provider::Gemini => ModelId::Gemini31ProPreview,
34            Provider::OpenAI => ModelId::GPT5,
35            Provider::Anthropic => ModelId::ClaudeOpus46,
36            Provider::Minimax => ModelId::MinimaxM25,
37            Provider::DeepSeek => ModelId::DeepSeekReasoner,
38            Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
39            Provider::Moonshot => ModelId::Gemini31ProPreview,
40            Provider::OpenRouter => ModelId::OpenRouterQwen3Coder,
41            Provider::Ollama => ModelId::OllamaGptOss20b,
42            Provider::LmStudio => ModelId::GPT5,
43            Provider::ZAI => ModelId::ZaiGlm5,
44        }
45    }
46
47    /// Get provider-specific defaults for single agent
48    pub fn default_single_for_provider(provider: Provider) -> Self {
49        match provider {
50            Provider::Gemini => ModelId::Gemini3FlashPreview,
51            Provider::OpenAI => ModelId::GPT5,
52            Provider::Anthropic => ModelId::ClaudeOpus46,
53            Provider::Minimax => ModelId::MinimaxM25,
54            Provider::DeepSeek => ModelId::DeepSeekReasoner,
55            Provider::HuggingFace => ModelId::HuggingFaceOpenAIGptOss120b,
56            Provider::Moonshot => ModelId::Gemini3FlashPreview,
57            Provider::OpenRouter => ModelId::OpenRouterQwen3Coder,
58            Provider::Ollama => ModelId::OllamaGptOss20b,
59            Provider::LmStudio => ModelId::GPT5,
60            Provider::ZAI => ModelId::ZaiGlm5,
61        }
62    }
63}