All use cases

Anyone shipping an agent whose memory must be auditable

It doesn't forget

When an agent changes its mind, keep the receipt.

Try it live
0/2

Press Play — watch the same writes hit ordinary memory and CLS++ side by side.

Ordinary memory

now
history

CLS++ memory

now
kept (archived, never deleted)

nothing superseded yet

The problem

Agents are only as trustworthy as their memory — and most agent memory lies by omission. When a new fact contradicts an old one, the old belief is deleted. You lose the provenance of why the agent changed its mind, and you can't explain its behavior next week.

Delete-on-conflict — a contradiction wipes the old memory and its history.

Documented in mem0 #4536

How CLS++ handles it

CLS++ treats a contradiction as reconsolidation, not deletion. An evidence-gated revision archives the superseded fact with full lineage and an incremented version, and surfaces the new belief. Default reads return the current belief; the entire change history is one query away.

Under the hood — the real script

"I love Chinese food" becomes "I now hate Chinese food." Watch the old belief survive.

python Benchmarking/conflict_resolution.py
BEFORE  (after first statement):
   CURRENT :   'love'  | 'I love Chinese food'   (version=1)
AFTER   (after contradicting statement + reconsolidation):
   CURRENT :   'hate'  | 'I now hate Chinese food'  (version=2)
   ARCHIVED:   'love'  | 'I love Chinese food'  (superseded=True, lineage_of=[...])

Default retrieval returns current belief ('hate'): yes
Old 'love' fact archived with lineage, not deleted — history preserved.

The belief can change. The record of how it changed can't be silently erased.