AI Memory Benchmark: GigaRAG vs Mem0, Cognee and Graphiti
GigaRAG, Cognee, Mem0 and Graphiti answered the same 474 questions through the same agent LLM. What we measured, where GigaRAG did better, and where the others did.
On this page
01
Key findings
95.9%
Highest score on answerable questions
Ahead of Cognee by 4.7 points, Mem0 by 6.1 and Graphiti by 17.5. All three leads are statistically significant.
6 of 6
Best on every answerable skill
Fact lookup, multi-step, time and order, counting and lists, updated facts and preferences.
15 of 28
False premises corrected
Asked about the wrong person, GigaRAG said who it really was three times as often as the next best system.
96.0%
With no words shared with the source
GigaRAG’s score barely moves with the wording. The next best, Cognee, drops to 87.3%.
0
Invented facts
We read every unanswerable-question answer the judge marked wrong, in two runs. None of GigaRAG’s states a fact the source lacks.
8.6 s
Per question, end to end
7.5 times faster than Cognee and 2.6 times faster than Graphiti. Only Mem0 is faster.
02
How it was tested
What was in memory. Three open-access books published in 2025 and 2026, recent enough that an LLM is unlikely to have read them (165,000 words in all):
- Diplomacy on Time: Denmark in South Africa’s Negotiated Revolution, Peter Brückner (UJ Press, 2025)
- The Politics of Nuclear Energy in Africa, edited by Eben Coetzee (UJ Press, 2025)
- Plant Molecular Genetics and Bioengineering, edited by Walter P. Suza (Iowa State University Digital Press, 2026)
And two long chat histories from LoCoMo, a public benchmark for conversational memory: two pairs of friends talking over 19 sessions each (788 turns, 18,000 words).
The questions. 474 in all, 238 on the books and 236 on the chats. 58 of them (12%) have no answer in memory, to see whether a system admits it. The rest test one skill each: multi-step (123), fact lookup (94), time and order (79), counting and lists (64), facts that changed (32) and preferences (24). Each question is worded one of three ways: in the source’s own words (173), paraphrased (158), or sharing no words with the source except names (143).
How we kept it fair.
- A separate AI reviewer checked every question against its source. Of 544 drafts, 161 were fixed, 22 dropped and 2 duplicates removed.
- Any question the agent’s LLM could answer without memory (in two of three tries) was removed. Two models read the whole source to confirm each “not in memory” answer really is absent.
- A seeded random draw picked the final set, blind to any results.
- Every system got the same text, agent LLM, judge and server, and only its own read tools, described as in its own MCP server.
- The judge never sees which system wrote an answer.
- GigaRAG was developed on earlier question sets from these same sources; the others weren’t tuned for this test. Every question in this set is new. We changed GigaRAG once after a first run on it, which scored 96.3%; this run scored 95.9%.
- Everything is published in the question bank: every question, every system’s answer, the judge’s grade and reason, and every tool call, with CSV and JSON exports.
03
Results
For every question, the same agent LLM (DeepSeek Flash) searched the system’s memory and wrote an answer. A separate judge LLM (gpt-4.1-mini) compared that answer’s meaning with a gold answer.
A correct answer scores 1, a partly correct one 0.5, and a wrong or missing one 0. Books and chats count equally. The agent could reply up to 12 times per question, each reply either a search or the final answer; we call each reply a round. Where we say we hand-checked grades, we read the answers ourselves; the headline scores always use the judge’s grades.
Is the lead real? We re-drew the 416 questions at random many times over (a bootstrap) to see how far each gap moves by chance. GigaRAG leads Cognee by 4.7 points (95% range: 2.0 to 7.5), Mem0 by 6.1 (3.1 to 9.3) and Graphiti by 17.5 (13.7 to 21.5). No range reaches zero, so no lead is down to luck.
By skill
| Questions (count) | GigaRAG | Cognee | Mem0 | Graphiti |
|---|---|---|---|---|
| Fact lookup (94) | 98.9% | 96.8% | 91.0% | 79.8% |
| Multi-step (123) | 96.3% | 90.7% | 92.3% | 80.9% |
| Time and order (79) | 97.5% | 89.9% | 89.9% | 75.9% |
| Counting and lists (64) | 87.5% | 86.7% | 84.4% | 74.2% |
| Updated facts (32) | 95.3% | 90.6% | 85.9% | 85.9% |
| Preferences (24) | 100.0% | 89.6% | 91.7% | 68.8% |
| “Not in memory” (58) | 84.5% | 91.4% | 93.1% | 89.7% |
GigaRAG is best on all six answerable skills. Counting and lists is the closest: 87.5% against Cognee’s 86.7%. About half of our misses there leave out items that appear in a different session or section. On preferences GigaRAG got all 24 right.
The last row is the one GigaRAG doesn’t win: questions whose answer isn’t in memory. Its own section, “Not in memory” questions, explains why, and shows the gap closing once the agent is given more rounds.
By source
| Answerable questions on | GigaRAG | Cognee | Mem0 | Graphiti |
|---|---|---|---|---|
| Books | 96.6% | 95.9% | 95.4% | 81.0% |
| Chats | 95.2% | 86.5% | 84.1% | 75.7% |
Every system does better on the books. GigaRAG loses the least on the chats: 95.2%, against 75.7% to 86.5% for the others.
04
GigaRAG corrects false premises three times as often
28 of the chat questions are traps. Each asks about the wrong person: about Melanie for something Caroline did, or about Jon for something Gina did. They follow LoCoMo’s adversarial category.
The judge accepts two answers here: a bare “Not in memory”, or a correction such as “that was Melanie’s son, not Caroline’s”. To a user they are not equal. The correction answers what they meant to ask; the bare reply suggests the event never happened. So we read every answer and counted the corrections.
Every correction counted was checked against the conversation, and every one is true; no system gave a false correction. On 9 questions GigaRAG was the only system to correct the premise:
- pl0026“What did Caroline’s son do about the crash?”Melanie’s son was in the accident.
- pl0027“What did Caroline take up to unwind following the drive?”Melanie went camping after the road trip.
- pv3l0011“What inspired Melanie’s painting for the art show?”The art-show painting was Caroline’s.
- pv3l0028“What made Melanie want to become a counselor?”Caroline wants to be a counsellor.
- pl0059“What kind of professional experience did Jon get accepted for on May 23, 2023?”Gina was accepted for an internship.
- pl0060“Where is Jon doing his fashion internship again?”The internship is Gina’s.
- pv3l0139“Why did Gina close her bank account?”Jon closed his account.
- pv3l0134“What type of floor is Gina trying to find for her dance space?”Jon wants Marley flooring.
- pv3l0132“What did Jon create for his shop?”Gina built the order website.
Once, the reverse happened: on pv3l0137 Graphiti named the right person and GigaRAG didn’t.
Two of them, with every system’s answer
pl0026“What did Caroline’s son do about the crash?”
In the conversation: Melanie’s son was in the accident.
- GigaRAG
- It was Melanie’s son, not Caroline’s, who was in an accident during a roadtrip; Melanie said he was okay and the family later visited the Grand Canyon and went camping. Caroline has no son in memory—she was preparing to adopt.
- Cognee
- Not in memory.
- Mem0
- Not in memory.
- Graphiti
- Not in memory.
pl0027“What did Caroline take up to unwind following the drive?”
In the conversation: Melanie went camping after the road trip.
- GigaRAG
- The memory attributes that to Melanie, not Caroline: after the road trip, Melanie went camping with her family and said it helped her relax and recharge.
- Cognee
- No answer (ran out of rounds)
- Mem0
- Caroline took up learning to play the piano as a creative outlet.
- Graphiti
- No answer (ran out of rounds)
Caveats.
- We labelled these answers ourselves (28 questions, 4 systems). Every label is in the table below, so anyone can check them.
- It is one run per system. A second GigaRAG run, with a different embedding model, again corrected 15, but only 11 were the same questions. The count per system is more stable than which questions get corrected.
- Correcting takes more work than a bare reply: 3.7 rounds and about 76k agent tokens per question for GigaRAG here, against 2.9 to 3.5 rounds for the others.
- The judge marked two correct GigaRAG corrections wrong (pv3l0011, pv3l0132). The scores keep its grades.
All 28 trap questions, with every system’s label
| Question | What the conversation says | GigaRAG | Cognee | Mem0 | Graphiti |
|---|---|---|---|---|---|
| pl0029Why did Melanie choose the adoption agency? | Caroline chose it | Corrects | Not in memory | Not in memory | Corrects |
| pl0026What did Caroline's son do about the crash? | Melanie's son was in the accident | Corrects | Not in memory | Not in memory | Not in memory |
| pl0027What did Caroline take up to unwind following the drive? | Melanie went camping after the road trip | Corrects | Wrong | Wrong | Wrong |
| pv3l0011What inspired Melanie's painting for the art show? | The art-show painting was Caroline's | Corrects | Not in memory | Not in memory | Not in memory |
| pv3l0027What country is Melanie's grandmother from? | Caroline's grandmother is from Sweden | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0021What shared pursuit does Melanie recall enjoying with her father? | Caroline rode horses with her dad | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0017What is Melanie excited about in her adoption process? | The adoption is Caroline's | Corrects | Corrects | Not in memory | Corrects |
| pv3l0008Who does Caroline say she's a fan of when it comes to current music? | Melanie named Ed Sheeran | Corrects | Corrects | Not in memory | Not in memory |
| pv3l0026What does the jewelry Melanie wears represent? | The necklace is Caroline's | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0012What was the poetry reading that Melanie attended about? | Caroline attended it | Corrects | Not in memory | Corrects | Corrects |
| pv3l0015What gave Melanie the idea for her piece in the exhibition? | No clear true owner | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0016What type of individuals does the adoption agency Melanie is considering support? | Caroline was considering it | Corrects | Corrects | Not in memory | Wrong |
| pv3l0028What made Melanie want to become a counselor? | Caroline wants to be a counsellor | Corrects | Not in memory | Not in memory | Not in memory |
| pv3l0003What warning notice did Caroline observe at the eatery? | The sign's wording is not recorded | Not in memory | Not in memory | Not in memory | Not in memory |
| pl0059What kind of professional experience did Jon get accepted for on May 23, 2023? | Gina was accepted for an internship | Corrects | Not in memory | Not in memory | Not in memory |
| pl0060Where is Jon doing his fashion internship again? | The internship is Gina's | Corrects | Not in memory | Not in memory | Not in memory |
| pl0064Why did Jon travel to the Catalan capital in Spain? | No clear true owner | Not in memory | Not in memory | Not in memory | Not in memory |
| pl0061Why did Jon combine his clothing business with dance? | Gina combined them | Corrects | Not in memory | Corrects | Corrects |
| pl0057What does Gina do with that board thing that has paper on it? | No clear true owner | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0137What book is Gina currently reading? | Jon is reading The Lean Startup | Not in memory | Not in memory | Not in memory | Corrects |
| pv3l0139Why did Gina close her bank account? | Jon closed his account | Corrects | Not in memory | Not in memory | Not in memory |
| pv3l0127What did Jon produce a small run of? | Gina made a limited-edition line | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0134What type of floor is Gina trying to find for her dance space? | Jon wants Marley flooring | Corrects | Not in memory | Not in memory | Not in memory |
| pv3l0124What sort of routine did Jon's troupe perform when they took the top prize? | Gina's team won with “Finding Freedom” | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0126Where is Gina's HR internship? | No HR internship exists | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0138What style of painting does Jon like most? | No clear true owner | Not in memory | Not in memory | Not in memory | Not in memory |
| pv3l0132What did Jon create for his shop? | Gina built the order website | Corrects | Not in memory | Wrong | Not in memory |
| pv3l0130What temporary job did Gina take to cover expenses? | Jon took the temp job | Not in memory | Not in memory | Not in memory | Not in memory |
“Not in memory” also covers answers that made no correction for any other reason. Four questions (pl0057, pl0064, pv3l0015, pv3l0138) have no clear right person to correct to.
05
The same score however the question is worded
The three wording groups are different questions, 126 to 151 answerable ones each.
| Wording (count) | GigaRAG | Cognee | Mem0 | Graphiti |
|---|---|---|---|---|
| Same words as the source (151) | 96.0% | 93.4% | 93.0% | 76.2% |
| Reworded (139) | 95.7% | 92.4% | 89.6% | 84.9% |
| No shared words (126) | 96.0% | 87.3% | 86.1% | 73.8% |
GigaRAG stays at 96% whatever the wording. Cognee and Mem0 slip as the question moves away from the source’s words. With no shared words, GigaRAG leads them by about 9 to 10 points, and Graphiti by 22.
06
Why the other systems miss detail
Most likely, it comes down to what each system keeps when it stores text.
- GigaRAG keeps the full text of every section and chat session, adds a short summary, and searches by meaning.
- Mem0 keeps only short facts an LLM pulled out when storing. Anything left out can’t be found later.
- Graphiti searches the entities and relations it extracted; the raw text is stored but not searched.
- Cognee’s tool mostly returns a response written by a second LLM, not the source text.
07
“Not in memory” questions
58 questions have no answer in memory. The right reply is to say so. A system can fail one in two ways:
- Inventing an answer, stating a fact the source doesn’t have. This is a hallucination.
- Never answering: the agent keeps searching until it runs out of rounds. Not a hallucination, but the user gets nothing.
With the standard 12 rounds, GigaRAG ran out on 6 of these questions, and that is the whole of its gap. So we ran all 58 again, for every system, with 30 rounds. In both runs we read every answer the judge marked wrong (except empty ones). We didn’t re-read the ones it accepted, so the hand check can only raise a score.
With 30 rounds: all four level, and GigaRAG invents nothing
| System | Judge: right (of 58) | Right after hand check | Invented a fact | Kept the false premise | Misread a related figure | Rounds / q |
|---|---|---|---|---|---|---|
| GigaRAG | 54 | 57 (98.3%) | 0 | 0 | 1 | 5.8 |
| Cognee | 57 | 57 (98.3%) | 1 | 0 | 0 | 2.7 |
| Mem0 | 56 | 57 (98.3%) | 0 | 1 | 0 | 3.8 |
| Graphiti | 56 | 57 (98.3%) | 0 | 1 | 0 | 4.7 |
- Every system gets 57 of 58 after the hand check, and none ran out of rounds. Every system was re-run on all 58, not just its misses, so the answers are a fresh sample.
- The six questions GigaRAG ran out on are all answered correctly, after 5 to 28 rounds.
- GigaRAG’s one miss (pq0237) misread a citation. Asked for the reference number of a 1955 US paper, it gave the book’s citation for that paper, “Drogan 2016:972”: real, but not the number asked for.
- The only invented fact is Cognee’s “China National Nuclear Corporation” on pq0228, the same as in the first run. Mem0 and Graphiti each went along with one false premise, using a true fact from elsewhere.
- The judge again marked a true GigaRAG answer wrong(pv3t0001, which said memory records no specific provisions).
- The cost is rounds: 5.8 per question for GigaRAG, against 2.7 to 4.7 for the others. Making GigaRAG stop sooner here is our next fix.
With the standard 12 rounds
| System | Judge: right (of 58) | Ran out of rounds or empty | Invented a fact | Right after hand check |
|---|---|---|---|---|
| GigaRAG | 49 | 6 | 0 | 52 (89.7%) |
| Cognee | 53 | 3 | 2 | 53 (91.4%) |
| Mem0 | 54 | 2 | 0 | 54 (93.1%) |
| Graphiti | 52 | 3 | 1 | 54 (93.1%) |
GigaRAG and Mem0 invented nothing; Graphiti invented one fact, Cognee two. Mem0’s two misses went along with the false premise using a true fact: on pl0027 it said Caroline took up the piano, which she did, but nothing links that to the drive.
The judge marked 9 of GigaRAG’s 58 answers wrong. Reading them:
- 2 were correct premise corrections (pv3l0011, pv3l0132);
- 1 was an ambiguous question (pv3m0295), asking for the middle name of “the guy who made Figure 7” in a book with eight Figure 7s. GigaRAG gave a name the book does credit;
- 6 ran out of rounds, on questions where the topic is in memory but the detail asked for isn’t.
That leaves GigaRAG 1 to 2 questions behind the others at 12 rounds, all of it from the six that ran out, which the 30-round run closes.
08
Tokens and cost
Tokens count everything sent to or produced by any LLM while answering. In every setup the agent LLM reads the search results and writes the answer. Cognee adds a step: on about 71% of its tool calls, a second LLM inside Cognee’s tool writes a response from what it found, and the agent reads that instead of the source. Those tokens are real spend, so they are counted.
The typical question
| System | Typical question (median) | Mean | Top 10% of questions use more than | GigaRAG uses more on |
|---|---|---|---|---|
| Mem0 | 2.7k | 9.8k | 18k | 455 of 474 |
| Graphiti | 12.1k | 52.7k | 177k | 336 of 474 |
| GigaRAG | 24.7k | 51.6k | 80k | — |
| Cognee | 38.0k (estimate) | 54.5k | 84k (estimate) | 154 of 474 |
On a typical question GigaRAG uses more tokens than Mem0 and Graphiti (24.7k against 2.7k and 12.1k), and fewer than Cognee once its second LLM is counted (about 38k).
The mean tells a different story because a few very long questions pull it up. A tenth of Graphiti’s questions use more than 177k tokens each, which puts its mean (52.7k) just above GigaRAG’s (51.6k), even though GigaRAG uses more tokens than Graphiti on 336 of 474 questions.
Why GigaRAG’s count is high. Every agent reply re-sends the conversation so far, earlier search results included. A GigaRAG search shows the agent about 17,300 characters of source text, and reading a memo returns all of it. A Mem0 search returns about 2,600 characters of short facts. That is where GigaRAG’s extra detail comes from, and where its extra tokens go.
Cognee’s per-question figures are estimates. Its second LLM was metered for the whole run, not per question, so each question’s share is its number of LLM-using Cognee calls times the average of 18.2k tokens per such call. Its mean is the metered total.
What the tokens cost
Cost is what DeepSeek bills for those tokens at its published per-token prices for DeepSeek Flash, the model behind every LLM call while answering, Cognee’s second LLM included. It covers input, cached input and output. It leaves out the judge, ingesting the sources and embeddings, and it will differ with another model. The mean sets the total bill, so that is what is charted here.
| System | Mean tokens / question | Cost / question |
|---|---|---|
| Cognee | 54.5k | $0.0061 |
| Graphiti | 52.7k | $0.0025 |
| GigaRAG | 51.6k | $0.0028 |
| Mem0 | 9.8k | $0.0007 |
GigaRAG costs less than half as much as Cognee for a similar mean number of tokens because 69% of its input tokens were cache hits, which DeepSeek bills at a lower rate.
09
Speed
| System | Mean | Median |
|---|---|---|
| Mem0 | 6.1 s | 3.8 s |
| GigaRAG | 8.6 s | 6.8 s |
| Graphiti | 22.0 s | 10.7 s |
| Cognee | 64.9 s | 49.0 s |
Most of GigaRAG’s 8.6 seconds (82%) is the agent LLM writing its replies, so fewer rounds would cut time and tokens together. The search itself takes 305 ms per call on average, with the query embedded on the server’s own CPU. Mem0’s takes 335 ms, calling OpenAI’s embedding API, and Graphiti’s 1.5 s.
Mem0 is faster per question. Its store takes one call at a time, and we left out the time its calls spent queued behind other questions running in parallel (3.2 s per question). Counted in, Mem0 averages about 9.3 s.
10
Where other systems did better
- Mem0 is faster and much cheaper: 6.1 s per question against our 8.6 s, at about a quarter of the cost (see Tokens and cost).
- Mem0 and Graphiti use fewer tokens on a typical question: 2.7k and 12.1k against our 24.7k. GigaRAG shows the agent full passages; Mem0 returns short facts.
- Cognee and Mem0 take fewer rounds: 1.8 and 2.0 against our 2.7. On unanswerable questions the gap is wider: 2.7 and 3.8 against our 5.8.
- At 12 rounds, the others get 1 to 2 more unanswerable questions right after the hand check: 54, 54 and 53 of 58 against our 52. Every one of GigaRAG’s remaining misses there is the agent still searching when the rounds run out.
- Every system beat us on some questions. On answerable questions, Mem0 was fully right where GigaRAG wasn’t on 14, Cognee on 13 and Graphiti on 11. The other way round: 47, 43 and 98.
11
Limits of this test, and what we test next
- We built GigaRAG and ran this benchmark, so it isn’t independent. That is why every question and answer is published.
- One run per system. Gaps under about 2 points are within run-to-run noise.
- All four systems got 62% of the questions (292 of 474) fully right, so the ranking rests on the rest.
- It compares memory products, not a plain retrieval baseline.
- The corpus is small and never changes. It doesn’t test scale, changing facts, or memory written during a conversation, which is where GigaRAG’s structure (buckets, threads, links, fact versions) is meant to matter.
- The judge is an LLM and grades premise corrections inconsistently (see False premises).
- One question (pv3m0295) is ambiguous, and one (pv3g0024), missed by every system, needs its gold answer checked. Both will be fixed in the next edition.
What we test next
- Scale: the same questions with 100 or more similar books and chats added as distractors.
- Facts that change over time.
- The full LoCoMo benchmark: 10 conversations with its own questions.
- An agent writing its own memory during a long conversation and recalling it later.
12
Method
- Questions
- 474: 238 on three books, 236 on two LoCoMo chat histories (conv-26 and conv-30). 58 have no answer in memory.
- Agent
- DeepSeek Flash for every system, 8 questions at a time, up to 12 rounds per question (30 in the “not in memory” re-run). A question that runs out scores 0.
- Tools
- Each system’s read tools only, described as in its own MCP server.
- Judge
- gpt-4.1-mini, grading meaning only. Any grade other than correct is re-run twice, and the majority stands.
- Storage
- Every system ingested the same text. Where a system calls an LLM at ingest, that was DeepSeek Flash too. GigaRAG embeds with a local model (multilingual-e5-small) on the server’s CPU; Cognee, Mem0 and Graphiti use OpenAI text-embedding-3-small.
- Machine
- One server for all systems: 4 vCPU, 8 GB, no GPU.
- Tokens and time
- Tokens are summed over every LLM call while answering, so re-sent context counts each time. Times are means per question.
- Data
- Every question and answer is in the question bank, with CSV and JSON exports.