praval.memory.memory_types

Memory types and data structures for Praval agents

Classes

MemoryEntry(id, agent_id, memory_type, ...)

A single memory entry

MemoryQuery(query_text[, memory_types, ...])

A memory search query

MemorySearchResult(entries, scores, query, ...)

Result of a memory search

MemoryType(*values)

Types of memory entries

class praval.memory.memory_types.MemoryType(*values)[source]

Bases: Enum

Types of memory entries

SHORT_TERM = 'short_term'
EPISODIC = 'episodic'
SEMANTIC = 'semantic'
PROCEDURAL = 'procedural'
EMOTIONAL = 'emotional'
class praval.memory.memory_types.MemoryEntry(id, agent_id, memory_type, content, metadata, embedding=None, created_at=None, accessed_at=None, access_count=0, importance=0.5)[source]

Bases: object

A single memory entry

Parameters:
  • id (str)

  • agent_id (str)

  • memory_type (MemoryType)

  • content (str)

  • metadata (Dict[str, Any])

  • embedding (List[float] | None)

  • created_at (datetime)

  • accessed_at (datetime)

  • access_count (int)

  • importance (float)

id: str
agent_id: str
memory_type: MemoryType
content: str
metadata: Dict[str, Any]
embedding: List[float] | None = None
created_at: datetime = None
accessed_at: datetime = None
access_count: int = 0
importance: float = 0.5
mark_accessed()[source]

Mark this memory as accessed

to_dict()[source]

Convert to dictionary for storage

Return type:

Dict[str, Any]

classmethod from_dict(data)[source]

Create from dictionary

Return type:

MemoryEntry

Parameters:

data (Dict[str, Any])

__init__(id, agent_id, memory_type, content, metadata, embedding=None, created_at=None, accessed_at=None, access_count=0, importance=0.5)
Parameters:
  • id (str)

  • agent_id (str)

  • memory_type (MemoryType)

  • content (str)

  • metadata (Dict[str, Any])

  • embedding (List[float] | None)

  • created_at (datetime)

  • accessed_at (datetime)

  • access_count (int)

  • importance (float)

Return type:

None

class praval.memory.memory_types.MemoryQuery(query_text, memory_types=None, agent_id=None, limit=10, similarity_threshold=0.7, include_metadata=True, temporal_filter=None)[source]

Bases: object

A memory search query

Parameters:
  • query_text (str)

  • memory_types (List[MemoryType])

  • agent_id (str | None)

  • limit (int)

  • similarity_threshold (float)

  • include_metadata (bool)

  • temporal_filter (Dict[str, datetime] | None)

query_text: str
memory_types: List[MemoryType] = None
agent_id: str | None = None
limit: int = 10
similarity_threshold: float = 0.7
include_metadata: bool = True
temporal_filter: Dict[str, datetime] | None = None
__init__(query_text, memory_types=None, agent_id=None, limit=10, similarity_threshold=0.7, include_metadata=True, temporal_filter=None)
Parameters:
  • query_text (str)

  • memory_types (List[MemoryType])

  • agent_id (str | None)

  • limit (int)

  • similarity_threshold (float)

  • include_metadata (bool)

  • temporal_filter (Dict[str, datetime] | None)

Return type:

None

class praval.memory.memory_types.MemorySearchResult(entries, scores, query, total_found)[source]

Bases: object

Result of a memory search

Parameters:
entries: List[MemoryEntry]
scores: List[float]
query: MemoryQuery
total_found: int
get_best_match()[source]

Get the best matching memory entry

Return type:

Optional[MemoryEntry]

get_above_threshold(threshold=0.8)[source]

Get entries above similarity threshold

Return type:

List[MemoryEntry]

Parameters:

threshold (float)

__init__(entries, scores, query, total_found)
Parameters:
Return type:

None