Aether vs Zep
Both exist because agents forget everything between sessions. They solve it differently — Zep with a temporal knowledge graph, Aether as memory with the database included. Here is the straight comparison.
01The short version
Choose Zep if your problem is fundamentally temporal graph reasoning — tracking how facts about entities change over time and querying those relationships as a graph. Zep's Graphiti engine (arXiv 2501.13956) is genuinely strong at this.
Choose Aether if you want one platform instead of a stack: memory with the database included, on our own Rust storage and retrieval engine, with sub-millisecond recall, flat pricing, and first-party SDKs for Python, TypeScript, Go, and .NET at full parity.
02What Zep gets right
Graphiti is real research, not marketing. Zep's temporal knowledge graph is documented in a published paper (arXiv 2501.13956) and models facts as a graph that evolves over time. If your agent's core job is reasoning over how entity relationships shift across time, that is a genuine advantage and we won't pretend otherwise.
Zep also ships an official Go SDK — a real strength. If you're a Go shop comparing memory layers, Zep is a legitimate option, and we're not the only Go choice.
03Side by side
| Aether | Zep | |
|---|---|---|
| Architecture | Memory with the database included — own Rust storage + retrieval engine, one platform | Memory layer with a temporal knowledge graph; storage is hosted or brought by you |
| Temporal reasoning | Timestamps, time-window recall, recency ranking | Graphiti temporal knowledge graph — the deeper option for graph-shaped queries |
| Language SDKs | Python, TypeScript, Go, and .NET — first-party, full parity | Official Go SDK; no first-party .NET |
| Engine ownership | Own engine, built in Rust | Layer + graph engine over a backing store |
| Pricing model | Flat monthly rates, no per-API-call metering | See Zep's pricing page for current plans |
04Memory across sessions, in code
The test that matters: your agent learns something today and recalls it next week, in a different session, without you re-feeding context. Scope memory to a stable id; recall() returns the most relevant memories ranked by score.
from aether import Memory
# Scope memory to a stable user or agent id.
memory = Memory("user-42")
# Today: your agent learns something.
memory.remember("Freezes production deploys after 2pm on Fridays")
# Next week, a fresh session — it remembers, ranked by relevance.
for hit in memory.recall("when can I schedule a deploy?"):
print(hit.score, hit.text)The same surface ships in Python, TypeScript, Go, and .NET at full parity. See the quickstarts for your language.
05Which one fits
When Zep is the right choice
- Your agent's core feature is reasoning over a temporal knowledge graph — how entities and relationships change over time, queried as a graph.
- You've already designed your system around a graph model of user knowledge and want a memory layer that thinks the same way.
When Aether is the right choice
- You want one platform and one bill — memory, document storage, semantic search, and embeddings included.
- You're a .NET team: no dedicated memory layer (Mem0, Letta, Zep, Cognee) ships a first-party .NET SDK, and none ships all four of Python/TypeScript/Go/.NET — Aether does.
- You want predictable flat pricing with no per-API-call metering, so a chatty agent doesn't surprise you at month-end.
- You care that the engine is ours — sub-millisecond retrieval from a Rust engine we built and operate, not a wrapper.
06Frequently asked questions
Does Aether have a Go SDK?
Yes — first-party, full parity with the other three languages. So does Zep, and theirs is official too. The narrower claim we make: no dedicated memory layer (Mem0, Letta, Zep, Cognee) ships a first-party .NET SDK, and none ships all four of Python/TypeScript/Go/.NET — Aether does.
Can Aether handle time-based recall?
Yes — memories carry timestamps, you can recall within time windows, and ranking accounts for recency. What Aether doesn't have is Graphiti's graph-structured temporal reasoning; if you need to traverse entity relationships as they evolved over time, that's Zep's strength.
Do I need to bring my own embedding provider?
No. Embeddings are included in the platform. Bring-your-own-embeddings exists as an escape hatch if you have a specific model requirement.
Could I use both?
Some teams might — Zep for a graph-reasoning subsystem, Aether as the agent's working memory and storage platform. Most agents we see need reliable cross-session recall, scoped per user, at a predictable price.
Your agents need memory. Not three bills.
First-party SDKs for four languages, sub-millisecond recall, one flat rate. Start free — no credit card required.