nlqdb

Comparison

nlqdb vs Zep

Pick Zep if your agent needs a temporal knowledge graph — point-in-time fact recall and entity resolution tuned for conversation. Pick nlqdb if your agent also needs to aggregate that memory: GROUP BY, JOIN, and HAVING over structured rows it provisions and migrates itself in plain English.

Persona this comparison serves: P2 agent builder. Zep's positioning: Agent-memory platform built on Graphiti — a temporal knowledge graph storing facts as nodes with start/end validity windows plus entity resolution across conversation and business data.

When to choose nlqdb

  • Your agent must aggregate its memory (GROUP BY, JOIN, HAVING), not just recall facts.
  • You store structured rows the agent later reports over ('deals per stage this quarter').
  • The schema should evolve as the agent learns ('add a `priority` field') via English.
  • One MCP server should provision, query, and migrate the agent's data layer.

When to choose Zep

  • You need a temporal knowledge graph with point-in-time fact validity and entity resolution.
  • Memory is conversational — relevant-fact retrieval matters more than typed SQL aggregation.
  • You want published memory benchmarks (LongMemEval, Deep Memory Retrieval) and a proven recall engine.
  • An OSS knowledge-graph core you can self-host (Graphiti) is on your shortlist.

In your HTML

The aggregation Zep's retrieval graph can't run — it returns relevant facts, not a GROUP BY / COUNT ranking; nlqdb answers it as SQL over the agent's own memory.

> top 10 topics the agent logged this month, ranked by mention count
<nlq-data goal="top 10 topics the agent logged this month, ranked by mention count"></nlq-data>

Feature parity, honest

Feature nlqdb Zep Note
Owns the database (provisions + migrates)
Natural-language → SQL Zep stores facts as knowledge-graph nodes; agents retrieve via graph search, not by compiling English to SQL.
Aggregations + reporting queries (GROUP BY / JOIN / HAVING over memory) Zep's graph returns the facts most relevant to a query; it has no query planner to aggregate across them.
Temporal knowledge graph (point-in-time fact validity) Graphiti's start/end validity windows are Zep's core primitive; nlqdb stores typed rows, not time-bounded graph edges.
Entity resolution across conversation + business data
Auto-migration via NL ('add a `priority` field')
MCP server (agent-callable) Graphiti ships an experimental MCP server exposing graph add/search; nlqdb's MCP exposes `nlqdb_query` / `nlqdb_list_databases` / `nlqdb_describe`, and `nlqdb_query` materialises Postgres on first reference.
Vector / semantic recall over conversation history Recall is Zep's lane; nlqdb answers with structured SQL and ships no embedding-based recall today.
Published recall benchmarks (LongMemEval, DMR) Zep publishes memory-recall benchmarks; nlqdb publishes NL→SQL execution accuracy (BIRD Mini-Dev + Spider 2.0-lite) — different axes.
Open source / self-hostable Graphiti's knowledge-graph core is open source and self-hostable; the Zep platform is commercial. nlqdb is source-available on FSL 1.1-ALv2, auto-converting to Apache 2.0 after two years.

shipped  ·  partial  ·  not shipped

Questions buyers ask

Can I use Zep for conversational recall and nlqdb for analytics over the same memory?
Yes — they compose. Zep's temporal knowledge graph handles 'what does the agent remember about Kendra right now'; nlqdb handles 'average deal size per stage across everything the agent logged'. Run Zep as the recall layer and nlqdb as the analytical store the agent queries with SQL.
Does nlqdb store a knowledge graph with temporal validity like Zep?
No. nlqdb is Postgres-first — typed rows in tables, not graph nodes with start/end validity windows. If point-in-time fact validity and entity resolution across conversation are core to your agent, Zep (built on Graphiti) is the right shape; nlqdb's contract is relational SQL over the rows the agent provisions.
Zep ships a Graphiti MCP server — how is nlqdb's MCP different?
Graphiti's MCP server exposes graph operations — add an episode, search the graph for relevant facts. nlqdb's MCP server (`mcp.nlqdb.com`) exposes `nlqdb_query`, `nlqdb_list_databases`, and `nlqdb_describe`; `nlqdb_query` materialises Postgres plus schema on first reference and runs aggregating SQL, so the agent reports over its memory instead of only retrieving from it.
How does nlqdb's accuracy compare to Zep's memory benchmarks?
They measure different axes. Zep publishes memory-recall benchmarks (LongMemEval, Deep Memory Retrieval) — how well it returns the right fact. nlqdb publishes NL→SQL execution accuracy (BIRD Mini-Dev + Spider 2.0-lite) to `docs/features/quality-eval/` — how well it turns an English question into correct SQL. Pick the benchmark that matches the job.
Can my AI agent provision its own store with Zep the way it can with nlqdb?
Zep is a hosted memory service (with the OSS Graphiti core you can self-host) — an agent reads and writes facts but doesn't stand up its own isolated database. nlqdb's MCP `nlqdb_query` materialises a tenant-scoped Postgres plus schema on first reference, so a Claude / Cursor / Cline agent provisions and migrates its data layer end-to-end without a human in the loop.

Try nlqdb in 30 seconds

No sign-in. The anonymous database lasts 72 hours; adopt it with one click if you keep it.

Start with a goal →

Want a comparison against another tool? Email us or browse all comparisons.

Building an AI agent? See analytical memory for agents →