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

Quick Start

# Enable memory for agent
praisonai "My name is John" --memory

Usage

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.memory import FileMemory

# Enable memory with a single parameter
agent = Agent(
    name="Personal Assistant",
    instructions="You are a helpful assistant that remembers user preferences.",
    memory=True,  # Enables file-based memory (no extra deps!)
    user_id="user123"  # Isolate memory per user
)

# 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.memory import FileMemory

memory = FileMemory(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