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§
Sourcefn create_episode(&self, episode: &Episode) -> Result<()>
fn create_episode(&self, episode: &Episode) -> Result<()>
Create a new episode
Sourcefn search_episodes(
&self,
query: &str,
k: usize,
) -> Result<Vec<EpisodeSearchResult>>
fn search_episodes( &self, query: &str, k: usize, ) -> Result<Vec<EpisodeSearchResult>>
Search episodes by vector similarity
Sourcefn append_event(&self, event: &Event) -> Result<()>
fn append_event(&self, event: &Event) -> Result<()>
Append an event to an episode
Sourcefn get_timeline(
&self,
episode_id: &str,
max_events: usize,
) -> Result<Vec<Event>>
fn get_timeline( &self, episode_id: &str, max_events: usize, ) -> Result<Vec<Event>>
Get timeline for an episode
Sourcefn upsert_entity(&self, entity: &Entity) -> Result<()>
fn upsert_entity(&self, entity: &Entity) -> Result<()>
Create or update an entity
Sourcefn search_entities(
&self,
kind: Option<EntityKind>,
query: &str,
k: usize,
) -> Result<Vec<EntitySearchResult>>
fn search_entities( &self, kind: Option<EntityKind>, query: &str, k: usize, ) -> Result<Vec<EntitySearchResult>>
Search entities by kind and vector similarity
Sourcefn get_entity_facts(&self, entity_id: &str) -> Result<EntityFacts>
fn get_entity_facts(&self, entity_id: &str) -> Result<EntityFacts>
Get facts for an entity (attributes + linked episodes)