Memory Type Comparison

Rekall provides seven distinct memory types, each optimized for a specific pattern of storage, retrieval, and lifecycle management. Use this reference to choose the right type for your use case.

Comparison Table

TypeStorage BackendTTLSearch SupportContext SupportUse CaseAPI Prefix
EpisodicPostgreSQL + QdrantConfigurable (default: none)Semantic + temporal + filtersAgent, User, HiveConversation history, event logs, interaction records/v1/memories/episodic
SemanticNeo4j + GraphitiNone (persistent)Graph traversal + semanticAgent, User, HiveKnowledge graphs, entity relationships, domain facts/v1/memories/semantic
ProceduralPostgreSQLNone (persistent)Pattern matching + semanticAgent, User, HiveLearned workflows, repeatable processes, step-by-step procedures/v1/memories/procedural
Long-TermPostgreSQL + QdrantDecay curve (strengthens on retrieval)Semantic + relevance scoringAgent, UserConsolidated knowledge, important facts, core preferences/v1/memories/long-term
Short-TermRedisSession-scoped (default: 3h)Key lookup + recencyAgent, SessionWorking context, current conversation state, temporary data/v1/memories/short-term
ExecutionPostgreSQL + RedisTask-scoped (configurable)Task ID + status filtersAgentAgent task state, checkpoints, pause/resume, execution logs/v1/memories/execution
PreferencesPostgreSQLNone (persistent)Category + confidence scoringUserUser preferences, inferred settings, personalization data/v1/memories/preferences

Storage Backends

storage

PostgreSQL + Qdrant

PostgreSQL for structured memory data, Qdrant for vector embeddings. Supports semantic search via cosine similarity with HNSW indexing.

EpisodicLong-Term
hub

Neo4j + Graphiti

Native graph database for knowledge graphs via Graphiti. Supports entity-relationship modeling, graph traversal, and temporal knowledge management.

Semantic
database

PostgreSQL

Relational storage for structured data without vector requirements. Used for workflows, preferences, and execution metadata.

ProceduralPreferences
speed

Redis

In-memory store for session-scoped data requiring sub-millisecond access. Data is ephemeral by design.

Short-Term
layers

PostgreSQL + Redis

Hybrid storage combining persistent checkpoints with real-time state. Execution metadata in PostgreSQL, active state in Redis.

Execution

Decision Flowchart

Use this flowchart to determine which memory type best fits your requirements.

Is the data session-scoped or temporary?

Yes: Is it agent task state with checkpoints?

Yes: Use Execution memory

No: Use Short-Term memory

No: Is it about user preferences or personalization?

Yes: Use Preferences memory

No: Is it a workflow or repeatable process?

Yes: Use Procedural memory

No: Is it entity/relationship data (knowledge graph)?

Yes: Use Semantic memory

No: Is it event-based (what happened, when)?

Yes: Use Episodic memory

No: Use Long-Term memory (consolidated knowledge)

Common Combinations

Memory types work together

Most production agents use 3-4 memory types in combination. Here are the most common patterns.

Conversational Agent

Short-Term for current session context + Episodic for conversation history + Preferences for user personalization.

Short-TermEpisodicPreferences

Research Agent

Semantic for knowledge graphs + Long-Term for consolidated findings + Procedural for learned research workflows.

SemanticLong-TermProcedural

Task Automation Agent

Execution for task state and checkpoints + Procedural for learned workflows + Episodic for task history and audit trail.

ExecutionProceduralEpisodic
Rekall
rekall