diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 32c376ca67..2f965e232a 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -1343,6 +1343,7 @@ impl Thread { for segment in &message.segments { match segment { MessageSegment::Text(text) => { + let text = text.trim_end(); if !text.is_empty() { request_message .content diff --git a/crates/language_models/src/provider/anthropic.rs b/crates/language_models/src/provider/anthropic.rs index 48bea47fec..aa500f4b4d 100644 --- a/crates/language_models/src/provider/anthropic.rs +++ b/crates/language_models/src/provider/anthropic.rs @@ -528,6 +528,11 @@ pub fn into_anthropic( .into_iter() .filter_map(|content| match content { MessageContent::Text(text) => { + let text = if text.chars().last().map_or(false, |c| c.is_whitespace()) { + text.trim_end().to_string() + } else { + text + }; if !text.is_empty() { Some(anthropic::RequestContent::Text { text,