← all posts

ai agent memory, explained: mem0 vs letta vs memmy (2026)

A wall of library card catalog drawers with one drawer pulled open.

AI agents forget everything the moment a session ends — a memory layer is what makes them remember. The tools all do the same core job: pull durable facts out of conversations and feed them back later. What differs is where the memory lives and who manages it. Mem0, Letta, and Memmy each pick a different answer.

what does “memory” mean for an ai agent?

An LLM is stateless. Every request starts from nothing but the text in the context window, and when that fills up, old stuff falls out. Memory is everything outside that window that gets pulled back when it’s relevant: your preferences, past decisions, a fact from three sessions ago. The job is really two jobs — extraction (what’s worth keeping) and retrieval (what to resurface now). Most “memory” tools are just opinionated answers to those two questions.

tool what it is where memory lives best for
Mem0 a memory layer between agent and storage hybrid: vector + graph + key-value production apps needing scalable long-term memory
Letta (ex-MemGPT) a stateful framework; the agent manages its own memory OS-style tiers (in-context + external) agents that self-edit memory; self-hosted control
Memmy a personal cross-agent memory hub local, four-layer store (MemOS engine) one shared memory across Claude Code / Cursor / Codex

mem0: memory as a service

Mem0 sits between your agent and storage and runs the whole lifecycle — extract facts from a conversation, stash them across a hybrid datastore (vector for similarity, graph for relationships, key-value for plain facts), retrieve on demand. One API covers episodic, semantic, and procedural memory. It’s the “best overall” pick in most 2026 roundups and has an actual research paper behind it. Want memory as a drop-in and don’t want to build plumbing? This is the default.

letta (memgpt): the agent runs its own memory

Letta — the project formerly called MemGPT — flips it. Instead of bolting memory onto an agent, the agent IS the memory manager: it edits its own working memory through tool calls, paging things in and out like an OS moves data between RAM and disk. Most frameworks ship orchestration and let you add memory; Letta ships memory and lets you add orchestration. Pick it when you want the agent to own its state and you’re self-hosting.

memmy: one memory across all your tools

Memmy (from MemTensor, open source, ~584 GitHub stars, Product Hunt #2 the day it dropped on July 30) goes after a different pain: you use Claude Code AND Cursor AND Codex, and every one of them starts from zero, so you keep re-explaining yourself. Memmy is a local hub that hands all of them one shared, self-evolving memory — “every AI remembers the same you.” Runs on a MemOS engine with a four-layer architecture, each layer with its own write and retrieval rules. Newer and less battle-tested than Mem0, but it’s the only one aimed straight at the multi-tool problem.

do you even need one?

Honest answer: not always. Letta’s own benchmark literally asked “is a filesystem all you need?” — and for a lot of agents, plain markdown files the agent reads and writes are enough, with zero vector-DB overhead. One tool, one user, low volume? A folder of notes plus decent retrieval beats a memory platform you have to run and pay for. The heavy layers earn their keep at scale — many users, high volume, cross-session personalization — where extraction and retrieval stop being a weekend script.

how to pick

  • Product with many users → Mem0 (or Zep if your data is time-heavy).
  • Agent that self-manages state, self-hosted → Letta.
  • Your own tools sharing one memory of you → Memmy.
  • One agent, one you, keep it simple → files + retrieval, skip the platform.

The pitch is always “give your AI a memory.” The useful question is dumber: who decides what’s worth remembering, and where does it live? Answer that for your setup and the tool picks itself. Everything else is a datastore with good marketing.