Skip to main content

Memory Model

The core Memory class is the fundamental building block of Reeflect, representing a discrete piece of information that can be stored, retrieved, and reasoned with.

Memory Structure​

@dataclass
class Memory:
# Core fields
id: str = field(default_factory=lambda: str(uuid.uuid4()))
content: str = "" # The actual content of the memory
namespace: str = "default" # Organizational namespace
memory_type: MemoryType = MemoryType.PERSISTENT
status: MemoryStatus = MemoryStatus.ACTIVE

# Metadata and tracking
created_at: datetime = field(default_factory=datetime.now)
updated_at: datetime = field(default_factory=datetime.now)
last_accessed: Optional[datetime] = None
access_count: int = 0

# Semantic understanding
embedding: Optional[List[float]] = None # Vector embedding
tags: List[str] = field(default_factory=list) # Categorical tags

# Intelligence attributes
importance: float = 0.5 # Importance score (0.0-1.0)
confidence: float = 1.0 # Confidence in accuracy (0.0-1.0)
metadata: Dict[str, Any] = field(default_factory=dict)

# Relationships
relations: List[MemoryRelation] = field(default_factory=list)

# Access control
permissions: MemoryPermissions = field(default_factory=lambda:
MemoryPermissions(owner="system"))

Memory Types​

TypeDescriptionUse Cases
SESSIONTemporary memory for current interactionCurrent conversation, Temporary context
PERSISTENTLong-term stored memoryUser preferences, Important facts, Recurring information
SYNTHETICAI-generated or inferred memorySummarized knowledge, Inferred preferences, Generated insights

Memory Relationships​

Memories can be connected through relationships, forming a knowledge graph structure that enables more sophisticated reasoning and retrieval.

@dataclass
class MemoryRelation:
"""Represents a relationship between memories."""

target_id: str # ID of the target memory
relation_type: MemoryRelationType # Type of relationship
confidence: float = 1.0 # Confidence in the relationship (0.0-1.0)
metadata: Dict[str, Any] = field(default_factory=dict)

The following relationship types are available:

  • SUPPORTS - Memory supports or reinforces another memory
  • CONTRADICTS - Memory contradicts or conflicts with another memory
  • EXTENDS - Memory extends or elaborates on another memory
  • PRECEDES - Memory comes before another in a sequence
  • FOLLOWS - Memory comes after another in a sequence
  • RELATED - General relationship without specific type
Best Practice

Use memory relationships to build a rich knowledge graph that enables more sophisticated reasoning and retrieval. Relationships help the system understand how different pieces of information connect and influence each other.

Next Steps​

Explore Storage Systems to learn how Reeflect persists memories for long-term use and efficient retrieval.