You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12-8Lines changed: 12 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,18 +53,22 @@ Search hits Facts, graph discovers Episodes, traces back to source Sentences. SQ
53
53
54
54
## Benchmarks
55
55
56
-
Tested on long-horizon memory benchmarks — hundreds of turns, real user details buried deep in history.
56
+
> **What is F1?** F1 is the harmonic mean of precision (what fraction of the model's answer was correct) and recall (what fraction of the correct answer the model actually covered). A high F1 means the answer is both accurate and complete. Most memory system vendors report LLM-judge accuracy instead — a separate LLM scores each answer as correct or not, which is easier to run but less granular.
Tested on long-horizon memory benchmarks — hundreds of turns, real user details buried deep in history.
62
59
63
-
†Zep's self-reported score is 75%; independently re-evaluated at 58%. Scores across systems are not always directly comparable — model choice (GPT-4o vs GPT-4.1-mini vs local) significantly affects results.
60
+
| System | LoCoMo | LongMemEval-S | DMR | F1 avg (LoCoMo)† | Search p95 | Total p95 |
We used gemini-2.5-flash-lite because of token cost, better models imporve accuracy a lot. Benchmarks at L1 level
68
+
†F1 = harmonic mean of precision (how much of the answer was correct) and recall (how much of the correct answer was covered). Only Mem0 publishes token-level F1; 41.0 is the average across single-hop 38.72, multi-hop 28.64, open-domain 47.65, temporal 48.93.
69
+
‡Zep self-reported; Mem0's paper measured Zep at 65.99% on the same run. Latency from Mem0's paper. Model choice significantly shifts all scores — we used gemini-2.5-flash-lite for cost.
66
70
67
-
On LoCoMo and longmemEval, **the retrieved context contains the answer in 95% of questions** — the gap to 66% is a synthesis problem, not a retrieval one. Actively working on closing it, exploring RL.
71
+
On LoCoMo and LongMemEval, **the retrieved context contains the answer in 95% of questions** — the gap to 66% is a synthesis problem, not a retrieval one. Actively working on closing it, exploring RL.
68
72
69
73
Still improving — PRs and evals welcome. Run your own: [`/benchmarks`](benchmarks/)
- For date answers, accept equivalent formats. These are always CORRECT:
73
73
"2023-10-21" = "21 October 2023" = "October 21, 2023"
74
74
"2022-11-10" = "10 November 2022" = "November 10, 2022"
75
-
- Absolute dates that equal a relative expression are CORRECT. Verify the arithmetic before marking wrong:
76
-
"July 14, 2023" = "The Friday before 15 July 2023" (July 14 is a Friday)
77
-
"11 August 2023" = "The Friday before 14 August 2023" (August 11 is a Friday)
75
+
- Absolute dates that equal a relative expression are CORRECT. To check: compute the calendar date the relative expression describes, then compare. If they land on the same day (±0), it is CORRECT. Show your arithmetic before concluding.
76
+
"July 14, 2023" = "The Friday before 15 July 2023" (July 14 is a Friday ✓)
77
+
"11 August 2023" = "The Friday before 14 August 2023" (August 11 is a Friday ✓)
78
+
"2023-07-17" = "The weekend before 17 July 2023" (July 17 is itself a Monday — weekend is July 15/16; mark accordingly)
78
79
A model that gives the computed absolute date when the expected uses relative phrasing is CORRECT, not wrong.
79
-
- Extra correct details do not make an answer wrong.
80
+
- If the MODEL ANSWER is short (under 25 words) — a bare name, date, quantity, or short phrase — do NOT invent reasons it is wrong. Only ask: does this core fact match the expected answer? If yes → CORRECT. Do not fabricate attribution errors, entity confusions, or "context doesn't mention this" claims for a short answer. A short answer that matches the expected answer is CORRECT.
81
+
- If the EXPECTED ANSWER is short (5 words or fewer), check whether the model answer CONTAINS that core fact, regardless of surrounding phrasing. "Caroline is single, having experienced a tough breakup" is CORRECT for expected="Single". "John explored the Pacific Northwest on a road trip" is CORRECT for expected="Pacific Northwest". Extra phrasing around the core fact does NOT make the answer PARTIALLY_CORRECT.
82
+
- Extra correct details do not make an answer wrong or partially correct.
Copy file name to clipboardExpand all lines: vektori/ingestion/extractor.py
+5Lines changed: 5 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -329,6 +329,11 @@
329
329
- source_quotes: verbatim text from the ASSISTANT turn
330
330
331
331
General:
332
+
- Proper nouns, brand names, place names, and specific quantities MUST appear verbatim in the fact text. Never substitute a category or synonym for a specific name:
333
+
BAD: "Calvin purchased a luxury car." GOOD: "Calvin purchased a Ferrari 488 GTB."
334
+
BAD: "John's old area was flooded." GOOD: "John's area West County was flooded."
335
+
BAD: "Tim visited a Harry Potter shop." GOOD: "Tim visited House of MinaLima."
336
+
The 20-word guide does NOT override this — preserve the specific name even at 22–25 words.
332
337
- One fact per statement. Short and crisp.
333
338
- subject: 'user' when about the person speaking; a named entity when about someone/something they mention; 'assistant' for assistant facts
334
339
- Extract at most {max_facts} facts total — prioritize high-confidence, significant ones
0 commit comments