Disclosure: I'm Mohammed, founder of MemorySync, so I'm not neutral. I drafted this with AI assistance and limited every claim to what each company states on its own site and docs as of Oct 25, 2026. Code status: on Oct 25, 2026 I ran the migration dry run below (memorysync-cli 1.6.1) on a small sample Zep export. Nothing was sent to a live Zep or MemorySync service, and the API calls in the table are quoted from each vendor's docs, not run.
If you're looking at a Zep alternative, here is how Zep and MemorySync compare. Both are hosted memory services for AI agents, but they're built around different units. Pick based on which one matches your data, not on a feature checklist. Here's the comparison, using each vendor's own wording where possible.
The core model
Zep describes itself as "the unified context layer for enterprise data" (getzep.com). In the current (v4) docs, you create a user and a thread, add messages and business data, and Zep builds a temporal Context Graph per user, account or domain. You then retrieve a Context Block for the next model request (agent memory quickstart). It also offers shared graphs for project, product or domain knowledge, and custom entity and edge types.
MemorySync describes itself as a hosted memory layer: you write text, it extracts durable facts, and you query them by meaning, scoped by project and end user (docs). There's no setup call: scope is a header on each request (X-End-User-ID, optionally X-Project-ID).
| Zep (v4 docs) | MemorySync | |
|---|---|---|
| Setup before writing |
user.add() and thread.create()
|
None; scope is a header on the write |
| Write |
thread.add_messages(...), business data, batch API |
POST /memory/add, POST /memory/bulk-add, POST /v1/history/append
|
| Read |
graph.search(...) or thread.get_user_context(...) (Context Block) |
POST /memory/query with query and k
|
| Shared (non-user) context | Project / domain Context Graphs | Project scope |
| Custom ontology | Custom entity and edge types | Organization-level vocabulary of content types and relation types (GET/PUT /memory/ontology) |
| Deployment | Zep Cloud; your VPC (Enterprise) | Managed only |
The mapping rows come from MemorySync's Migrating from Zep guide and Zep's own quickstart.
When each fits (my honest read)
- Choose Zep if you want a temporal knowledge graph, need to model business entities and relationships (custom ontology), or must deploy in your own VPC (Zep lists that on Enterprise).
- Choose MemorySync if you want per-user fact memory with no provisioning step, scoped by header, with drop-in packages for many agent frameworks (its docs list guides for LangGraph, CrewAI, Agno, Strands, Google ADK and others).
Moving from Zep to MemorySync
# Writes nothing; prints per-user breakdown and what it would skip
npx memorysync-cli migrate zep --file zep_export.json --dry-run
On a sample export, the dry run grouped episodes by user_id, kept user and assistant messages (it suggests --role to filter), and skipped a json episode, reporting that --include-source json would migrate it. Per MemorySync's guide, a real run sends each episode through fact extraction into its user's scope and carries the thread id as session_id. It stores durable facts, not the episode text. Run the import itself by following the Migrating from Zep guide once the dry run looks right. Get the user_id mapping right on one user first: a wrong mapping doesn't raise, it just files memories where nobody looks. The guide's mapping table is based on Zep's v3 SDK (threads and graph search). If you're on an older SDK that uses sessions and memory.*, map from what your code actually calls.
Common questions
Does MemorySync build a knowledge graph? Its docs describe extracted facts retrieved by meaning, with typed edges between a user's memories that you can read via GET /memory/graph. It isn't a temporal Context Graph of business entities like Zep's.
Can I run either in my own cloud? Zep lists a deploy-in-your-VPC option on Enterprise. MemorySync lists managed hosting only.
Will my thread history come across? The MemorySync CLI imports durable facts, not transcripts. If you need transcripts, MemorySync keeps them separately via /v1/history/append, so plan that as a separate step.
To feel the write-then-recall loop before changing code, MemorySync has a no-signup browser playground: try MemorySync.
Sources
- Zep homepage: https://www.getzep.com
- Zep agent memory quickstart (v4): https://help.getzep.com/v4/quick-start-guide
- MemorySync, Migrating from Zep: https://docs.memorysync.io/getting-started/migrate/from-zep
- MemorySync, Organization Ontology: https://docs.memorysync.io/api/memory/ontology
- MemorySync, Memory Graph: https://docs.memorysync.io/api/memory/graph
- MemorySync, Conversation History & State: https://docs.memorysync.io/api/memory/history-state
Top comments (0)