From 740c580c16045f750505f273d3d2b3ae29772e61 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Tue, 15 Jul 2025 09:17:25 +0000 Subject: [PATCH] fix: resolve moonshotai/kimi-k2-instruct max_tokens limit issue - Update moonshotai/kimi-k2-instruct maxTokens from 8192 to 16384 to match API limit - Add validation in BaseOpenAiCompatibleProvider to ensure max_tokens never exceeds model limits - Prevent 400 error when users set modelMaxTokens above API constraints Fixes #5729 --- packages/types/src/providers/groq.ts | 2 +- src/api/providers/base-openai-compatible-provider.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/types/src/providers/groq.ts b/packages/types/src/providers/groq.ts index 99bf4be3d0..2eac1f954a 100644 --- a/packages/types/src/providers/groq.ts +++ b/packages/types/src/providers/groq.ts @@ -89,7 +89,7 @@ export const groqModels = { description: "DeepSeek R1 Distill Llama 70B model, 128K context.", }, "moonshotai/kimi-k2-instruct": { - maxTokens: 8192, + maxTokens: 16384, contextWindow: 131072, supportsImages: false, supportsPromptCache: false, diff --git a/src/api/providers/base-openai-compatible-provider.ts b/src/api/providers/base-openai-compatible-provider.ts index f196b5f309..6b472dae63 100644 --- a/src/api/providers/base-openai-compatible-provider.ts +++ b/src/api/providers/base-openai-compatible-provider.ts @@ -69,11 +69,16 @@ export abstract class BaseOpenAiCompatibleProvider ): ApiStream { const { id: model, - info: { maxTokens: max_tokens }, + info: { maxTokens: modelMaxTokens }, } = this.getModel() const temperature = this.options.modelTemperature ?? this.defaultTemperature + // Ensure max_tokens doesn't exceed the model's configured limit + // Users can override with modelMaxTokens, but it should not exceed the model's actual API limit + const userMaxTokens = this.options.modelMaxTokens + const max_tokens = userMaxTokens ? Math.min(userMaxTokens, modelMaxTokens) : modelMaxTokens + const params: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = { model, max_tokens,