Best Agent Memory for Multi-User Chatbots (2026 Guide)
The short answer
Mem0 is the default memory layer for a multi-user chatbot in 2026: per-user scoping is built in, every plan allows unlimited end users, and it starts free. Pick Zep when facts change over time, LangGraph stores on your own Postgres when you want no vendor, and Letta when each user should own a persistent agent. Prices are list USD as of October 7, 2026.
Two problems, not one
A multi-user chatbot has to solve two things:
- Scalable history — the transcript of each conversation thread, loaded fast when a user returns. This is a database problem (Postgres, Redis, a checkpointer).
- Long-term memory — facts extracted across threads (“prefers metric units”, “on the Pro plan”) and retrieved by relevance. This is what memory products sell.
Do not push full transcripts into a memory service, and do not search raw transcripts when you need facts.
The comparison
| Option | Per-user isolation | History vs memory | Pricing (Oct 2026) | Scale notes | Best for |
|---|---|---|---|---|---|
| Mem0 Platform | user_id, agent_id, app_id, run_id on every write and read | Memory layer; history stays in your DB | Free: 10K adds, 1K retrievals/mo · Starter $19: 50K / 5K · Pro $249: 500K / 50K + graph memory · Enterprise custom | Unlimited end users on all plans; open-source version self-hosts | Default choice |
| Zep | Per-user graphs; unlimited users | Temporal knowledge graph from messages (“episodes”) | Free 10K credits · Flex $125/mo (50K credits) · Flex Plus $375/mo (200K credits) | 1 credit per episode up to 350 bytes; 600–1,000 req/min on Flex; SOC 2 Type II | Facts that change over time |
| LangGraph checkpointer + store | Thread IDs + store namespaces you define | Both: checkpointer = thread history, store = cross-thread memory | Open source; your Postgres | Scales with your database | Full control, no vendor |
| Letta | One stateful agent per user | Agent owns its memory blocks and history | Developer plans usage-based; tool execution $0.00015/sec | Unlimited agents on developer plans | Long-lived personal agents |
Notes per option
Mem0. The Platform API separates memories by user, agent, app and run, so a support bot can keep per-customer facts (user_id), per-ticket context (run_id) and per-agent context for a planner and a critic (agent_id). Watch the retrieval quota — retrievals, not users, are what you run out of: Starter allows 5,000 a month, so a bot that searches memory on every message needs Pro or usage-based pricing quickly.
Zep. Ingests each message as an “episode” and builds a temporal graph, so “moved from Berlin to Tallinn in May” replaces the old fact instead of contradicting it. Billing is by ingestion volume (a 1,200-byte episode costs 4 credits), not by storage or retrieval. HIPAA BAAs require the Enterprise plan.
LangGraph. Its persistence layer has two parts: checkpointers keep a thread’s state (short-term memory, resumption, human-in-the-loop) and stores keep application data across threads (long-term memory). With a Postgres checkpointer and store you get scalable history and per-user memory in infrastructure you already run, but extraction and relevance ranking are your code.
Letta. Gives each user an agent that edits its own memory. Powerful for companions and assistants that evolve; more than you need for a support bot that only has to remember a few facts.
How to choose
| Situation | Pick |
|---|---|
| SaaS support or sales bot, thousands of users | Mem0 (Pro once retrievals pass 5K/month) |
| Health, finance or CRM bot where facts change | Zep |
| Data must stay in your Postgres, team knows LangGraph | LangGraph checkpointer + store |
| Each user gets a persistent personal agent | Letta |
| Under 1,000 users, simple facts | Postgres table of facts + embeddings |
Whatever you pick, enforce the user filter server-side, set a retention period, and give users a way to see and delete what the bot remembers.
Related
The full ranking of memory systems is in best AI agent memory systems; the concepts are in agent memory vs chat memory vs RAG.
Last verified: October 7, 2026. Prices are list USD from vendor pricing pages.