- Four-tier memory system: working / episodic / semantic / archived
- TF-IDF retrieval with composite scoring (importance + recency + frequency + semantic)
- Token-budget context assembly
- Tag + entity graph memory with lateral traversal
- Score- and age-based garbage collection with tier migration
- FastAPI REST interface with OpenAPI docs
- Thread-safe in-memory storage
- Unit tests with FastAPI TestClient
- SQLite backend via SQLAlchemy (one-file swap for
storage.py) - Memory snapshots: export/import to JSON —
GET /memories/export,POST /memories/import - Configurable storage backend via environment variable —
PMA_STORAGE=sqlite(default) ormemory; DB path viaPMA_DB_PATH
- Local dense embeddings with
sentence-transformers - Hybrid BM25 + dense re-rank
- Approximate nearest-neighbor index (FAISS or
usearch) - Cross-session memory deduplication
- MCP server endpoint for direct Claude Code / Claude Desktop integration
- OpenAI-compatible function-call interface (
remember,recall,forget) - Agent session namespacing (multi-tenant memory) —
namespacefield on all memories;PMA_NAMESPACEenv var scopes MCP server per-project - Streaming context assembly for large budgets
- Prometheus
/metricsendpoint - Per-memory audit log (access history)
- GC run history and tier-migration event stream
- Dashboard (simple HTML/JS served by FastAPI)
- Redis-backed store for horizontal scaling
- Multi-agent shared memory with conflict resolution
- Access control and scoped memory per agent ID
- Docker image +
docker-compose.yml - Full async FastAPI with async storage backend