Skip to main content
Memory Crystal keeps two layers.
  • Short-term is what just happened: raw messages, and raw sensory content.
  • Long-term is what should stay useful later: facts, rules, decisions, goals, and workflows.
They solve different problems. Recent wording lives in messages. Cross-session answers live in durable memories.

What is stored

On the hosted service and by default when self-hosting, raw messages and raw sensory content stay until you delete them. Self-hosters who set CRYSTAL_RETENTION_READY=1 enable age-based expiry jobs; retention then follows the tier’s expiry policy.

How a memory moves

  1. Capture writes the turn into short-term storage. No model call runs for that write.
  2. Distillation reads eligible turns on a schedule and writes durable memories. That is separate from Forgetting and from the stale archive.
  3. Forgetting runs only when you are over the non-KB memory allowance, and only when enforcement is on. It archives the overage. It does not delete knowledge-base chunks, and it does not touch memories from the last 24 hours.
  4. Stale archive is optional, off by default, and archive-only. Eligible older extracted memories leave recall and stay restorable.
Details, schedules, and the hosted-service note are on How Memory Works. Allowances are on Usage and allowances.

Stores are not layers

A durable memory also has a store: sensory, episodic, semantic, procedural, or prospective. The store names the kind of content. It is not a retention policy. See Memory Stores.