Guide5 min read
Zep vs GraphitiManaged Memory or Self-Hosted Graph (2026)
Last tested: October 2026, Zep Cloud pricing and the zep-cloud Python SDK v3, graphiti-core 0.30.
Zep and Graphiti are not rivals. Graphiti is the open-source engine, and Zep Cloud is the managed service its authors run on top of it. So the choice is not which graph is better. It is who operates the graph, and where your users’ facts are stored.
TL;DR: Zep vs Graphiti, which one?
Pick Zep Cloud when you want user and thread memory as an API, an SLA and no graph database to run; self-serve starts at $125 a month. Pick Graphiti, under Apache-2.0, when facts must stay in your infrastructure, you need an EU data processing agreement without enterprise pricing, or you want control over extraction and storage.
| Zep Cloud | Graphiti | |
|---|---|---|
| What it is | Managed agent memory platform | Open-source Python framework |
| License | Commercial service | Apache-2.0 |
| Runs where | Zep Cloud; your keys or your VPC on Enterprise | Your infrastructure |
| Price | Free 10k credits, Flex $125/mo, Flex Plus $375/mo, Enterprise custom | No fee; LLM tokens, embeddings, database host, your time |
| Memory API | Users, threads, get_user_context | add_episode, search; you build users and threads |
| Graph database | Managed for you | Neo4j, FalkorDB, Neptune or embedded |
| Custom entity and edge types | 10 (Flex), 20 (Flex Plus, Enterprise) | As many Pydantic models as you define |
| Compliance listed | SOC 2 Type II, HIPAA BAA, EU DPA on Enterprise | Whatever your own infrastructure provides |
| MCP | Memory MCP Server seats per plan | Self-hosted Graphiti MCP server |
Recommended path: decide by where the data must live
Start with the data, not the features. If the memory will hold personal data of EU customers and you are not buying Enterprise, self-host Graphiti in your own EU environment, because Zep lists its DPA for EU customers only in the Enterprise column. If the memory holds no personal data, or you are prototyping, start on Zep’s free tier and measure your real episode volume before you commit to either side.
For most DACH B2B teams I work with, that means Graphiti on FalkorDB or Neo4j inside their own cloud account, with Zep as the benchmark for what the memory layer should feel like.
The same memory in each
Zep gives you users, threads and an assembled context string:
import os
from zep_cloud.client import Zep
from zep_cloud.types import Message
client = Zep(api_key=os.environ["ZEP_API_KEY"])
client.user.add(user_id="u-4711", first_name="Jana")
client.thread.create(thread_id="t-001", user_id="u-4711")
client.thread.add_messages(thread_id="t-001", messages=[
Message(name="Jana", role="user", content="We moved the rollout from Q3 to Q4."),
])
context = client.thread.get_user_context(thread_id="t-001")
print(context.context) # ready for the system prompt
Graphiti gives you episodes and search. The user, the thread and the context string are yours to build:
from datetime import datetime, timezone
from graphiti_core import Graphiti
from graphiti_core.nodes import EpisodeType
graphiti = Graphiti("bolt://localhost:7687", "neo4j", "change-me")
await graphiti.build_indices_and_constraints()
await graphiti.add_episode(
name="t-001-msg-1",
episode_body="Jana: We moved the rollout from Q3 to Q4.",
source=EpisodeType.message,
source_description="support chat",
reference_time=datetime.now(timezone.utc),
group_id="u-4711",
)
edges = await graphiti.search("When is the rollout?", group_ids=["u-4711"])
context = "\n".join(edge.fact for edge in edges)
The gap between those two snippets is the product Zep sells: user management, thread handling, context assembly, retries and rate limits, all behind one API key.
What Zep Cloud costs, worked out
Zep meters ingestion only. An episode costs one credit up to 350 bytes, plus one credit per additional 350 bytes. Retrieval, storage, threads and users cost nothing.
| Monthly volume | Credits | Cheapest plan |
|---|---|---|
| 4,000 messages of 300 bytes | 4,000 | Free (10,000 credits) |
| 15,000 messages of 700 bytes | 30,000 | Flex, $125 |
| 100,000 messages of 700 bytes | 200,000 | Flex Plus, $375 (Flex plus overage would be $500) |
Measure your average episode size before you pick. A chat turn and a pasted email differ by an order of magnitude.
What Graphiti costs instead
There is no license fee, and that is the only line that is zero. Each episode triggers several LLM calls for entity extraction, deduplication and summaries, plus embedding calls. On top come the database host, backups, upgrades and the engineer who watches the rate limits.
Measure it instead of estimating it. Ingest 100 real episodes and read the token usage from your provider dashboard:
monthly cost = episodes × (LLM tokens per episode × price per token)
+ embedding cost + database host + engineering hours
Graphiti also runs with a local model through Ollama, which moves the token cost to your own hardware. Check extraction quality on your own text first; small models produce more failed episodes.
Where the two drift apart
- Open source. Zep Community Edition is deprecated and unsupported. If you still run it, the migration targets are Graphiti or Zep Cloud.
- Schema. Zep caps custom entity and edge types at 10 or 20. Graphiti takes whatever Pydantic models you define.
- Only in Zep. Observations, webhooks and analytics on Flex Plus, user context assembly, an SLA on Enterprise.
- Only in Graphiti. Your choice of database, offline operation, and an approval step before any fact is written.
Keep the exit door open
Both sides ingest episodes. Whichever you choose, store every raw episode in your own system before it goes into the graph. With the raw episodes, switching from Zep to Graphiti or back is a replay job. Without them, it is a graph export project. I wire this in on every knowledge graph engagement, because the graph is rebuildable and the source material is not.
Changelog
- 2026-10-12: First version, with Zep Cloud’s self-serve pricing and credit rules as published in October 2026 and the zep-cloud v3 SDK calls.
Frequently asked questions
Is Graphiti the same as Zep?
No. Graphiti is the open-source temporal knowledge graph framework under Apache-2.0. Zep Cloud is the managed agent memory platform its authors run on top of it, with users, threads, context assembly, an SLA and credit-based pricing.
What does Zep Cloud cost?
Self-serve plans are credit based. A free tier gives 10,000 credits a month, Flex costs $125 a month with 50,000 credits, Flex Plus $375 with 200,000. An episode costs one credit per 350 bytes. Retrieval, storage and users are not metered.
Is Zep open source?
Zep Cloud is not. Zep Community Edition, the earlier self-hostable server, is deprecated and unsupported. The open-source path today is Graphiti, the engine that powers Zep, which you run on your own Neo4j, FalkorDB or another supported backend.
Can we use Zep Cloud under GDPR with a data processing agreement?
Zep's plan comparison lists the DPA for EU customers in the Enterprise column only, as of October 2026. Teams that process personal data of EU customers either buy Enterprise or self-host Graphiti in their own EU infrastructure.
When is self-hosting Graphiti worth it compared with Zep Cloud?
When data must stay in your infrastructure, when you need more than 20 custom entity and edge types, when you want a human approval step before facts are written, or when an engineer already runs your databases and can own upgrades, backups and rate limits.
Can we move from Zep Cloud to self-hosted Graphiti later?
Yes, if you keep the raw episodes. Both sides ingest episodes, so replaying your stored messages and documents into Graphiti rebuilds the graph. Exporting the graph itself is the harder path. Store every episode in your own system from day one.
Your agents answer from whatever the retriever finds, and too often that is last quarter's truth. I build the context layer they answer and act from: a temporal knowledge graph that keeps every fact with its source and the time it held, reads with each person's own permissions, and writes nothing without a person's approval. On your own tenant, billed by the hour, step by step.