diff --git a/crates/ai/src/assistant.rs b/crates/ai/src/assistant.rs index e6b62e4ea1532d3e9f9fde6f3867b1cda7e143c2..ce816f147bac15db7a12ac2dbc7666303ff098b5 100644 --- a/crates/ai/src/assistant.rs +++ b/crates/ai/src/assistant.rs @@ -621,7 +621,21 @@ impl Assistant { messages: self .messages(cx) .filter(|message| matches!(message.status, MessageStatus::Done)) - .map(|message| message.to_open_ai_message(self.buffer.read(cx))) + .flat_map(|message| { + let mut system_message = None; + if message.id == selected_message_id { + system_message = Some(RequestMessage { + role: Role::System, + content: concat!( + "Treat the following messages as additional knowledge you have learned about, ", + "but act as if they were not part of this conversation. That is, treat them ", + "as if the user didn't see them and couldn't possibly inquire about them." + ).into() + }); + } + + Some(message.to_open_ai_message(self.buffer.read(cx))).into_iter().chain(system_message) + }) .chain(Some(RequestMessage { role: Role::System, content: format!(