Skip to main content
A Memory gives an agent tools to add, search, and delete facts. It uses a vector-database provider, separately from the database that stores thread history. The default provider, chroma-ephemeral, keeps data in memory. It does not survive a process restart. Install Chroma separately and choose chroma-db for persistence:
chroma-db stores data under ~/.marvin/memory/chroma by default. Reuse the same provider configuration and memory key to access stored facts later.

Direct operations

Search returns a dictionary of memory IDs and their contents. A memory key may contain letters, numbers, and underscores.

Retrieval and providers

By default, the agent chooses whether to use memory tools. auto_use=True also queries memory before the agent runs, using recent messages. You can pass a MemoryProvider instance or a supported provider string: chroma-ephemeral, chroma-db, chroma-cloud, lancedb, postgres, or qdrant. Each provider needs its own dependencies and configuration; see the memory API. Memory can be shared by multiple agents. Use separate keys for facts that should be searched separately. MARVIN_DATABASE_URL configures thread history, not vector memory.