diff --git a/.changeset/quiet-rabbits-bathe.md b/.changeset/quiet-rabbits-bathe.md new file mode 100644 index 00000000..cbd13a6b --- /dev/null +++ b/.changeset/quiet-rabbits-bathe.md @@ -0,0 +1,10 @@ +--- +"task-master-ai": patch +--- + +Fix max_tokens limits for OpenRouter and Groq models + +- Add special handling in config-manager.js for custom OpenRouter models to use a conservative default of 32,768 max_tokens +- Update qwen/qwen-turbo model max_tokens from 1,000,000 to 32,768 to match OpenRouter's actual limits +- Fix moonshotai/kimi-k2-instruct max_tokens to 16,384 to match Groq's actual limit (fixes #1028) +- This prevents "maximum context length exceeded" errors when using OpenRouter models not in our supported models list \ No newline at end of file diff --git a/scripts/modules/config-manager.js b/scripts/modules/config-manager.js index 2f8211b6..f71a0662 100644 --- a/scripts/modules/config-manager.js +++ b/scripts/modules/config-manager.js @@ -584,10 +584,21 @@ function getParametersForRole(role, explicitRoot = null) { ); } } else { - log( - 'debug', - `No model definitions found for provider ${providerName} in MODEL_MAP. Using role default maxTokens: ${roleMaxTokens}` - ); + // Special handling for custom OpenRouter models + if (providerName === CUSTOM_PROVIDERS.OPENROUTER) { + // Use a conservative default for OpenRouter models not in our list + const openrouterDefault = 32768; + effectiveMaxTokens = Math.min(roleMaxTokens, openrouterDefault); + log( + 'debug', + `Custom OpenRouter model ${modelId} detected. Using conservative max_tokens: ${effectiveMaxTokens}` + ); + } else { + log( + 'debug', + `No model definitions found for provider ${providerName} in MODEL_MAP. Using role default maxTokens: ${roleMaxTokens}` + ); + } } } catch (lookupError) { log( diff --git a/scripts/modules/supported-models.json b/scripts/modules/supported-models.json index abcdd56f..0409cbc8 100644 --- a/scripts/modules/supported-models.json +++ b/scripts/modules/supported-models.json @@ -333,7 +333,7 @@ "output": 3.0 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 131072, + "max_tokens": 16384, "supported": true }, { @@ -701,7 +701,7 @@ "output": 0.2 }, "allowed_roles": ["main", "fallback"], - "max_tokens": 1000000, + "max_tokens": 32768, "supported": true }, {