Crate openmemory

Crate openmemory 

Source
Expand description

§OpenMemory - Cognitive Memory System for AI Applications

OpenMemory is a sophisticated memory system that provides:

  • Cognitive Sectors: Automatic classification into episodic, semantic, procedural, emotional, and reflective memory
  • Hybrid Similarity Graph (HSG): Advanced retrieval combining vector similarity, token overlap, graph relationships, and recency
  • Memory Decay: Time-based salience decay with reinforcement on access
  • Multiple Embedding Providers: Synthetic (local), OpenAI, Ollama, Gemini, AWS Bedrock

§Quick Start

use openmemory::{OpenMemory, OpenMemoryOptions, AddOptions, QueryOptions};

#[tokio::main]
async fn main() -> openmemory::Result<()> {
    // Create an OpenMemory instance
    let om = OpenMemory::new(OpenMemoryOptions {
        db_path: "./data/memory.db".into(),
        ..Default::default()
    }).await?;

    // Add a memory
    let result = om.add("I learned Rust today!", AddOptions::default()).await?;
    println!("Added memory: {} (sector: {:?})", result.id, result.primary_sector);

    // Query memories
    let results = om.query("What did I learn?", QueryOptions::default()).await?;
    for mem in results {
        println!("[{:.2}] {}", mem.score, mem.content);
    }

    Ok(())
}

Re-exports§

pub use crate::core::config::Config;
pub use crate::core::config::ConfigBuilder;
pub use crate::core::db::Database;
pub use crate::core::error::Error;
pub use crate::core::error::Result;
pub use crate::memory::embed::create_provider;
pub use crate::memory::embed::EmbeddingProvider;
pub use crate::memory::hsg::classify_content;
pub use crate::memory::hsg::HsgEngine;
pub use crate::memory::decay::DecayConfig;
pub use crate::memory::decay::DecayEngine;
pub use crate::core::types::*;

Modules§

core
Core module containing fundamental types and utilities
memory
Memory processing engine
utils
Utility modules for text processing

Structs§

AddOptions
Options for adding a memory
EmbeddingInfo
Information about the embedding provider
OpenMemory
OpenMemory - Main API
OpenMemoryOptions
Options for creating an OpenMemory instance
QueryOptions
Options for querying memories