File size: 1,735 Bytes
bb3ee41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
"""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",
]