Optional storePersistence backend for memory traces.
The Phase 1 facade currently implements the SQLite path at runtime. Other values are reserved for future backends and will throw if selected.
'sqlite' – file-based SQLite (implemented; recommended).'memory' – reserved for a future in-process backend.'qdrant' – reserved for a future vector-database backend.'neo4j' – reserved for a future graph-database backend.'hnsw' – reserved for a future ANN-only backend.'sqlite'
Optional pathFile-system path for stores that require one (e.g. SQLite db file). Ignored by in-memory and remote stores.
'./data/agent-memory.sqlite'
Optional connectionPostgres connection string. Required when store='postgres'.
'postgresql://postgres:wunderland@localhost:5432/agent_memory'
Optional qdrantQdrant base URL. Required when store='qdrant'.
'http://localhost:6333'
Optional qdrantQdrant API key for cloud instances. Optional.
Optional embeddingsEmbedding model configuration (provider name + optional model).
Optional embedOptional embedding function for generating vectors at remember/recall time. When provided, enables HNSW vector search in recall() and stores embeddings alongside text in remember(). Without this, recall() falls back to FTS5-only.
const mem = await Memory.create({
embed: async (text) => {
const res = await openai.embeddings.create({ model: 'text-embedding-3-small', input: text });
return res.data[0].embedding;
},
});
Optional graphWhether to build and maintain a knowledge graph alongside the vector store. When enabled, entity co-occurrence and semantic edges are tracked.
false
Optional selfWhether the agent may autonomously refine and restructure its own memories (write new insight traces, prune contradictions, merge redundancies).
false
Optional decayWhether memory traces lose strength over time following an Ebbinghaus forgetting-curve model.
true
Optional consolidationConsolidation schedule and thresholds.
Optional ingestionDocument ingestion settings applied to all ingest() calls by default.
Top-level configuration object for the Memory facade.
All fields are optional; sensible defaults are applied per field. A minimal
{}config is valid and will use a temporary SQLite brain file with graph + self-improvement enabled.