pub fn split_pinned_system(
messages: Vec<Message>,
) -> (Option<Message>, Vec<Message>)Expand description
Split a message list into its leading system message, if any, and the conversation turns that follow.
Only a system message at index 0 is treated as pinned; a later system message is an ordinary turn (for example a summarization marker) and stays in the reducible history.
ยงExamples
use universal_agent_runtime::llm::{Message, MessageContent, MessageRole};
use universal_agent_runtime::uar::context::split_pinned_system;
let msgs = vec![
Message { role: MessageRole::System, content: MessageContent::text("s"), tool_call_id: None, tool_calls: None },
Message { role: MessageRole::User, content: MessageContent::text("u"), tool_call_id: None, tool_calls: None },
];
let (system, history) = split_pinned_system(msgs);
assert!(system.is_some());
assert_eq!(history.len(), 1);