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
We are Edward Izgorodin and Olga Timoshina, authors of "Merge Without Measure: Entity Resolution and Deduplication in Six Agent-Memory Systems", a dated source review we plan to submit to arXiv. Full disclosure first: we work at Mnemoverse.AI, a vendor of a competing agent-memory system. The paper discloses that conflict and applies its rubric to our own system, which fails it (more below). Before submission, we are sending each reviewed project its own findings so any factual error is caught by the people best placed to catch it.
What the paper claims about Graphiti, read at 0.29.3, commit 7cf0cab, on 2026-08-01:
Blocking window: candidate generation retrieves the top 15 nodes by name embedding at a cosine floor of 0.6.
Matching: the most developed pipeline of the six reviewed: an entropy gate, MinHash over 3-gram shingles with LSH banding, automatic merge at Jaccard of at least 0.9, and an LLM deciding pairs below it. We note that dedup_helpers.py contains six unexplained constants and zero citations, with no published operating point, and that the 0.9 gate is the only similarity threshold among those surveyed that gates an automatic, destructive merge of records the system itself judged similar.
Fate of the losing record: edges are never deleted (invalid_at is set); a losing node is never persisted; the surviving entity's summary is overwritten.
Merge record: Graphiti computes the merge record and discards it. add_episode unpacks the return of resolve_extracted_nodes as nodes, uuid_map, _, discarding the third element; the one helper that preserves duplicates has zero callers; the bulk path keeps duplicate pairs in memory only, to compress UUIDs; filter_existing_duplicate_of_edges is called only from a test; nothing in graphiti_core creates an IS_DUPLICATE_OF edge. We conclude a false entity merge is neither auditable nor reversible from the graph, state that whether the persistence path was removed deliberately or lost in a refactor is unverified, and cite Flag contradictions on merging facts #934 as an open request for that surface.
The Zep paper: we report that its 28 references contain no entry on entity resolution, record linkage, deduplication, or data fusion; a count we performed, independently checkable, framed as explanation rather than negligence. Zep's LongMemEval figures are quoted as vendor self-reports; Zep Cloud was read from client types and public documentation only.
Scope, stated plainly: this is a static reading. Nothing was executed. The zero-caller findings above hold under a caller search of the pinned tree and could be wrong if a path is exercised via dynamic dispatch, plugin registration, or a downstream package; if so, we will correct them.
The paper introduces the Merge Accountability Criteria (MAC): MAC-1, a published false-merge or false-split rate at the operating threshold; MAC-2, a merge record sufficient to undo a merge from the store; MAC-3, a threshold derived from a stipulated error budget. Your row in Table 3:
System
MAC-1 (error rate)
MAC-2 (reversibility)
MAC-3 (threshold provenance)
Nearest artifact
Graphiti 0.29.3
No
No
Constant (Jaccard 0.9; floor 0.6)
uuid_map computed, then discarded
The same rubric is applied to Mnemoverse: our documented consolidate step publishes no false-merge rate, keeps no merge record, and derives no threshold from an error budget, so our own row fails MAC-1, MAC-2, and MAC-3.
Three questions:
Is any reading above factually wrong? If so, what is the correct reading, with a pointer (file, line, commit, or doc page)?
Is there a published error rate for the identity decision at its threshold, or a stored merge record, that we missed?
May we record your response verbatim in the companion repository (https://github.com/mnemoverse/merge-accountability)? Corrections enter as dated entries, and the paper acknowledges responders in its revisions.
Responses received by 2026-08-30 will be incorporated before the arXiv v1; later responses go into v2 and the repository, which records this outreach and its outcome as dated entries.
Dear Graphiti maintainers,
We are Edward Izgorodin and Olga Timoshina, authors of "Merge Without Measure: Entity Resolution and Deduplication in Six Agent-Memory Systems", a dated source review we plan to submit to arXiv. Full disclosure first: we work at Mnemoverse.AI, a vendor of a competing agent-memory system. The paper discloses that conflict and applies its rubric to our own system, which fails it (more below). Before submission, we are sending each reviewed project its own findings so any factual error is caught by the people best placed to catch it.
What the paper claims about Graphiti, read at 0.29.3, commit 7cf0cab, on 2026-08-01:
Scope, stated plainly: this is a static reading. Nothing was executed. The zero-caller findings above hold under a caller search of the pinned tree and could be wrong if a path is exercised via dynamic dispatch, plugin registration, or a downstream package; if so, we will correct them.
The paper introduces the Merge Accountability Criteria (MAC): MAC-1, a published false-merge or false-split rate at the operating threshold; MAC-2, a merge record sufficient to undo a merge from the store; MAC-3, a threshold derived from a stipulated error budget. Your row in Table 3:
The same rubric is applied to Mnemoverse: our documented consolidate step publishes no false-merge rate, keeps no merge record, and derives no threshold from an error budget, so our own row fails MAC-1, MAC-2, and MAC-3.
Three questions:
Responses received by 2026-08-30 will be incorporated before the arXiv v1; later responses go into v2 and the repository, which records this outreach and its outcome as dated entries.
With thanks for your time,
Edward Izgorodin, Olga Timoshina (Mnemoverse.AI)
edward@mnemoverse.ai