Mem0's add() runs a language model by default to turn messages into facts; pass infer=False to store raw messages instead. XERJ never calls a model on write: what you send is what gets stored, and an optional dedup check skips text at 0.95 similarity or above.