From 03600f3121071b35e21af477460d2fadc305d0b3 Mon Sep 17 00:00:00 2001 From: Yijia-Xiao Date: Sun, 14 Jun 2026 17:03:17 +0000 Subject: [PATCH] chore(models): refresh the model catalog to current provider lineups Verified each provider's hard-coded list against current official docs: - MiniMax: add MiniMax-M3 (1M ctx, multimodal) as the default; keep M2.7 line. - Qwen: use the live qwen{3.7,3.6}-{plus,max} IDs. - GLM: add glm-5.2 as the latest flagship. - xAI: drop deprecated grok-4-fast-* / grok-4-0709 builds. - DeepSeek: migrate to deepseek-v4-pro / deepseek-v4-flash (the chat/reasoner aliases are deprecated 2026-07-24 and now map to V4 Flash). OpenAI, Anthropic, and Gemini were already current and are unchanged. --- README.md | 4 +- tests/test_capabilities.py | 2 +- tradingagents/llm_clients/model_catalog.py | 43 +++++++++++----------- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index a047ae6ad..90dbf11f3 100644 --- a/README.md +++ b/README.md @@ -147,8 +147,8 @@ export DASHSCOPE_API_KEY=... # Qwen — International (dashscope-intl.aliy export DASHSCOPE_CN_API_KEY=... # Qwen — China (dashscope.aliyuncs.com) export ZHIPU_API_KEY=... # GLM via Z.AI (international) export ZHIPU_CN_API_KEY=... # GLM via BigModel (China, open.bigmodel.cn) -export MINIMAX_API_KEY=... # MiniMax — Global (api.minimax.io, M2.x, 204K ctx) -export MINIMAX_CN_API_KEY=... # MiniMax — China (api.minimaxi.com, M2.x, 204K ctx) +export MINIMAX_API_KEY=... # MiniMax — Global (api.minimax.io) +export MINIMAX_CN_API_KEY=... # MiniMax — China (api.minimaxi.com) export OPENROUTER_API_KEY=... # OpenRouter export ALPHA_VANTAGE_API_KEY=... # Alpha Vantage ``` diff --git a/tests/test_capabilities.py b/tests/test_capabilities.py index 64adb9532..debbb756f 100644 --- a/tests/test_capabilities.py +++ b/tests/test_capabilities.py @@ -48,7 +48,7 @@ class TestPatternMatches: caps = get_capabilities("deepseek-reasoner-pro") assert caps.supports_tool_choice is False - def test_future_minimax_m3_inherits_thinking_quirks(self): + def test_minimax_m3_inherits_thinking_quirks(self): caps = get_capabilities("MiniMax-M3") assert caps.supports_tool_choice is False diff --git a/tradingagents/llm_clients/model_catalog.py b/tradingagents/llm_clients/model_catalog.py index 10b030ba1..5dff0aa09 100644 --- a/tradingagents/llm_clients/model_catalog.py +++ b/tradingagents/llm_clients/model_catalog.py @@ -24,7 +24,8 @@ _GLM_MODELS: dict[str, list[ModelOption]] = { ("Custom model ID", "custom"), ], "deep": [ - ("GLM-5.1 - Latest flagship, 204K ctx", "glm-5.1"), + ("GLM-5.2 - Latest flagship, 1M ctx", "glm-5.2"), + ("GLM-5.1 - 745B, 200K ctx", "glm-5.1"), ("GLM-5 - Flagship, 204K ctx", "glm-5"), ("GLM-4.7 - Previous-gen flagship", "glm-4.7"), ("Custom model ID", "custom"), @@ -44,14 +45,14 @@ _GLM_MODELS: dict[str, list[ModelOption]] = { # "Custom model ID". _QWEN_MODELS: dict[str, list[ModelOption]] = { "quick": [ - ("Qwen 3.6 Flash - Latest fast, agentic coding + vision-language", "qwen3.6-flash"), - ("Qwen 3.5 Flash - Previous-gen fast", "qwen3.5-flash"), + ("Qwen 3.7 Plus - Latest, balanced speed/cost", "qwen3.7-plus"), + ("Qwen 3.6 Plus - Previous-gen balanced", "qwen3.6-plus"), ("Custom model ID", "custom"), ], "deep": [ - ("Qwen 3.7 Max - Latest flagship reasoning agent, 1M ctx", "qwen3.7-max"), - ("Qwen 3.6 Plus - Vision-language, agentic coding", "qwen3.6-plus"), - ("Qwen 3.5 Plus - Previous-gen flagship", "qwen3.5-plus"), + ("Qwen 3.7 Max - Latest flagship, most intelligent, 1M ctx", "qwen3.7-max"), + ("Qwen 3.6 Max - Previous-gen flagship", "qwen3.6-max"), + ("Qwen 3.7 Plus - Balanced alternative", "qwen3.7-plus"), ("Custom model ID", "custom"), ], } @@ -59,20 +60,19 @@ _QWEN_MODELS: dict[str, list[ModelOption]] = { # Shared model list for MiniMax's global and CN endpoints (same IDs). # Full official lineup per platform.minimax.io/docs/api-reference/text-openai-api. -# All M2.x models share a 204,800-token context window. +# M3 carries a 1M-token context window; the M2.x line is 204,800 tokens. _MINIMAX_MODELS: dict[str, list[ModelOption]] = { "quick": [ - ("MiniMax-M2.7-highspeed - Faster M2.7, 204K ctx, ~100 TPS", "MiniMax-M2.7-highspeed"), + ("MiniMax-M3 - Latest, 1M ctx, native multimodal", "MiniMax-M3"), + ("MiniMax-M2.7-highspeed - Fast M2.7, 204K ctx, ~100 TPS", "MiniMax-M2.7-highspeed"), ("MiniMax-M2.5-highspeed - Previous-gen highspeed, 204K ctx", "MiniMax-M2.5-highspeed"), - ("MiniMax-M2.1-highspeed - M2.1 highspeed, 204K ctx", "MiniMax-M2.1-highspeed"), ("Custom model ID", "custom"), ], "deep": [ - ("MiniMax-M2.7 - Flagship, SOTA on coding/agent benchmarks, 204K ctx", "MiniMax-M2.7"), + ("MiniMax-M3 - Latest flagship, 1M ctx, multimodal coding/agent", "MiniMax-M3"), + ("MiniMax-M2.7 - Previous flagship, 204K ctx", "MiniMax-M2.7"), ("MiniMax-M2.7-highspeed - Same quality as M2.7, ~100 TPS", "MiniMax-M2.7-highspeed"), - ("MiniMax-M2.5 - Previous-gen flagship, 204K ctx", "MiniMax-M2.5"), - ("MiniMax-M2.1 - Earlier M2 line, 204K ctx", "MiniMax-M2.1"), - ("MiniMax-M2 - Base M2, 204K ctx", "MiniMax-M2"), + ("MiniMax-M2.5 - Earlier flagship, 204K ctx", "MiniMax-M2.5"), ("Custom model ID", "custom"), ], } @@ -123,26 +123,27 @@ MODEL_OPTIONS: ProviderModeOptions = { "xai": { "quick": [ ("Grok 4.3 - Latest flagship, fast with built-in reasoning", "grok-4.3"), + ("Grok 4.20 (Non-Reasoning) - Speed-optimized", "grok-4.20-0309-non-reasoning"), ("Grok Build 0.1 - Coding-specialized, 256K ctx", "grok-build-0.1"), - ("Grok 4 Fast (Non-Reasoning) - Speed optimized", "grok-4-fast-non-reasoning"), ], "deep": [ ("Grok 4.3 - Latest flagship, built-in reasoning, 1M ctx", "grok-4.3"), ("Grok 4.20 (Reasoning) - Previous-gen reasoning", "grok-4.20-0309-reasoning"), - ("Grok 4 Fast (Reasoning) - High-performance", "grok-4-fast-reasoning"), - ("Grok 4 - Flagship (dated build)", "grok-4-0709"), + ("Grok 4.20 Multi-Agent - Multi-agent reasoning", "grok-4.20-multi-agent-0309"), ], }, + # DeepSeek: the deepseek-chat / deepseek-reasoner aliases are deprecated + # (2026-07-24) and now map to V4 Flash; expose the V4 IDs directly. V4 Flash + # serves both non-thinking and thinking modes (the DeepSeekChatOpenAI client + # handles the reasoning_content round-trip). "deepseek": { "quick": [ - ("DeepSeek V4 Flash - Latest V4 fast model", "deepseek-v4-flash"), - ("DeepSeek V3.2", "deepseek-chat"), + ("DeepSeek V4 Flash - Latest fast model, thinking + non-thinking", "deepseek-v4-flash"), ("Custom model ID", "custom"), ], "deep": [ - ("DeepSeek V4 Pro - Latest V4 flagship model", "deepseek-v4-pro"), - ("DeepSeek V3.2 (thinking)", "deepseek-reasoner"), - ("DeepSeek V3.2", "deepseek-chat"), + ("DeepSeek V4 Pro - Latest flagship", "deepseek-v4-pro"), + ("DeepSeek V4 Flash - Fast, supports thinking", "deepseek-v4-flash"), ("Custom model ID", "custom"), ], },