abu-agent 0.2.0

Agent development library
Documentation
mod sequential;
mod slidingwindow;
mod summary;
mod retrieval;
mod augmented;
mod hierarchical;
#[cfg(test)]
mod test;

use abu_base::chat::ChatMessage;
pub use sequential::SequentialMemory;
pub use slidingwindow::SliceWindowMemory;
pub use summary::SummarizationMemory;
pub use retrieval::RetrievalMemory;
pub use augmented::AugmentedMemory;
pub use hierarchical::HierarchicalMemory;

#[allow(async_fn_in_trait)]
pub trait Memory : Send + Sync {
    type Error: std::error::Error + 'static + Send + Sync;

    async fn add(&mut self, user_input: &str, ai_response: &str) -> Result<(), Self::Error>;
    async fn search(&self, query: &str) -> Result<Vec<ChatMessage>, Self::Error>;
    async fn clear(&mut self) -> Result<(), Self::Error>;
}