- python sdk: simplified to zero-config
Memory()api matching javascriptfrom openmemory.client import Memory→mem = Memory()- works out of the box with sensible defaults (in-memory sqlite, fast tier, synthetic embeddings)
- optional configuration via environment variables or constructor
- breaking change: moved from
OpenMemoryclass toMemoryclass
- implemented comprehensive benchmark suite in
temp/benchmarks/- typescript-based using
tsxfor execution - supports longmemeval dataset evaluation
- multi-backend comparison (openmemory, mem0, zep, supermemory)
- typescript-based using
- created
src/main.tsconsolidated benchmark runner- environment validation
- backend instantiation checks
- sequential benchmark execution with detailed logging
-
Memory.wipe(): added database wipe functionality for testingclear_allimplementation indb.tsfor postgres and sqlite- clears memories, vectors, waypoints, and users tables
- useful for benchmark isolation and test cleanup
-
environment variable overrides:
OM_OLLAMA_MODEL: override ollama embedding modelOM_OPENAI_MODEL: override openai embedding modelOM_VEC_DIM: configure vector dimension (critical for embedding compatibility)OM_DB_PATH: sqlite database path (supports:memory:)
- added comprehensive logging to
PostgresVectorStore- logs vector storage operations with id, sector, dimension
- logs search operations with sector and result count
- aids in debugging retrieval issues
-
embedding configuration:
- fixed
models.tsto respectOM_OLLAMA_MODELenvironment variable - resolved dimension mismatch issues (768 vs 1536) for embeddinggemma
- ensured
OM_TIER=deepuses semantic embeddings (not synthetic fallback)
- fixed
-
benchmark data isolation:
- implemented proper database reset between benchmark runs
- fixed simhash collision issues causing cross-user contamination
- added
resetUser()functionality callingMemory.wipe()
-
configuration loading:
- fixed dotenv timing issues in benchmark suite
- ensured environment variables load before openmemory-js initialization
- corrected dataset path resolution (
longmemeval_s.json)
-
comprehensive readme updates:
- root
README.md: language-agnostic, showcases both python & javascript sdks packages/openmemory-js/README.md: complete api reference, mcp integration, examplespackages/openmemory-py/README.md: zero-config usage, all embedding providers
- root
-
api documentation:
- environment variables with descriptions
- cognitive sectors explanation
- performance tiers breakdown
- embedding provider configurations
- type safety: added lint error handling in benchmark adapters
- code organization: separated generator, judge, and backend interfaces
- debug tooling: created dimension check script (
check_dim.ts) - logging standardization: consistent
[Component]prefix pattern
- python sdk now uses
from openmemory.client import Memoryinstead offrom openmemory import OpenMemory Memory()constructor signature changed to accept optional parameters (was required)- benchmark suite moved to typescript (was python)
- memory consolidation edge cases
- multi-user query isolation
- vector dimension handling
- performance optimizations for large datasets
- enhanced sector classification accuracy
- multi-sector memory architecture
- cognitive decay system
- reflection and consolidation
- initial typescript sdk release
- sqlite vector store
- basic query and add operations
- python sdk
- local-first architecture
- basic memory operations