Browse Source

Fix OpenAI Native parallel tool calls for native protocol (#9433)

Fixes an issue where using the OpenAI Native provider together with Native Tool Calling could cause OpenAI’s Responses API to fail with errors like:
Hannes Rudolph 1 month ago
parent
commit
f7d6daedff
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/api/providers/openai-native.ts

+ 7 - 0
src/api/providers/openai-native.ts

@@ -244,6 +244,7 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
 				strict?: boolean
 			}>
 			tool_choice?: any
+			parallel_tool_calls?: boolean
 		}
 
 		// Validate requested tier against model support; if not supported, omit.
@@ -302,6 +303,12 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio
 			...(metadata?.tool_choice && { tool_choice: metadata.tool_choice }),
 		}
 
+		// For native tool protocol, explicitly disable parallel tool calls.
+		// For XML or when protocol is unset, omit the field entirely so the API default applies.
+		if (metadata?.toolProtocol === "native") {
+			body.parallel_tool_calls = false
+		}
+
 		// Include text.verbosity only when the model explicitly supports it
 		if (model.info.supportsVerbosity === true) {
 			body.text = { verbosity: (verbosity || "medium") as VerbosityLevel }