From 2625f33d42e76644834c3dbc704b764fb0ff6263 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Wed, 19 Nov 2025 08:08:14 +0000 Subject: [PATCH] fix: disable native tools for Gemini models in OpenAI compatible provider When using Gemini models via OpenAI Compatible provider, they do not support native OpenAI tool calling format and require XML-style tool calls instead. This fix detects Gemini models by their model ID and disables supportsNativeTools to force XML protocol. Fixes #9385 --- src/api/providers/openai.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/api/providers/openai.ts b/src/api/providers/openai.ts index 79d65e82e2..47ab6b75f1 100644 --- a/src/api/providers/openai.ts +++ b/src/api/providers/openai.ts @@ -314,7 +314,14 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl override getModel() { const id = this.options.openAiModelId ?? "" - const info = this.options.openAiCustomModelInfo ?? openAiModelInfoSaneDefaults + let info = this.options.openAiCustomModelInfo ?? openAiModelInfoSaneDefaults + + // Gemini models don't support native OpenAI tool calling format when accessed via OpenAI Compatible endpoints + // They require XML-style tool calls instead + if (id.toLowerCase().includes("gemini")) { + info = { ...info, supportsNativeTools: false } + } + const params = getModelParams({ format: "openai", modelId: id, model: info, settings: this.options }) return { id, info, ...params } }