Files
crewAI/docs/memory.md
Devin AI 823f22a601 fix: Remove OpenAI dependency for memory reset when using alternative LLMs
- Add environment variables for default embedding provider
- Support Ollama as default embedding provider
- Add tests for memory reset with different providers
- Update documentation

Fixes #2023

Co-Authored-By: Joe Moura <joao@crewai.com>
2025-02-05 11:09:36 +00:00

2.0 KiB

Memory Management in CrewAI

CrewAI provides a robust memory system that allows agents to store and retrieve information across conversations and tasks.

Memory Types

  • Short Term Memory: Stores recent interactions and context
  • Long Term Memory: Persists important information for extended periods
  • Entity Memory: Tracks information about specific entities

Configuration

Embedding Providers

CrewAI supports multiple embedding providers for memory storage. By default, it uses OpenAI, but you can configure different providers:

# OpenAI (default)
export CREWAI_EMBEDDING_PROVIDER=openai
export CREWAI_EMBEDDING_MODEL=text-embedding-3-small
export OPENAI_API_KEY=your_key

# Ollama
export CREWAI_EMBEDDING_PROVIDER=ollama
export CREWAI_EMBEDDING_MODEL=llama2
export CREWAI_OLLAMA_URL=http://localhost:11434/api/embeddings  # Optional

Memory Operations

Reset all memories:

crewai reset-memories -a

The memory system will use the configured embedding provider for all operations, including memory reset.

Troubleshooting

Common Issues

  1. OpenAI API Key Missing
# Error: EmbeddingConfigurationError: Invalid configuration for OpenAI provider
# Solution: Set your OpenAI API key
export OPENAI_API_KEY=your_key
  1. Ollama Connection Issues
# Error: Failed to connect to Ollama server
# Solution: Ensure Ollama is running and accessible
curl http://localhost:11434/api/embeddings
  1. Memory Reset Permission Issues
# Error: Failed to reset memory (readonly database)
# Solution: Check file permissions or use custom path
export CREWAI_MEMORY_PATH=/path/with/write/access

Custom Storage Path

You can configure a custom storage path for memory files:

from crewai.memory import ShortTermMemory

memory = ShortTermMemory(path="/custom/storage/path")

This is useful when:

  • Default storage location has permission issues
  • You want to isolate memory storage for different crews
  • You need to manage memory persistence manually