{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2601-01280","title":"Does Memory Need Graphs? A Unified Framework and Empirical Analysis for Long-Term Dialog Memory","arxiv_id":"2601.01280","date":"2026-01-03","proceeding":null,"authors":["Sen Hu","Yuxiang Wei","Jiaxin Ran","Zhiyuan Yao","Xueran Han","Huacan Wang","Ronghao Chen","Lei Zou"],"abstract":"Graph structures are increasingly used in dialog memory systems, but empirical findings on their effectiveness remain inconsistent, making it unclear which design choices truly matter. We present an experimental, system-oriented analysis of long-term dialog memory architectures. We introduce a unified framework that decomposes dialog memory systems into core components and supports both graph-based and non-graph approaches. Under this framework, we conduct controlled, stage-wise experiments on LongMemEval and HaluMem, comparing common design choices in memory representation, organization, maintenance, and retrieval. Our results show that many performance differences are driven by foundational system settings rather than specific architectural innovations. Based on these findings, we identify stable and reliable strong baselines for future dialog memory research. Code are available at https://github.com/AvatarMemory/UnifiedMem","url_abs":"https://arxiv.org/abs/2601.01280","url_pdf":"https://arxiv.org/pdf/2601.01280","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2601.01280","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.01280"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/AvatarMemory/UnifiedMem","reach":{"status":"ok"}}],"summary":{"ran_draft_wrong":1,"unverified":14},"by_repo_kind":{"found_in_text":{"samples":15,"ran":1,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":15,"samples":[{"code_sha256_prefix":"8e4f7c8ecedd17fa","entry":"get_anscheck_prompt","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/lme_compute_qa.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/lme_compute_qa.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8e4f7c8ecedd17fa"}},{"code_sha256_prefix":"e0aab4b195550d47","entry":"aggregate_eval_results","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/halu_eval.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/halu_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e0aab4b195550d47"}},{"code_sha256_prefix":"c8f76a04b5265a70","entry":"dcg","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/lme_eval_utils.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/lme_eval_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c8f76a04b5265a70"}},{"code_sha256_prefix":"26a8cb5307b0a68e","entry":"deduplicate_with_tracking","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"data_preprocessing/lme_deduplicate.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/data_preprocessing/lme_deduplicate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"26a8cb5307b0a68e"}},{"code_sha256_prefix":"4c538cdb253e39f7","entry":"evaluate_retrieval","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/lme_eval_utils.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/lme_eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4c538cdb253e39f7"}},{"code_sha256_prefix":"db7adcd73b73aca7","entry":"extract_user_name","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/halu_graph_eval.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/halu_graph_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"db7adcd73b73aca7"}},{"code_sha256_prefix":"6ecbf0b2441006af","entry":"extract_user_name","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/halu_graph_eval.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/halu_graph_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6ecbf0b2441006af"}},{"code_sha256_prefix":"5b6dce41a0d60b6a","entry":"get_rankings_from_retrieval_results","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/lme_compute_recall.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/lme_compute_recall.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5b6dce41a0d60b6a"}},{"code_sha256_prefix":"c3e1613e2b87ef3a","entry":"get_stage_base_url","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"src/config.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/src/config.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c3e1613e2b87ef3a"}},{"code_sha256_prefix":"8a66c65d3e29703b","entry":"get_stage_model","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"src/config.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/src/config.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8a66c65d3e29703b"}},{"code_sha256_prefix":"e726e129f7c867f6","entry":"getenv","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"src/config.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/src/config.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e726e129f7c867f6"}},{"code_sha256_prefix":"878c3d776ad1928f","entry":"ndcg","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/lme_eval_utils.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/lme_eval_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"878c3d776ad1928f"}},{"code_sha256_prefix":"02472179dd90321e","entry":"read_json","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/halu_graph_eval.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/halu_graph_eval.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"02472179dd90321e"}},{"code_sha256_prefix":"e200d9e27b970ba1","entry":"recompute_metrics_for_entry","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"evals/lme_compute_recall.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/evals/lme_compute_recall.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e200d9e27b970ba1"}},{"code_sha256_prefix":"02857f981ca547ae","entry":"reconstruct_deduplication_mapping","repo":"AvatarMemory/UnifiedMem","repo_kind":"found_in_text","path":"data_preprocessing/lme_deduplicate.py","file_url":"https://github.com/AvatarMemory/UnifiedMem/blob/HEAD/data_preprocessing/lme_deduplicate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"02857f981ca547ae"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}