# Zep gives my agent perfect recall. It still can't answer "average per group" about its own memory.

> Source: <https://dev.to/omer_hochman/zep-gives-my-agent-perfect-recall-it-still-cant-answer-average-per-group-about-its-own-memory-3ae0>
> Published: 2026-07-19 07:28:37+00:00

*Originally published at nlqdb.com/blog*

If you've wired up [Zep](https://www.getzep.com) you know the pitch: it's the Context Lake — a temporal knowledge graph (Graphiti, 27k+ stars) that stores every fact your agent learns as a node with a validity window, resolves entities, and hands back the most relevant facts at query time. For *recall* it's genuinely good, and it publishes benchmarks (LongMemEval, DMR) to prove it.

But we kept hitting the same wall. Once the agent had logged a few hundred things, we wanted to ask questions *about* the memory, not retrieve from it:

A knowledge graph has no query planner. It returns relevant facts and hopes the LLM does the arithmetic — which is a hallucination generator, not a `GROUP BY`

.

The honest split (the full side-by-side lives at [nlqdb vs Zep](https://dev.to/vs/zep/)): Zep wins on temporal validity, entity resolution, and vector recall over conversation. nlqdb wins when the agent needs to **aggregate** its memory — it's a real Postgres the agent provisions and queries in English, so `GROUP BY / JOIN / HAVING`

actually work. They compose: Zep the recall layer, nlqdb the analytical store. Pick the one that matches the question you actually need answered.

(Landscape facts verified 2026-06-19; both products' weaknesses are in the comparison, not just ours.)
