Skip to main content

Crate mnemo_graph

Crate mnemo_graph 

Source
Expand description

Bitemporal graph layer for Mnemo.

Inspired by Graphiti (repo, paper). The model is the same: every edge carries valid_from / valid_to (when the fact is true in the world) plus recorded_at (when the system saw it), so historical queries can ask “what did we believe at time T?” without losing later corrections.

valid_from              valid_to (None = still true)
    ^                       ^
    |   fact validity       |
    +-----------------------+
    |
    +-- recorded_at (when we wrote the row)

Today this crate ships:

  1. The TemporalEdge type and a GraphStore async trait.
  2. A DuckDB-backed DuckGraphStore that creates graph_nodes and graph_edges tables on first use and supports the round-trip
    • bitemporal as_of walk needed by retrieval.
  3. graph_expand — bounded BFS that respects as_of filtering and a maximum depth.

The LLM-driven TemporalEdge::extract path is feature-gated under graph-extract and currently returns an empty Vec. A real extractor lands in v0.4.0 final once the prompt + ICL examples are tuned.

Re-exports§

pub use crate::model::TemporalEdge;
pub use crate::store::GraphStore;
pub use crate::store::duckdb::DuckGraphStore;

Modules§

extract
Edge extraction from natural-language memory content.
model
store

Functions§

graph_expand
Bounded BFS from seed that respects bitemporal validity at as_of and a max walk depth.