Auto Memory

Automatic memory extraction and storage from conversations

The --auto-memory flag enables automatic extraction and storage of important information from conversations.

Quick Start

bash
praisonai "My name is John and I prefer Python" --auto-memory

Usage

Basic Auto Memory

bash
praisonai "I work at Acme Corp as a software engineer" --auto-memory

Expected Output:

๐Ÿง  Auto Memory enabled

โ•ญโ”€ Agent Info โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  ๐Ÿ‘ค Agent: DirectAgent                                                       โ”‚
โ”‚  Role: Assistant                                                             โ”‚
โ”‚  ๐Ÿง  Auto Memory: Enabled                                                    โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Response โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Nice to meet you! It's great to know you're a software engineer at Acme     โ”‚
โ”‚ Corp. How can I help you today?                                              โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ’พ Memories Extracted:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Type                โ”‚ Content                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Entity (Person)     โ”‚ User works at Acme Corp    โ”‚
โ”‚ Entity (Role)       โ”‚ Software Engineer          โ”‚
โ”‚ Long-term           โ”‚ User's workplace: Acme Corpโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

With User Isolation

bash
praisonai "Remember my preferences" --auto-memory --user-id user123

Expected Output:

๐Ÿง  Auto Memory enabled (user: user123)

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Response โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ I'll remember your preferences. What would you like me to remember?          โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿ’พ Memory stored for user: user123

Combine with Other Features

bash
# Auto memory with session
praisonai "Learn about my project" --auto-memory --session my-project

# Auto memory with planning
praisonai "Plan my learning path" --auto-memory --planning

# Auto memory with metrics
praisonai "Remember this" --auto-memory --metrics

How It Works

Diagram

Conversation

Auto Memory

Extract

Entities

Facts

Preferences

Memory Store

  1. Conversation Analysis: The system analyzes the conversation
  2. Information Extraction: Important information is identified
  3. Categorization: Information is categorized (entities, facts, preferences)
  4. Storage: Memories are stored for future retrieval
  5. Retrieval: Memories are automatically injected into future conversations

Memory Types Extracted

TypeDescriptionExample
EntitiesPeople, places, organizations“User works at Google”
FactsFactual information“Project deadline is Dec 31”
PreferencesUser preferences“Prefers Python over JavaScript”
ContextContextual information“Working on ML project”

Use Cases

Personal Assistant

bash
# First conversation
praisonai "I'm learning Rust and prefer hands-on examples" --auto-memory

# Later conversation (memories recalled)
praisonai "Give me a coding exercise" --auto-memory

Expected Output (second conversation):

๐Ÿง  Auto Memory enabled

๐Ÿ“š Recalled Memories:
  โ€ข User is learning Rust
  โ€ข User prefers hands-on examples

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Response โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Since you're learning Rust and prefer hands-on examples, here's a practical โ”‚
โ”‚ exercise:                                                                    โ”‚
โ”‚                                                                              โ”‚
โ”‚ **Exercise: Build a Simple CLI Calculator**                                 โ”‚
โ”‚                                                                              โ”‚
โ”‚ ```rust                                                                      โ”‚
โ”‚ use std::io;                                                                 โ”‚
โ”‚                                                                              โ”‚
โ”‚ fn main() {                                                                  โ”‚
โ”‚     // Your code here                                                        โ”‚
โ”‚ }                                                                            โ”‚
โ”‚ ```                                                                          โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Project Context

bash
# Share project details
praisonai "I'm building an e-commerce platform using Django and React" --auto-memory

# Ask for help (context remembered)
praisonai "How should I structure my API?" --auto-memory

Team Preferences

bash
# Different team members
praisonai "I prefer detailed explanations" --auto-memory --user-id alice
praisonai "I prefer concise answers" --auto-memory --user-id bob

Viewing Stored Memories

Use the memory command to view what’s been stored:

bash
# Show memory statistics
praisonai memory show

# Search memories
praisonai memory search "Python"

Expected Output:

              Memory Statistics               
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Property         โ”ƒ Value                   โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ user_id          โ”‚ default                 โ”‚
โ”‚ short_term_count โ”‚ 0                       โ”‚
โ”‚ long_term_count  โ”‚ 4                       โ”‚
โ”‚ entity_count     โ”‚ 2                       โ”‚
โ”‚ episodic_days    โ”‚ 0                       โ”‚
โ”‚ summary_count    โ”‚ 0                       โ”‚
โ”‚ storage_path     โ”‚ .praison/memory/default โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Recent Short-term Memories:
  No short-term memories

Long-term Memories:
  1. [0.7] Python for backend
  2. [0.6] User's location: Acme Corp

Entities:
  โ€ข John (person)
  โ€ข Acme Corp (organization)

Memory Persistence

Memories are stored locally and persist across sessions:

.praison/
โ””โ”€โ”€ memory/
    โ”œโ”€โ”€ default/
    โ”‚   โ”œโ”€โ”€ short_term.json
    โ”‚   โ”œโ”€โ”€ long_term.json
    โ”‚   โ””โ”€โ”€ entities.json
    โ””โ”€โ”€ user123/
        โ”œโ”€โ”€ short_term.json
        โ”œโ”€โ”€ long_term.json
        โ””โ”€โ”€ entities.json

Best Practices

Privacy Considerations

  • Memories are stored in .praison/memory/
  • Use praisonai memory clear all to delete all memories
  • Each user ID has isolated memory storage

Related