Skip to main content
The --memory flag and memory command enable persistent memory for agents, allowing them to remember context across sessions.

Quick Start

Show Memories

praisonai memory show
Show stored memories example

Use Memory Flag

# Enable memory for agent
praisonai "count to 5" --memory
With memory flag example

Usage

Manage Persistent Memory

Enable Memory

# Enable memory for agent (persists across sessions)
praisonai "My name is John" --memory

# Memory with user isolation
praisonai "Remember my preferences" --memory --user-id user123
Expected Output:
🧠 Memory enabled

╭─ Agent Info ─────────────────────────────────────────────────────────────────╮
│  👤 Agent: DirectAgent                                                       │
│  Role: Assistant                                                             │
│  Memory: Enabled (user: user123)                                            │
╰──────────────────────────────────────────────────────────────────────────────╯

╭────────────────────────────────── Response ──────────────────────────────────╮
│ Nice to meet you, John! I'll remember your name for future conversations.   │
╰──────────────────────────────────────────────────────────────────────────────╯

💾 Memory saved: name="John"

Memory Commands

Show Memory

praisonai memory show
Output:
╭─ Memory Statistics ──────────────────────────────────────────────────────────╮
│  Short-term: 5 items                                                        │
│  Long-term: 12 items                                                        │
│  Entities: 3 items                                                          │
│  Episodic: 8 items                                                          │
╰──────────────────────────────────────────────────────────────────────────────╯

Add Memory

praisonai memory add "User prefers Python"

Search Memory

praisonai memory search "Python"

Clear Memory

# Clear short-term memory
praisonai memory clear

# Clear all memory
praisonai memory clear all

Session Management

# Save session
praisonai memory save my_session

# Resume session
praisonai memory resume my_session

# List saved sessions
praisonai memory sessions

Checkpoints

# Create checkpoint
praisonai memory checkpoint

# Restore checkpoint
praisonai memory restore <checkpoint_id>

# List checkpoints
praisonai memory checkpoints

Help

praisonai memory help

Memory Types

TypeDescriptionPersistence
Short-termRolling buffer of recent contextAuto-expires
Long-termImportant facts sorted by importancePersistent
EntityPeople, places, organizationsPersistent
EpisodicDate-based interaction historyPersistent

How It Works

  1. Capture: Agent extracts important information from conversations
  2. Categorize: Information is sorted into memory types
  3. Store: Memories are persisted to storage
  4. Inject: Relevant memories are injected into future conversations

Storage Options

OptionDependenciesDescription
memory=TrueNoneFile-based JSON storage (default)
memory="file"NoneExplicit file-based storage
memory="sqlite"Built-inSQLite with indexing
memory="chromadb"chromadbVector/semantic search

Programmatic Usage

from praisonaiagents import Agent
from praisonaiagents import FileMemory

# Enable memory with a single parameter
agent = Agent(
    name="Personal Assistant",
    instructions="You are a helpful assistant that remembers user preferences.",
    memory={"user_id": "user123"}  # Enables memory with user isolation
)

# Memory is automatically injected into conversations
result = agent.start("My name is John and I prefer Python")
# Agent will remember this for future conversations

Advanced Features

from praisonaiagents import FileMemory

memory = FileMemory(memory={"user_id": "user123"})

# Session Save/Resume
memory.save_session("project_session", conversation_history=[...])
memory.resume_session("project_session")

# Context Compression
memory.compress(llm_func=lambda p: agent.chat(p), max_items=10)

# Checkpointing
memory.create_checkpoint("before_refactor", include_files=["main.py"])
memory.restore_checkpoint("before_refactor", restore_files=True)

# Slash Commands
memory.handle_command("/memory show")
memory.handle_command("/memory save my_session")

Best Practices

Use --user-id to isolate memory per user in multi-user applications.
Memory storage grows over time. Use memory clear periodically to manage storage.
DoDon’t
Use user isolation for multi-user appsShare memory across users
Clear short-term memory regularlyLet memory grow unbounded
Use checkpoints before major changesSkip backups
Search before adding duplicatesAdd redundant memories