G-Evolver: Learning to Evolve Graph Memory with Continual Structural Refinement
Abstract
Memory is central to how large language models (LLMs) sustain long-term, multi-session dialogue. As interactions accumulate, organizing ever-growing memories to support efficient retrieval becomes a critical challenge. Graph structures, which can explicitly model the relationships between memories, have emerged as a promising approach. Existing graph-based memory methods typically extract entity–relation triples from the corpus and link them via shared entities, organizing scattered knowledge into a unified graph. However, such paradigms suffer two fundamental drawbacks. Firstly, relationships based on shared entities fail to capture implicit causal and temporal relationships across sections, resulting in inferior retrieval results. Secondly, queries arrive continuously in real-world deployments while the constructed graph remains static, where structural flaws that are revealed during retrieval cannot be corrected, and rebuilding the entire graph is excessively costly. To this end, we propose G-Evolver, which turns the graph from a frozen topology into a structure that evolves continuously with the query stream. Concretely, G-Evolver decomposes evolution into two coupled decisions: an extractor first localizes the query-relevant subgraph to be evolved, and an evolver then applies repair operations to it before retrieval; operations verified by retrieval feedback are consolidated into the persistent graph, so that subsequent queries no longer re-encounter the same defects. To train the two modules jointly, we propose Graph Evolution Policy Optimization (GEPO), which turns the verification signal into hierarchical credit over the extraction and the evolution decisions. We further prove that continual evolution converges geometrically to the optimum. Across 4 memory QA benchmarks, G-Evolver consistently outperforms 16 competitive baselines
est. 32% chance this paper gets accepted at ICLR 2027.
What do you think this paper will get?
All positions stay anonymous.