From bd1e940a81a22c7fa519e561d93b3f274a06c622 Mon Sep 17 00:00:00 2001 From: octo-patch Date: Sun, 12 Apr 2026 12:14:08 +0800 Subject: [PATCH] fix: skip presence_penalty and frequency_penalty for Grok-3-mini and Grok-4 models (fixes #6593) xAI's Grok-3-mini and Grok-4 models do not accept the presence_penalty and frequency_penalty request parameters. Sending these params causes an API error. This change detects these model families and removes the unsupported parameters from the request payload. --- app/client/platforms/xai.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/client/platforms/xai.ts b/app/client/platforms/xai.ts index 830ad4778ac..d87164b6412 100644 --- a/app/client/platforms/xai.ts +++ b/app/client/platforms/xai.ts @@ -76,6 +76,11 @@ export class XAIApi implements LLMApi { }, }; + // Grok-3-mini and Grok-4 models do not support presence_penalty and frequency_penalty + const isGrokMiniOrV4 = + /grok-3-mini/i.test(modelConfig.model) || + /grok-4/i.test(modelConfig.model); + const requestPayload: RequestPayload = { messages, stream: options.config.stream, @@ -86,6 +91,12 @@ export class XAIApi implements LLMApi { top_p: modelConfig.top_p, }; + if (isGrokMiniOrV4) { + // These models do not accept presence_penalty / frequency_penalty + delete (requestPayload as any).presence_penalty; + delete (requestPayload as any).frequency_penalty; + } + console.log("[Request] xai payload: ", requestPayload); const shouldStream = !!options.config.stream;