A reusable AI memory layer for persistent context across sessions.
- Multiple memory types: Short-term, episodic, semantic, and procedural
- Pluggable storage: SQLite included, extensible for PostgreSQL, Redis, etc.
- Semantic retrieval: Optional embedding-based search (requires
embeddingsextra) - REST API: Optional standalone service deployment (requires
apiextra) - Async-first: Built on asyncio for efficient I/O
# Basic installation
pip install -e .
# With development tools
pip install -e ".[dev]"
# With embedding support
pip install -e ".[embeddings]"
# Everything
pip install -e ".[all]"import asyncio
from ai_memory import MemoryStore, MemoryType
from ai_memory.storage import SQLiteStorage
async def main():
# Initialize
storage = SQLiteStorage("memories.db")
memory = MemoryStore(storage=storage, source="my_app")
# Add a memory
await memory.add(
content="User prefers dark mode",
type=MemoryType.SEMANTIC,
importance=0.8,
)
# Recall relevant memories
results = await memory.recall("user preferences", limit=5)
for m in results:
print(f"[{m.type.value}] {m.content}")
await storage.close()
asyncio.run(main())| Type | Purpose | Lifespan |
|---|---|---|
SHORT_TERM |
Session context, recent messages | Minutes to hours |
EPISODIC |
Specific events/interactions | Days to months |
SEMANTIC |
Facts, preferences, knowledge | Long-term |
PROCEDURAL |
Learned patterns, workflows | Long-term |
ai-memory-system/
├── src/ai_memory/
│ ├── core/ # Core types and memory store
│ ├── storage/ # Storage backends (SQLite, etc.)
│ ├── retrieval/ # Retrieval strategies
│ └── api/ # REST API (optional)
├── tests/ # Test suite
├── examples/ # Usage examples
└── docs/ # Documentation
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black src tests
ruff check src tests
# Type checking
mypy srcPhase: Design/MVP
See docs/DESIGN-QUESTIONS.md for architecture decisions.
MIT