Skip to content

aiming-lab/SimpleMem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SimpleMem: Efficient Lifelong Memory for LLM Agents

Project Page

Paper GitHub License


πŸ”₯ News

  • [01/08/2026] We've set up a Discord server and WeChat group to make it easier to collaborate and exchange ideas on this project. Welcome to join the Group to share your thoughts, ask questions, or contribute your ideas! πŸ”₯ Join our Discord and WeChat Group Now!
  • [01/05/2026] SimpleMem paper was released on arXiv!

πŸ“‘ Table of Contents


🌟 Overview

Performance vs Efficiency Trade-off

SimpleMem achieves superior F1 score (43.24%) with minimal token cost (~550), occupying the ideal top-left position.

SimpleMem addresses the fundamental challenge of efficient long-term memory for LLM agents through a three-stage pipeline grounded in Semantic Lossless Compression. Unlike existing systems that either passively accumulate redundant context or rely on expensive iterative reasoning loops, SimpleMem maximizes information density and token utilization through:

πŸ” Stage 1

Semantic Structured Compression

Entropy-based filtering and de-linearization of dialogue into self-contained atomic facts

πŸ—‚οΈ Stage 2

Structured Indexing

Asynchronous evolution from fragmented atoms to higher-order molecular insights

🎯 Stage 3

Adaptive Retrieval

Complexity-aware pruning across semantic, lexical, and symbolic layers

SimpleMem Framework

The SimpleMem Architecture: A three-stage pipeline for efficient lifelong memory through semantic lossless compression


πŸ† Performance Comparison

Speed Comparison Demo

SimpleMem vs. Baseline: Real-time speed comparison demonstration

LoCoMo-10 Benchmark Results (GPT-4.1-mini)

Model ⏱️ Construction Time πŸ”Ž Retrieval Time ⚑ Total Time 🎯 Average F1
A-Mem 5140.5s 796.7s 5937.2s 32.58%
LightMem 97.8s 577.1s 675.9s 24.63%
Mem0 1350.9s 583.4s 1934.3s 34.20%
SimpleMem ⭐ 92.6s 388.3s 480.9s 43.24%

πŸ’‘ Key Advantages:

  • πŸ† Highest F1 Score: 43.24% (+26.4% vs. Mem0, +75.6% vs. LightMem)
  • ⚑ Fastest Retrieval: 388.3s (32.7% faster than LightMem, 51.3% faster than Mem0)
  • πŸš€ Fastest End-to-End: 480.9s total processing time (12.5Γ— faster than A-Mem)

🎯 Key Contributions

1️⃣ Semantic Lossless Compression Pipeline

SimpleMem transforms raw, ambiguous dialogue streams into atomic entries β€” self-contained facts with resolved coreferences and absolute timestamps. This write-time disambiguation eliminates downstream reasoning overhead.

✨ Example Transformation:

- Input:  "He'll meet Bob tomorrow at 2pm"  [❌ relative, ambiguous]
+ Output: "Alice will meet Bob at Starbucks on 2025-11-16T14:00:00"  [βœ… absolute, atomic]

2️⃣ Structured Multi-View Indexing

Memory is indexed across three structured dimensions for robust, multi-granular retrieval:

πŸ” Layer πŸ“Š Type 🎯 Purpose πŸ› οΈ Implementation
Semantic Dense Conceptual similarity Vector embeddings (1024-d)
Lexical Sparse Exact term matching BM25-style keyword index
Symbolic Metadata Structured filtering Timestamps, entities, persons

3️⃣ Complexity-Aware Adaptive Retrieval

Instead of fixed-depth retrieval, SimpleMem dynamically estimates query complexity ($C_q$) to modulate retrieval depth:

$$k_{dyn} = \lfloor k_{base} \cdot (1 + \delta \cdot C_q) \rfloor$$

πŸ”Ή Low Complexity Queries

  • Retrieve minimal molecular headers
  • ~100 tokens
  • Fast response time

πŸ”Έ High Complexity Queries

  • Expand to detailed atomic contexts
  • ~1000 tokens
  • Comprehensive coverage

πŸ“ˆ Result: 43.24% F1 score with 30Γ— fewer tokens than full-context methods.


πŸš€ Performance Highlights

πŸ“Š Benchmark Results (LoCoMo)

πŸ”¬ High-Capability Models (GPT-4.1-mini)
Task Type SimpleMem F1 Mem0 F1 Improvement
MultiHop 43.46% 30.14% +43.8%
Temporal 58.62% 48.91% +19.9%
SingleHop 51.12% 41.3% +23.8%
βš™οΈ Efficient Models (Qwen2.5-1.5B)
Metric SimpleMem Mem0 Notes
Average F1 25.23% 23.77% Competitive with 99Γ— smaller model

πŸ“¦ Installation

πŸ“‹ Requirements

  • 🐍 Python 3.10
  • πŸ”‘ OpenAI-compatible API (OpenAI, Qwen, Azure OpenAI, etc.)

πŸ› οΈ Setup

# πŸ“₯ Clone repository
git clone https://github.com/aiming-lab/SimpleMem.git
cd SimpleMem

# πŸ“¦ Install dependencies
pip install -r requirements.txt

# βš™οΈ Configure API settings
cp config.py.example config.py
# Edit config.py with your API key and preferences

βš™οΈ Configuration Example

# config.py
OPENAI_API_KEY = "your-api-key"
OPENAI_BASE_URL = None  # or custom endpoint for Qwen/Azure

LLM_MODEL = "gpt-4.1-mini"
EMBEDDING_MODEL = "Qwen/Qwen3-Embedding-0.6B"  # State-of-the-art retrieval

⚑ Quick Start

πŸŽ“ Basic Usage

from main import SimpleMemSystem

# πŸš€ Initialize system
system = SimpleMemSystem(clear_db=True)

# πŸ’¬ Add dialogues (Stage 1: Semantic Structured Compression)
system.add_dialogue("Alice", "Bob, let's meet at Starbucks tomorrow at 2pm", "2025-11-15T14:30:00")
system.add_dialogue("Bob", "Sure, I'll bring the market analysis report", "2025-11-15T14:31:00")

# βœ… Finalize atomic encoding
system.finalize()

# πŸ”Ž Query with adaptive retrieval (Stage 3: Adaptive Query-Aware Retrieval)
answer = system.ask("When and where will Alice and Bob meet?")
print(answer)
# Output: "16 November 2025 at 2:00 PM at Starbucks"

πŸš„ Advanced: Parallel Processing

For large-scale dialogue processing, enable parallel mode:

system = SimpleMemSystem(
    clear_db=True,
    enable_parallel_processing=True,  # ⚑ Parallel memory building
    max_parallel_workers=8,
    enable_parallel_retrieval=True,   # πŸ” Parallel query execution
    max_retrieval_workers=4
)

πŸ’‘ Pro Tip: Parallel processing significantly reduces latency for batch operations!


πŸ“Š Evaluation

πŸ§ͺ Run Benchmark Tests

# 🎯 Full LoCoMo benchmark
python test_locomo10.py

# πŸ“‰ Subset evaluation (5 samples)
python test_locomo10.py --num-samples 5

# πŸ’Ύ Custom output file
python test_locomo10.py --result-file my_results.json

πŸ”¬ Reproduce Paper Results

Use the exact configurations in config.py:

  • πŸš€ High-capability: GPT-4.1-mini, Qwen3-Plus
  • βš™οΈ Efficient: Qwen2.5-1.5B, Qwen2.5-3B
  • πŸ” Embedding: Qwen3-Embedding-0.6B (1024-d)

πŸ“ Citation

If you use SimpleMem in your research, please cite:

@article{simplemem2025,
  title={SimpleMem: Efficient Lifelong Memory for LLM Agents},
  author={Liu, Jiaqi and Su, Yaofeng and Xia, Peng and Zhou, Yiyang and Han, Siwei and  Zheng, Zeyu and Xie, Cihang and Ding, Mingyu and Yao, Huaxiu},
  journal={arXiv preprint arXiv:2601.02553},
  year={2025},
  url={https://github.com/aiming-lab/SimpleMem}
}

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

We would like to thank the following projects and teams:

  • πŸ” Embedding Model: Qwen3-Embedding - State-of-the-art retrieval performance
  • πŸ—„οΈ Vector Database: LanceDB - High-performance columnar storage
  • πŸ“Š Benchmark: LoCoMo - Long-context memory evaluation framework

About

SimpleMem: Efficient Lifelong Memory for LLM Agents

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages