Skip to main content

abu_agent/memory/
mod.rs

1mod sequential;
2mod slidingwindow;
3mod summary;
4mod retrieval;
5mod augmented;
6mod hierarchical;
7#[cfg(test)]
8mod test;
9
10use abu_base::chat::ChatMessage;
11pub use sequential::SequentialMemory;
12pub use slidingwindow::SliceWindowMemory;
13pub use summary::SummarizationMemory;
14pub use retrieval::RetrievalMemory;
15pub use augmented::AugmentedMemory;
16pub use hierarchical::HierarchicalMemory;
17
18#[allow(async_fn_in_trait)]
19pub trait Memory : Send + Sync {
20    type Error: std::error::Error + 'static + Send + Sync;
21
22    async fn add(&mut self, user_input: &str, ai_response: &str) -> Result<(), Self::Error>;
23    async fn search(&self, query: &str) -> Result<Vec<ChatMessage>, Self::Error>;
24    async fn clear(&mut self) -> Result<(), Self::Error>;
25}