scrapeRL / backend /app /memory /__init__.py
NeerajCodz's picture
feat: implement hierarchical memory system
bb3ee41
"""Memory module for ScrapeRL agent memory management.
This module provides a multi-layered memory system for RL agents:
- **ShortTermMemory**: Episode-scoped dictionary storage that auto-clears
- **WorkingMemory**: LRU-based reasoning/scratch space with limited capacity
- **LongTermMemory**: Persistent vector storage with ChromaDB for semantic search
- **SharedMemory**: Thread-safe pub/sub and state sharing for multi-agent coordination
- **MemoryManager**: Unified interface to all memory layers
Example:
>>> from app.config import get_settings
>>> from app.memory import MemoryManager, MemoryType
>>>
>>> settings = get_settings()
>>> memory = MemoryManager(settings)
>>> await memory.initialize()
>>>
>>> # Store in short-term memory
>>> await memory.store("key", "value", MemoryType.SHORT_TERM)
>>>
>>> # Semantic search in long-term memory
>>> results = await memory.search("query", MemoryType.LONG_TERM)
>>>
>>> # Cleanup
>>> await memory.shutdown()
"""
from app.memory.long_term import Document, LongTermMemory, SearchResult
from app.memory.manager import MemoryManager, MemoryStats, MemoryType
from app.memory.shared import Channel, Message, SharedMemory, Subscription
from app.memory.short_term import MemoryEntry, ShortTermMemory
from app.memory.working import WorkingMemory, WorkingMemoryItem
__all__ = [
# Manager
"MemoryManager",
"MemoryStats",
"MemoryType",
# Short-term
"ShortTermMemory",
"MemoryEntry",
# Working
"WorkingMemory",
"WorkingMemoryItem",
# Long-term
"LongTermMemory",
"Document",
"SearchResult",
# Shared
"SharedMemory",
"Channel",
"Message",
"Subscription",
]