pub struct ConversationMemory { /* private fields */ }Expand description
In-memory conversation memory — stores message history for the session.
With durable execution, messages can be serialized to disk between iterations so the agent loop can survive process restarts.
Implementations§
Source§impl ConversationMemory
impl ConversationMemory
Sourcepub fn new(system_prompt: &str, max_messages: usize) -> Self
pub fn new(system_prompt: &str, max_messages: usize) -> Self
Create a new conversation memory with the given system prompt.
max_messages caps history length (oldest user/assistant pairs are dropped first).
Sourcepub fn add_user_message(&mut self, content: &str) -> &[ChatMessage]
pub fn add_user_message(&mut self, content: &str) -> &[ChatMessage]
Add a user message and return the full message history for an LLM call.
Sourcepub fn add_assistant_message(&mut self, content: &str)
pub fn add_assistant_message(&mut self, content: &str)
Add an assistant message to history.
Sourcepub fn history(&self) -> &[ChatMessage]
pub fn history(&self) -> &[ChatMessage]
Get the current message history.
Sourcepub fn from_history(messages: Vec<ChatMessage>, max_messages: usize) -> Self
pub fn from_history(messages: Vec<ChatMessage>, max_messages: usize) -> Self
Create a ConversationMemory from an existing message history. Used when restoring from a checkpoint.
Trait Implementations§
Source§impl Clone for ConversationMemory
impl Clone for ConversationMemory
Source§fn clone(&self) -> ConversationMemory
fn clone(&self) -> ConversationMemory
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ConversationMemory
impl Debug for ConversationMemory
Source§impl<'de> Deserialize<'de> for ConversationMemory
impl<'de> Deserialize<'de> for ConversationMemory
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ConversationMemory
impl RefUnwindSafe for ConversationMemory
impl Send for ConversationMemory
impl Sync for ConversationMemory
impl Unpin for ConversationMemory
impl UnsafeUnpin for ConversationMemory
impl UnwindSafe for ConversationMemory
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request