Memory
Leveraging memory systems in the CrewAI framework to enhance agent capabilities.
Overview
The CrewAI framework provides a sophisticated memory system designed to significantly enhance AI agent capabilities. CrewAI offers three distinct memory approaches that serve different use cases:
- Basic Memory System - Built-in short-term, long-term, and entity memory
- User Memory - User-specific memory with Mem0 integration (legacy approach)
- External Memory - Standalone external memory providers (new approach)
Memory System Components
Component | Description |
---|---|
Short-Term Memory | Temporarily stores recent interactions and outcomes using RAG , enabling agents to recall and utilize information relevant to their current context during the current executions. |
Long-Term Memory | Preserves valuable insights and learnings from past executions, allowing agents to build and refine their knowledge over time. |
Entity Memory | Captures and organizes information about entities (people, places, concepts) encountered during tasks, facilitating deeper understanding and relationship mapping. Uses RAG for storing entity information. |
Contextual Memory | Maintains the context of interactions by combining ShortTermMemory , LongTermMemory , and EntityMemory , aiding in the coherence and relevance of agent responses over a sequence of tasks or a conversation. |
1. Basic Memory System (Recommended)
The simplest and most commonly used approach. Enable memory for your crew with a single parameter:
Quick Start
How It Works
- Short-Term Memory: Uses ChromaDB with RAG for current context
- Long-Term Memory: Uses SQLite3 to store task results across sessions
- Entity Memory: Uses RAG to track entities (people, places, concepts)
- Storage Location: Platform-specific location via
appdirs
package - Custom Storage Directory: Set
CREWAI_STORAGE_DIR
environment variable
Custom Embedder Configuration
Custom Storage Paths
2. User Memory with Mem0 (Legacy)
Legacy Approach: While fully functional, this approach is considered legacy. For new projects requiring user-specific memory, consider using External Memory instead.
User Memory integrates with Mem0 to provide user-specific memory that persists across sessions and integrates with the crew’s contextual memory system.
Prerequisites
Mem0 Cloud Configuration
Advanced Mem0 Configuration
Local Mem0 Configuration
3. External Memory (New Approach)
External Memory provides a standalone memory system that operates independently from the crew’s built-in memory. This is ideal for specialized memory providers or cross-application memory sharing.
Basic External Memory with Mem0
Custom Storage Implementation
Memory System Comparison
Feature | Basic Memory | User Memory (Legacy) | External Memory |
---|---|---|---|
Setup Complexity | Simple | Medium | Medium |
Integration | Built-in contextual | Contextual + User-specific | Standalone |
Storage | Local files | Mem0 Cloud/Local | Custom/Mem0 |
Cross-session | ✅ | ✅ | ✅ |
User-specific | ❌ | ✅ | ✅ |
Custom providers | Limited | Mem0 only | Any provider |
Recommended for | Most use cases | Legacy projects | Specialized needs |
Supported Embedding Providers
OpenAI (Default)
Ollama
Google AI
Azure OpenAI
Vertex AI
Security Best Practices
Environment Variables
Storage Security
Troubleshooting
Common Issues
Memory not persisting between sessions?
- Check
CREWAI_STORAGE_DIR
environment variable - Ensure write permissions to storage directory
- Verify memory is enabled with
memory=True
Mem0 authentication errors?
- Verify
MEM0_API_KEY
environment variable is set - Check API key permissions on Mem0 dashboard
- Ensure
mem0ai
package is installed
High memory usage with large datasets?
- Consider using External Memory with custom storage
- Implement pagination in custom storage search methods
- Use smaller embedding models for reduced memory footprint
Performance Tips
- Use
memory=True
for most use cases (simplest and fastest) - Only use User Memory if you need user-specific persistence
- Consider External Memory for high-scale or specialized requirements
- Choose smaller embedding models for faster processing
- Set appropriate search limits to control memory retrieval size
Benefits of Using CrewAI’s Memory System
- 🦾 Adaptive Learning: Crews become more efficient over time, adapting to new information and refining their approach to tasks.
- 🫡 Enhanced Personalization: Memory enables agents to remember user preferences and historical interactions, leading to personalized experiences.
- 🧠 Improved Problem Solving: Access to a rich memory store aids agents in making more informed decisions, drawing on past learnings and contextual insights.
Conclusion
Integrating CrewAI’s memory system into your projects is straightforward. By leveraging the provided memory components and configurations, you can quickly empower your agents with the ability to remember, reason, and learn from their interactions, unlocking new levels of intelligence and capability.