What exactly is a “memory”?
A memory is a typed, versioned statement linked to an entity.type:fact | event | document | note | profile | chunkentity_id(optional): the focal entity this memory belongs to
subject,predicate,object_text | object_num | object_entity,object_type,unit,valid_from,valid_to,confidence,keys[]
actor,verb,target,timestamp
namespace,tags[],metadata,status(active | superseded | disputed),sensitivity(auto | pii),provenance,created_at,updated_atmemory_id: unique id (UUID/ULID)
Indexing & retrieval
Text and structured fields are embedded and indexed with Postgres + pgvector (HNSW) and full‑text search. Retrieval blends:- semantic similarity, keyword/BM25, recency, predicate/entity priors, confidence, and optional graph proximity.
/v0/context/assemble packs the highest‑value items under a token budget, emits a summary, and can extract+ingest new facts from the current turn.
Supersession
Usekeys[] (for example, ["{subject}|{predicate}"]) to ensure only one active fact per key. New writes supersede prior ones:
- previous rows are marked
status: superseded valid_tois set to now
status=active and your namespace/entity_id.