MemoryStore

Trait MemoryStore 

Source
pub trait MemoryStore {
    // Required methods
    fn create_episode(&self, episode: &Episode) -> Result<()>;
    fn get_episode(&self, episode_id: &str) -> Result<Option<Episode>>;
    fn search_episodes(
        &self,
        query: &str,
        k: usize,
    ) -> Result<Vec<EpisodeSearchResult>>;
    fn append_event(&self, event: &Event) -> Result<()>;
    fn get_timeline(
        &self,
        episode_id: &str,
        max_events: usize,
    ) -> Result<Vec<Event>>;
    fn upsert_entity(&self, entity: &Entity) -> Result<()>;
    fn get_entity(&self, entity_id: &str) -> Result<Option<Entity>>;
    fn search_entities(
        &self,
        kind: Option<EntityKind>,
        query: &str,
        k: usize,
    ) -> Result<Vec<EntitySearchResult>>;
    fn get_entity_facts(&self, entity_id: &str) -> Result<EntityFacts>;
}
Expand description

Core memory operations trait

Required Methods§

Source

fn create_episode(&self, episode: &Episode) -> Result<()>

Create a new episode

Source

fn get_episode(&self, episode_id: &str) -> Result<Option<Episode>>

Get an episode by ID

Source

fn search_episodes( &self, query: &str, k: usize, ) -> Result<Vec<EpisodeSearchResult>>

Search episodes by vector similarity

Source

fn append_event(&self, event: &Event) -> Result<()>

Append an event to an episode

Source

fn get_timeline( &self, episode_id: &str, max_events: usize, ) -> Result<Vec<Event>>

Get timeline for an episode

Source

fn upsert_entity(&self, entity: &Entity) -> Result<()>

Create or update an entity

Source

fn get_entity(&self, entity_id: &str) -> Result<Option<Entity>>

Get an entity by ID

Source

fn search_entities( &self, kind: Option<EntityKind>, query: &str, k: usize, ) -> Result<Vec<EntitySearchResult>>

Search entities by kind and vector similarity

Source

fn get_entity_facts(&self, entity_id: &str) -> Result<EntityFacts>

Get facts for an entity (attributes + linked episodes)

Implementors§