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:
This commit is contained in:
Hannes Rudolph 2025-11-20 09:38:33 -07:00 committed by GitHub
parent 1201b0fd8d
commit f7d6daedff
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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 }