From 2eb10ab9fbb480af89c90cd2e29ef92358814a28 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 5 May 2025 22:04:56 -0700 Subject: [PATCH] openai: Don't append tool calls to prior assistant messages (#29969) Closes https://github.com/zed-industries/zed/issues/29821 Release Notes: - Fixed an issue in the agent panel where OpenAI requests would fail if the assistant begins its response with a tool call. --- crates/language_models/src/provider/open_ai.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/crates/language_models/src/provider/open_ai.rs b/crates/language_models/src/provider/open_ai.rs index 78d183cb28..db09bbf608 100644 --- a/crates/language_models/src/provider/open_ai.rs +++ b/crates/language_models/src/provider/open_ai.rs @@ -372,14 +372,10 @@ pub fn into_open_ai( }, }; - if let Some(last_assistant_message) = messages.iter_mut().rfind(|message| { - matches!(message, open_ai::RequestMessage::Assistant { .. }) - }) { - if let open_ai::RequestMessage::Assistant { tool_calls, .. } = - last_assistant_message - { - tool_calls.push(tool_call); - } + if let Some(open_ai::RequestMessage::Assistant { tool_calls, .. }) = + messages.last_mut() + { + tool_calls.push(tool_call); } else { messages.push(open_ai::RequestMessage::Assistant { content: None,