From 8928fb92bed34f57386362183cc4dece04614fc8 Mon Sep 17 00:00:00 2001 From: "Dhanji R. Prasanna" Date: Sat, 29 Nov 2025 16:13:00 +1100 Subject: [PATCH] append instead of replace system msg --- crates/g3-providers/src/anthropic.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/crates/g3-providers/src/anthropic.rs b/crates/g3-providers/src/anthropic.rs index fc8fcbf..2dd3ca3 100644 --- a/crates/g3-providers/src/anthropic.rs +++ b/crates/g3-providers/src/anthropic.rs @@ -103,7 +103,7 @@ use serde::{Deserialize, Serialize}; use std::time::Duration; use tokio::sync::mpsc; use tokio_stream::wrappers::ReceiverStream; -use tracing::{debug, error, warn}; +use tracing::{debug, error}; use crate::{ CompletionChunk, CompletionRequest, CompletionResponse, CompletionStream, LLMProvider, Message, @@ -223,10 +223,12 @@ impl AnthropicProvider { for message in messages { match message.role { MessageRole::System => { - if system_message.is_some() { - warn!("Multiple system messages found, using the last one"); + if let Some(existing) = system_message { + // Concatenate system messages instead of replacing + system_message = Some(format!("{}\n\n{}", existing, message.content)); + } else { + system_message = Some(message.content.clone()); } - system_message = Some(message.content.clone()); } MessageRole::User => { anthropic_messages.push(AnthropicMessage {