Overview
Junkie’s memory system enables agents to remember user preferences, past interactions, and important context across conversations. It uses the Agno MemoryManager with PostgreSQL persistence.Architecture
Memory system components:- MemoryManager: Processes and stores memories using a dedicated model
- PostgreSQL Database: Persistent storage for user memories
- Memory Model: Fast LLM for memory operations (Groq)
- Team Integration: Memory-enabled team configuration
Memory Model Setup
Why Groq for Memory?
- Speed: Fast processing for memory operations
- Cost-effective: Memory operations are frequent
- Sufficient capability: 120B parameter model handles memory tasks well
Model Configuration
Database Configuration
PostgreSQL Setup
Async URL Conversion
PostgreSQL URLs are converted to async format:Database Tables
Two tables are used:- agent_sessions: Conversation history and session state
- user_memories: User-specific memories and preferences
Team Memory Integration
Memory Settings
How Memory Works
1. Memory Creation
During conversations, the memory manager:- Analyzes conversation context
- Identifies important information:
- User preferences
- Personal details
- Recurring topics
- Important facts
- Stores memories in PostgreSQL
2. Memory Retrieval
When responding:- Relevant memories are fetched from database
- Memories are added to conversation context
- Agent uses memories to personalize responses
3. Memory Updates
Memories are updated when:- User preferences change
- New information contradicts old memories
- Details are clarified or corrected
Configuration
Environment variables:History Runs
- Low (5): Less context, faster responses
- Medium (10): Balanced (default)
- High (20+): More context, higher costs
Memory Operations
Check Memory Status
View User Memories
Clear User Memories
Persistence Behavior
With PostgreSQL
✅ Persists:- User memories across restarts
- Conversation history
- Session state
- Application restarts
- Container recreations
- Code deployments
Without PostgreSQL
❌ Lost on restart:- All memories
- Conversation history
- Session state
Team Cache and Memory
Teams are cached per-user with LRU eviction:Cache Implications
- In cache: Memories loaded once, kept in memory
- Evicted: Memories reloaded from database on next interaction
- Performance: Database ensures consistency across cache evictions