Three meanings of memory
An agent may need to remember a user preference, retrieve facts from a changing knowledge base, or maintain an ongoing working state across turns. Mem0, Graphiti and Letta address related problems but do not expose the same abstraction. Mem0 focuses on a memory layer that can be added to applications. Graphiti focuses on a temporal knowledge graph for evolving relationships. Letta treats stateful agents and their memory operations as part of a runtime model. Calling all three “memory plugins” hides the important design choice.
Relative strengths and suitable jobs
Mem0 is relatively strong when the team wants a direct integration point for storing and retrieving user or application memories without redesigning the whole agent runtime. Graphiti is relatively strong when time, entities and changing relationships matter, such as project history or operational knowledge that must be traced across events. Letta is relatively strong for teams willing to adopt an agent runtime where memory management, tools and self-directed state changes belong to one system. The best fit depends on how much architecture you are prepared to adopt.
Boundaries and responsibility
Persistent memory changes the privacy and correctness profile of an agent. Define what may be remembered, how a user can inspect or delete it, how stale facts are corrected and which source outranks a later conversation. A retrieval hit is not proof that a memory is true. Record provenance, timestamps and confidence where the application needs them. Protect memory databases like user data, and test prompt-injection paths that attempt to write misleading instructions into future context.
A comparison experiment to run
Use one assistant and a fixed sequence of ten conversations: a preference update, a contradiction, a correction, a deletion request, a project handoff and a time-dependent fact. For each tool, measure whether the right memory is recalled, whether the old value is removed or superseded, whether the source can be explained and how many manual controls the operator needs. Repeat the sequence after a restart and with two users whose facts overlap. This experiment tests memory behavior, not just installation speed.