[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74088":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":42,"readmeContent":43,"aiSummary":44,"trendingCount":16,"starSnapshotCount":16,"syncStatus":45,"lastSyncTime":46,"discoverSource":47},74088,"SimpleMem","aiming-lab\u002FSimpleMem","aiming-lab","SimpleMem: Efficient Lifelong Memory for LLM Agents — Text & Multimodal","",null,"Python",3503,359,43,10,0,27,45,260,81,29.67,"MIT License",false,"main",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"agent","audio","compression","knowledge-graph","lifelong-memory","llm","mcp","memory","multimodal","python","rag","retrieval","semantic-search","simplemem","video","vision","2026-06-12 02:03:22","\u003Cdiv align=\"center\">\n\n\u003Cimg alt=\"simplemem_logo\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6ea54ad1-e007-442c-99d7-1174b10d1fec\" width=\"450\">\n\n\u003Cdiv align=\"center\">\n\n## Efficient Lifelong Memory for LLM Agents — Text & Multimodal\n\n\u003Csmall>Store, compress, and retrieve long-term memories with semantic lossless compression. Now with multimodal support for text, image, audio & video. Works across Claude, Cursor, LM Studio, and more.\u003C\u002Fsmall>\n\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cb>Works with any AI platform that supports MCP or Python integration\u003C\u002Fb>\u003C\u002Fp>\n\n\u003Ctable>\n\u003Ctr>\n\n\u003Ctd align=\"center\" width=\"100\">\n  \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fclaude\">\n    \u003Cimg src=\"https:\u002F\u002Fcdn.simpleicons.org\u002Fclaude\u002FD97757\" width=\"48\" height=\"48\" alt=\"Claude Desktop\" \u002F>\n  \u003C\u002Fa>\u003Cbr\u002F>\n  \u003Csub>\n    \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fclaude\">\u003Cb>Claude Desktop\u003C\u002Fb>\u003C\u002Fa>\n  \u003C\u002Fsub>\n\u003C\u002Ftd>\n\n\u003Ctd align=\"center\" width=\"100\">\n  \u003Ca href=\"https:\u002F\u002Fcursor.com\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fcdn.simpleicons.org\u002Fcursor\u002FFFFFFF\">\n      \u003Cimg src=\"https:\u002F\u002Fcdn.simpleicons.org\u002Fcursor\u002F000000\" width=\"48\" height=\"48\" alt=\"Cursor\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\u003Cbr\u002F>\n  \u003Csub>\n    \u003Ca href=\"https:\u002F\u002Fcursor.com\">\u003Cb>Cursor\u003C\u002Fb>\u003C\u002Fa>\n  \u003C\u002Fsub>\n\u003C\u002Ftd>\n\n\u003Ctd align=\"center\" width=\"100\">\n  \u003Ca href=\"https:\u002F\u002Flmstudio.ai\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Flmstudio-ai.png?size=200\" width=\"48\" height=\"48\" alt=\"LM Studio\" \u002F>\n  \u003C\u002Fa>\u003Cbr\u002F>\n  \u003Csub>\n    \u003Ca href=\"https:\u002F\u002Flmstudio.ai\">\u003Cb>LM Studio\u003C\u002Fb>\u003C\u002Fa>\n  \u003C\u002Fsub>\n\u003C\u002Ftd>\n\n\u003Ctd align=\"center\" width=\"100\">\n  \u003Ca href=\"https:\u002F\u002Fcherry-ai.com\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FCherryHQ.png?size=200\" width=\"48\" height=\"48\" alt=\"Cherry Studio\" \u002F>\n  \u003C\u002Fa>\u003Cbr\u002F>\n  \u003Csub>\n    \u003Ca href=\"https:\u002F\u002Fcherry-ai.com\">\u003Cb>Cherry Studio\u003C\u002Fb>\u003C\u002Fa>\n  \u003C\u002Fsub>\n\u003C\u002Ftd>\n\n\u003Ctd align=\"center\" width=\"100\">\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fsimplemem\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fcdn.simpleicons.org\u002Fpypi\u002F3775A9\" width=\"48\" height=\"48\" alt=\"PyPI\" \u002F>\n  \u003C\u002Fa>\u003Cbr\u002F>\n  \u003Csub>\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fsimplemem\u002F\">\u003Cb>PyPI Package\u003C\u002Fb>\u003C\u002Fa>\n  \u003C\u002Fsub>\n\u003C\u002Ftd>\n\n\u003Ctd align=\"center\" width=\"100\">\n  \u003Csub>\u003Cb>+ Any MCP\u003Cbr\u002F>Client\u003C\u002Fb>\u003C\u002Fsub>\n\u003C\u002Ftd>\n\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cdiv align=\"center\">\n\n\u003Cbr\u002F>\n\n[🇨🇳 中文](.\u002Fdocs\u002Fi18n\u002FREADME.zh-CN.md) •\n[🇯🇵 日本語](.\u002Fdocs\u002Fi18n\u002FREADME.ja.md) •\n[🇰🇷 한국어](.\u002Fdocs\u002Fi18n\u002FREADME.ko.md) •\n[🇪🇸 Español](.\u002Fdocs\u002Fi18n\u002FREADME.es.md) •\n[🇫🇷 Français](.\u002Fdocs\u002Fi18n\u002FREADME.fr.md) •\n[🇩🇪 Deutsch](.\u002Fdocs\u002Fi18n\u002FREADME.de.md) •\n[🇧🇷 Português](.\u002Fdocs\u002Fi18n\u002FREADME.pt-br.md)\u003Cbr\u002F>\n[🇷🇺 Русский](.\u002Fdocs\u002Fi18n\u002FREADME.ru.md) •\n[🇸🇦 العربية](.\u002Fdocs\u002Fi18n\u002FREADME.ar.md) •\n[🇮🇹 Italiano](.\u002Fdocs\u002Fi18n\u002FREADME.it.md) •\n[🇻🇳 Tiếng Việt](.\u002Fdocs\u002Fi18n\u002FREADME.vi.md) •\n[🇹🇷 Türkçe](.\u002Fdocs\u002Fi18n\u002FREADME.tr.md)\n\n\u003Cbr\u002F>\n\n[![Project Page](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🎬_INTERACTIVE_DEMO-Visit_Our_Website-FF6B6B?style=for-the-badge&labelColor=FF6B6B&color=4ECDC4&logoColor=white)](https:\u002F\u002Faiming-lab.github.io\u002FSimpleMem-Page)\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.02553\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2601.02553-b31b1b?style=flat&labelColor=555\" alt=\"arXiv\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fgithub-SimpleMem-181717?style=flat&labelColor=555&logo=github&logoColor=white\" alt=\"GitHub\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Faiming-lab\u002FSimpleMem?style=flat&label=license&labelColor=555&color=2EA44F\" alt=\"License\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fpulls\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen?style=flat&labelColor=555\" alt=\"PRs Welcome\">\u003C\u002Fa>\n  \u003Cbr\u002F>\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fsimplemem\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fsimplemem?style=flat&label=pypi&labelColor=555&color=3775A9&logo=pypi&logoColor=white\" alt=\"PyPI\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fsimplemem\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fsimplemem?style=flat&label=python&labelColor=555&color=3775A9&logo=python&logoColor=white\" alt=\"Python\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fmcp.simplemem.cloud\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMCP-mcp.simplemem.cloud-14B8A6?style=flat&labelColor=555\" alt=\"MCP Server\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude_Skills-supported-FFB000?style=flat&labelColor=555\" alt=\"Claude Skills\">\u003C\u002Fa>\n  \u003Cbr\u002F>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FKA2zC32M\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join_Chat-5865F2?style=flat&labelColor=555&logo=discord&logoColor=white\" alt=\"Discord\">\u003C\u002Fa>\n  \u003Ca href=\"fig\u002Fwechat_logo3.JPG\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeChat-Group-07C160?style=flat&labelColor=555&logo=wechat&logoColor=white\" alt=\"WeChat\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cbr\u002F>\n\n[🚀 Quick Start](#-quick-start) • [🌟 Overview](#-overview) • [📈 Results](#-results) • [🧠 Omni-SimpleMem](#-omni-simplemem-multimodal-memory) • [🧬 EvolveMem](#-evolvemem-self-evolving-memory) • [📦 Installation](#-installation) • [🔌 MCP Server](#-mcp-server-text-memory) • [📝 Citation](#-citation)\n\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\n\u003Cbr\u002F>\n\n## 🔥 News\n\n- **[05\u002F14\u002F2026]** 🧬 **EvolveMem (v3.0) — Self-Evolving Memory via AutoResearch!** The retrieval infrastructure itself now self-evolves through LLM-driven closed-loop diagnosis. On LoCoMo, EvolveMem outperforms the strongest baseline by **+25.7% relative**; on MemBench, by **+18.9% relative**. The system discovers entirely new retrieval dimensions not present in the original design. [View EvolveMem →](EvolveMem\u002F)\n- **[04\u002F02\u002F2026]** 🧠 **Omni-SimpleMem (v2.0) — Multimodal Memory is Here!** SimpleMem now supports **text, image, audio & video** memory. Achieving **new SOTA on LoCoMo (F1=0.613, +47%)** and **Mem-Gallery (F1=0.810, +51%)** over previous best. [View Omni-SimpleMem →](OmniSimpleMem\u002F)\n- **[02\u002F09\u002F2026]** 🚀 **Cross-Session Memory — Outperforming Claude-Mem by 64%!** [View Cross-Session Documentation →](cross\u002FREADME.md)\n- **[01\u002F20\u002F2026]** 📦 **SimpleMem is now available on PyPI!** Install via `pip install simplemem`. [View Package Usage Guide →](docs\u002FPACKAGE_USAGE.md)\n- **[01\u002F14\u002F2026]** 🎉 **SimpleMem MCP Server is LIVE!** Cloud-hosted at [mcp.simplemem.cloud](https:\u002F\u002Fmcp.simplemem.cloud). [View MCP Documentation →](MCP\u002FREADME.md)\n- **[01\u002F05\u002F2026]** SimpleMem paper was released on [arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.02553)!\n\n---\n\n## 📑 Table of Contents\n\n- [🚀 Quick Start](#-quick-start)\n- [🌟 Overview](#-overview)\n- [📈 Results](#-results)\n- [📝 SimpleMem: Text Memory](#-simplemem-text-memory)\n- [🧠 Omni-SimpleMem: Multimodal Memory](#-omni-simplemem-multimodal-memory)\n- [🧬 EvolveMem: Self-Evolving Memory](#-evolvemem-self-evolving-memory)\n- [📦 Installation](#-installation)\n- [🐳 Docker](#-run-with-docker)\n- [🔌 MCP Server](#-mcp-server-text-memory)\n- [📊 Evaluation](#-evaluation)\n- [📝 Citation](#-citation)\n\n---\n\n## 🚀 Quick Start\n\n### 🧠 Understanding the Basic Workflow\n\nAt a high level, SimpleMem works as a long-term memory system for LLM-based agents. The workflow consists of three simple steps:\n\n1. **Store information** – Dialogues or facts are processed and converted into structured, atomic memories.\n2. **Index memory** – Stored memories are organized using semantic embeddings and structured metadata.\n3. **Retrieve relevant memory** – When a query is made, SimpleMem retrieves the most relevant stored information based on meaning rather than keywords.\n\nThis design allows LLM agents to maintain context, recall past information efficiently, and avoid repeatedly processing redundant history.\n\n### 🎓 Basic Usage\n\nSimpleMem provides a **unified entry point** via `simplemem_router`. The default `mode=\"auto\"` **automatically detects** which backend to use based on what you call — no manual configuration needed:\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create()  # mode=\"auto\" — backend chosen by first call\n```\n\nThe first method you call determines the backend:\n\n| First call | Backend selected | Why |\n|:--|:--|:--|\n| `add_dialogue()` | **Text** (SimpleMem) | Dialogue-based API → text mode |\n| `add_text()` \u002F `add_image()` \u002F `add_audio()` \u002F `add_video()` | **Omni** (Omni-SimpleMem) | Multimodal API → omni mode |\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**📝 Auto → Text** (pure text input)\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create()  # auto mode\n\n# add_dialogue() → text backend auto-selected\nmem.add_dialogue(\n    \"Alice\",\n    \"Bob, let's meet at Starbucks tomorrow at 2pm\",\n    \"2025-11-15T14:30:00\",\n)\nmem.add_dialogue(\n    \"Bob\",\n    \"Sure, I'll bring the market analysis report\",\n    \"2025-11-15T14:31:00\",\n)\nmem.finalize()\n\nanswer = mem.ask(\"When and where will Alice and Bob meet?\")\n# → \"16 November 2025 at 2:00 PM at Starbucks\"\n```\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**🧠 Auto → Omni** (multimodal input)\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create()  # auto mode\n\n# add_image() → omni backend auto-selected\nmem.add_text(\n    \"User loves hiking in the Rocky Mountains.\",\n    tags=[\"session_id:D1\"],\n)\nmem.add_image(\"photo.jpg\", tags=[\"session_id:D1\"])\nmem.add_audio(\"voice_note.wav\", tags=[\"session_id:D1\"])\n\nresult = mem.query(\"What does the user enjoy?\", top_k=5)\nfor item in result.items:\n    print(item[\"summary\"])\n\nmem.close()\n```\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> **💡 Tip**: Auto mode picks the lightest backend that fits your data. You can still use `mode=\"text\"` or `mode=\"omni\"` explicitly if you prefer.\n\n---\n\n### 🚄 Advanced: Parallel Processing\n\nFor large-scale dialogue processing, enable parallel mode:\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create(\n    mode=\"text\",\n    clear_db=True,\n    enable_parallel_processing=True,  # ⚡ Parallel memory building\n    max_parallel_workers=8,\n    enable_parallel_retrieval=True,   # 🔍 Parallel query execution\n    max_retrieval_workers=4\n)\n```\n\n> **💡 Pro Tip**: Parallel processing significantly reduces latency for batch operations!\n\n---\n\n## 🌟 Overview\n\n**SimpleMem** is a family of efficient memory frameworks — **SimpleMem** for text and **Omni-SimpleMem** for multimodal (text, image, audio, video) — based on **semantic lossless compression** that addresses the fundamental challenge of **efficient long-term memory for LLM agents**. Unlike existing systems that either passively accumulate redundant context or rely on expensive iterative reasoning loops, SimpleMem maximizes **information density** and **token utilization** through a three-stage pipeline:\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"33%\" align=\"center\">\n\n### 🔍 Stage 1\n**Semantic Structured Compression**\n\nDistills unstructured interactions into compact, multi-view indexed memory units\n\n\u003C\u002Ftd>\n\u003Ctd width=\"33%\" align=\"center\">\n\n### 🗂️ Stage 2\n**Online Semantic Synthesis**\n\nIntra-session process that instantly integrates related context into unified abstract representations to eliminate redundancy\n\n\u003C\u002Ftd>\n\u003Ctd width=\"33%\" align=\"center\">\n\n### 🎯 Stage 3\n**Intent-Aware Retrieval Planning**\n\nInfers search intent to dynamically determine retrieval scope and construct precise context efficiently\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> For multimodal memory, see [Omni-SimpleMem](#-omni-simplemem-multimodal-memory) below.\n\n### 🏆 Performance Comparison\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"fig\u002FFig_tradeoff.png\" alt=\"Performance vs Efficiency Trade-off\" width=\"900\"\u002F>\n\n*SimpleMem achieves superior F1 score (43.24%) with minimal token cost (~550), occupying the ideal top-left position.*\n\n**Speed Comparison Demo**\n\n\u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fraw\u002Fmain\u002Ffig\u002Fsimplemem-new.mp4\" controls width=\"900\">\u003C\u002Fvideo>\n\n*SimpleMem vs. Baseline: Real-time speed comparison demonstration*\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n**LoCoMo-10 Benchmark Results (GPT-4.1-mini)**\n\n| Model | ⏱️ Construction Time | 🔎 Retrieval Time | ⚡ Total Time | 🎯 Average F1 |\n|:------|:--------------------:|:-----------------:|:-------------:|:-------------:|\n| A-Mem | 5140.5s | 796.7s | 5937.2s | 32.58% |\n| LightMem | 97.8s | 577.1s | 675.9s | 24.63% |\n| Mem0 | 1350.9s | 583.4s | 1934.3s | 34.20% |\n| **SimpleMem** ⭐ | **92.6s** | **388.3s** | **480.9s** | **43.24%** |\n\n\u003C\u002Fdiv>\n\n---\n\n## 📈 Results\n\n### 📊 Benchmark Results (LoCoMo)\n\n\u003Cdetails open>\n\u003Csummary>\u003Cb>🏆 Cross-Session Memory Comparison\u003C\u002Fb>\u003C\u002Fsummary>\n\n| System | LoCoMo Score | vs SimpleMem |\n|:-------|:------------:|:------------:|\n| **SimpleMem** | **48** | — |\n| Claude-Mem | 29.3 | **+64%** |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔬 High-Capability Models (GPT-4.1-mini)\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Task Type | SimpleMem F1 | Mem0 F1 | Improvement |\n|:----------|:------------:|:-------:|:-----------:|\n| **MultiHop** | 43.46% | 30.14% | **+43.8%** |\n| **Temporal** | 58.62% | 48.91% | **+19.9%** |\n| **SingleHop** | 51.12% | 41.3% | **+23.8%** |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>⚙️ Efficient Models (Qwen2.5-1.5B)\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Metric | SimpleMem | Mem0 | Notes |\n|:-------|:---------:|:----:|:------|\n| **Average F1** | 25.23% | 23.77% | Competitive with 99× smaller model |\n\n\u003C\u002Fdetails>\n\n### 🧬 EvolveMem Results\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"200\">🏆 \u003Cb>0.543 F1\u003C\u002Fb>\u003Cbr>\u003Csub>LoCoMo GPT-4o (+25.7% over SimpleMem)\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"200\">🏆 \u003Cb>0.572 F1\u003C\u002Fb>\u003Cbr>\u003Csub>LoCoMo GPT-5.1 (+36.8% over SimpleMem)\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"200\">🏆 \u003Cb>71.4% Acc\u003C\u002Fb>\u003Cbr>\u003Csub>MemBench (+18.9% over best baseline)\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"150\">🧬 \u003Cb>Self-evolving\u003C\u002Fb>\u003Cbr>\u003Csub>7 autonomous rounds\u003C\u002Fsub>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### 🧠 Omni-SimpleMem Results\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"170\">🏆 \u003Cb>0.613 F1\u003C\u002Fb>\u003Cbr>\u003Csub>LoCoMo (+47% over prev. SOTA)\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"170\">🏆 \u003Cb>0.810 F1\u003C\u002Fb>\u003Cbr>\u003Csub>Mem-Gallery (+51% over prev. SOTA)\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"140\">⚡ \u003Cb>3.5x faster\u003C\u002Fb>\u003Cbr>\u003Csub>retrieval throughput\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"140\">🧠 \u003Cb>4 modalities\u003C\u002Fb>\u003Cbr>\u003Csub>Text · Image · Audio · Video\u003C\u002Fsub>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## 📝 SimpleMem: Text Memory\n\n### 1️⃣ Semantic Structured Compression\n\nSimpleMem applies an **implicit semantic density gating** mechanism integrated into the LLM generation process to filter redundant interaction content. The system reformulates raw dialogue streams into **compact memory units** — self-contained facts with resolved coreferences and absolute timestamps. Each unit is indexed through three complementary representations for flexible retrieval:\n\n\u003Cdiv align=\"center\">\n\n| 🔍 Layer | 📊 Type | 🎯 Purpose | 🛠️ Implementation |\n|---------|---------|------------|-------------------|\n| **Semantic** | Dense | Conceptual similarity | Vector embeddings (1024-d) |\n| **Lexical** | Sparse | Exact term matching | BM25-style keyword index |\n| **Symbolic** | Metadata | Structured filtering | Timestamps, entities, persons |\n\n\u003C\u002Fdiv>\n\n**✨ Example Transformation:**\n```diff\n- Input:  \"He'll meet Bob tomorrow at 2pm\"  [❌ relative, ambiguous]\n+ Output: \"Alice will meet Bob at Starbucks on 2025-11-16T14:00:00\"  [✅ absolute, atomic]\n```\n\n---\n\n### 2️⃣ Online Semantic Synthesis\n\nUnlike traditional systems that rely on asynchronous background maintenance, SimpleMem performs synthesis **on-the-fly during the write phase**. Related memory units are synthesized into higher-level abstract representations within the current session scope, allowing repetitive or structurally similar experiences to be **denoised and compressed immediately**.\n\n**✨ Example Synthesis:**\n```diff\n- Fragment 1: \"User wants coffee\"\n- Fragment 2: \"User prefers oat milk\"\n- Fragment 3: \"User likes it hot\"\n+ Consolidated: \"User prefers hot coffee with oat milk\"\n```\n\nThis proactive synthesis ensures the memory topology remains compact and free of redundant fragmentation.\n\n---\n\n### 3️⃣ Intent-Aware Retrieval Planning\n\nInstead of fixed-depth retrieval, SimpleMem leverages the reasoning capabilities of the LLM to generate a **comprehensive retrieval plan**. Given a query, the planning module infers **latent search intent** to dynamically determine retrieval scope and depth:\n\n$$\\{ q_{\\text{sem}}, q_{\\text{lex}}, q_{\\text{sym}}, d \\} \\sim \\mathcal{P}(q, H)$$\n\nThe system then executes **parallel multi-view retrieval** across semantic, lexical, and symbolic indexes, and merges results through ID-based deduplication:\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**🔹 Simple Queries**\n- Direct fact lookup via single memory unit\n- Minimal retrieval depth\n- Fast response time\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**🔸 Complex Queries**\n- Aggregation across multiple events\n- Expanded retrieval depth\n- Comprehensive coverage\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n**📈 Result**: 43.24% F1 score with **30× fewer tokens** than full-context methods.\n\n---\n\n\u003Cdiv align=\"center\">\n\n# 🧠 Omni-SimpleMem: Multimodal Memory\n\n**NEW** — SimpleMem now handles text, image, audio & video.\n\n\u003C\u002Fdiv>\n\n**Omni-SimpleMem** extends SimpleMem to **unified multimodal memory** — supporting text, image, audio, and video experiences with state-of-the-art accuracy across all five LLM backbones tested.\n\nBuilt on three principles: **Selective Ingestion** (entropy-driven filtering for each modality), **Progressive Retrieval** (hybrid FAISS + BM25 search with pyramid token-budget expansion), and **Knowledge Graph Augmentation** (multi-hop cross-modal reasoning).\n\n> 📖 Full documentation, benchmarks, and architecture details: [**Omni-SimpleMem →**](OmniSimpleMem\u002F)\n\n---\n\n## 🧬 EvolveMem: Self-Evolving Memory\n\n**EvolveMem** (v3.0) makes the retrieval infrastructure itself a first-class optimization target. While SimpleMem and Omni-SimpleMem keep retrieval configurations frozen, EvolveMem autonomously evolves its retrieval policy through an LLM-driven closed-loop:\n\n**Evaluate** → **Diagnose** failures → **Propose** config changes → **Guard** against regression → **Repeat**\n\nThis self-evolution constitutes an AutoResearch process: the system conducts iterative research cycles on its own architecture, discovering new retrieval dimensions (query decomposition, entity-swap, answer verification) that were not in the original design.\n\n| Benchmark | Backbone | EvolveMem | Best Baseline | Relative Gain |\n|-----------|----------|:---------:|:-------------:|:-------------:|\n| LoCoMo (F1) | GPT-4o | **0.543** | 0.432 (SimpleMem) | +25.7% |\n| LoCoMo (F1) | GPT-5.1 | **0.572** | 0.418 (SimpleMem) | +36.8% |\n| MemBench (Acc) | GPT-4o | **67.9%** | 57.1% | +18.9% |\n| MemBench (Acc) | GPT-5.1 | **71.4%** | 64.3% | +11.0% |\n\n> 📖 Full documentation, architecture, and usage: [**EvolveMem →**](EvolveMem\u002F)\n\n---\n\n## 📦 Installation\n\n### 📝 Notes for First-Time Users\n\n- Ensure you are using **Python 3.10 in your active environment**, not just installed globally.\n- An OpenAI-compatible API key must be configured **before running any memory construction or retrieval**, otherwise initialization may fail.\n- When using non-OpenAI providers (e.g., Qwen or Azure OpenAI), verify both the model name and `OPENAI_BASE_URL` in `config.py`.\n- For large dialogue datasets, enabling parallel processing can significantly reduce memory construction time.\n\n### 📋 Requirements\n\n- 🐍 Python 3.10\n- 🔑 OpenAI-compatible API (OpenAI, Qwen, Azure OpenAI, etc.)\n\n### 🛠️ Setup\n\n```bash\n# 📥 Clone repository\ngit clone https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem.git\ncd SimpleMem\n\n# 📦 Install dependencies\npip install -r requirements.txt\n\n# ⚙️ Configure API settings\ncp config.py.example config.py\n# Edit config.py with your API key and preferences\n```\n\n### ⚙️ Configuration Example\n\n```python\n# config.py\nOPENAI_API_KEY = \"your-api-key\"\nOPENAI_BASE_URL = None  # or custom endpoint for Qwen\u002FAzure\n\nLLM_MODEL = \"gpt-4.1-mini\"\nEMBEDDING_MODEL = \"Qwen\u002FQwen3-Embedding-0.6B\"  # State-of-the-art retrieval\n```\n\n---\n\n## 🐳 Run with Docker\n\nThe **MCP Server** can be run in Docker for a consistent, isolated environment. Data (LanceDB and user DB) is persisted in a host volume.\n\n### Prerequisites\n\n- [Docker](https:\u002F\u002Fdocs.docker.com\u002Fget-docker\u002F) and [Docker Compose](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Finstall\u002F)\n\n### Quick run\n\n```bash\n# From the repository root\ndocker compose up -d\n```\n\n- **Web UI:** http:\u002F\u002Flocalhost:8000\u002F\n- **REST API:** http:\u002F\u002Flocalhost:8000\u002Fapi\u002F\n- **MCP (SSE):** http:\u002F\u002Flocalhost:8000\u002Fmcp\u002Fsse?token=&lt;TOKEN&gt;\n\nData is stored in `.\u002Fdata` on the host (created automatically).\n\n### Custom configuration\n\n1. Copy the environment template and edit it:\n   ```bash\n   cp .env.example .env\n   # Edit .env: set JWT_SECRET_KEY, ENCRYPTION_KEY, LLM_PROVIDER, model URLs, etc.\n   ```\n2. Run with the env file:\n   ```bash\n   docker compose --env-file .env up -d\n   ```\n\n### Using Ollama on the host\n\nWhen `LLM_PROVIDER=ollama` and Ollama runs on your machine (not in Docker), set in `.env`:\n\n```bash\nLLM_PROVIDER=ollama\nOLLAMA_BASE_URL=http:\u002F\u002Fhost.docker.internal:11434\u002Fv1\n```\n\nOn Linux, `host.docker.internal` is enabled automatically via the Compose file.\n\n### Useful commands\n\n```bash\ndocker compose logs -f simplemem   # Follow logs\ndocker compose down                 # Stop and remove containers\n```\n\n> 📖 For self-hosting the MCP server (Docker or bare metal), see [MCP Documentation](MCP\u002FREADME.md).\n\n---\n\n## 🔌 MCP Server *(text memory)*\n\nSimpleMem is available as a **cloud-hosted memory service** via the Model Context Protocol (MCP), enabling seamless integration with AI assistants like Claude Desktop, Cursor, and other MCP-compatible clients.\n\n**🌐 Cloud Service**: [mcp.simplemem.cloud](https:\u002F\u002Fmcp.simplemem.cloud) — or self-host the MCP server locally using [Docker](#-run-with-docker).\n\n### Key Features\n\n| Feature | Description |\n|---------|-------------|\n| **Streamable HTTP** | MCP 2025-03-26 protocol with JSON-RPC 2.0 |\n| **Multi-tenant Isolation** | Per-user data tables with token authentication |\n| **Hybrid Retrieval** | Semantic search + keyword matching + metadata filtering |\n| **Production Optimized** | Faster response times with OpenRouter integration |\n\n### Quick Configuration\n\n```json\n{\n  \"mcpServers\": {\n    \"simplemem\": {\n      \"url\": \"https:\u002F\u002Fmcp.simplemem.cloud\u002Fmcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_TOKEN\"\n      }\n    }\n  }\n}\n```\n\n> 📖 For detailed setup instructions and self-hosting guide, see [MCP Documentation](MCP\u002FREADME.md)\n\n---\n\n## 📊 Evaluation\n\n### 🧪 Run Benchmark Tests\n\n```bash\n# 🎯 Full LoCoMo benchmark\npython test_locomo10.py\n\n# 📉 Subset evaluation (5 samples)\npython test_locomo10.py --num-samples 5\n\n# 💾 Custom output file\npython test_locomo10.py --result-file my_results.json\n```\n\n---\n\n### 🔬 Reproduce Paper Results\n\nUse the exact configurations in `config.py`:\n- **🚀 High-capability**: GPT-4.1-mini, Qwen3-Plus\n- **⚙️ Efficient**: Qwen2.5-1.5B, Qwen2.5-3B\n- **🔍 Embedding**: Qwen3-Embedding-0.6B (1024-d)\n\n---\n\n## 📝 Citation\n\nIf you use SimpleMem in your research, please cite:\n\n```bibtex\n@article{simplemem2026,\n  title={SimpleMem: Efficient Lifelong Memory for LLM Agents},\n  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},\n  journal={arXiv preprint arXiv:2601.02553},\n  year={2026},\n  url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.02553}\n}\n```\n\n```bibtex\n@article{evolvemem2026,\n  title={EvolveMem: Self-Evolving Memory Architecture via AutoResearch for LLM Agents},\n  author={Liu, Jiaqi and Ye, Xinyu and Xia, Peng and Zheng, Zeyu and Xie, Cihang and Ding, Mingyu and Yao, Huaxiu},\n  journal={arXiv preprint arXiv:2605.13941},\n  year={2026},\n  url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.13941}\n}\n```\n\n```bibtex\n@article{omnisimplemem2026,\n  title   = {Omni-SimpleMem: Autoresearch-Guided Discovery of Lifelong Multimodal Agent Memory},\n  author  = {Liu, Jiaqi and Ling, Zipeng and Qiu, Shi and Liu, Yanqing and Han, Siwei and Xia, Peng and Tu, Haoqin and Zheng, Zeyu and Xie, Cihang and Fleming, Charles and Ding, Mingyu and Yao, Huaxiu},\n  journal = {arXiv preprint arXiv:2604.01007},\n  year    = {2026},\n}\n```\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 Acknowledgments\n\nWe would like to thank the following projects and teams:\n\n- 🔍 **Embedding Model**: [Qwen3-Embedding](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen) - State-of-the-art retrieval performance\n- 🗄️ **Vector Database**: [LanceDB](https:\u002F\u002Flancedb.com\u002F) - High-performance columnar storage\n- 📊 **Benchmark**: [LoCoMo](https:\u002F\u002Fgithub.com\u002Fsnap-research\u002Flocomo) - Long-context memory evaluation framework\n","SimpleMem 是一个为大语言模型代理设计的高效长期记忆系统，支持文本和多模态数据。该项目利用语义无损压缩技术存储、压缩并检索长期记忆，支持文本、图像、音频和视频等多种类型的数据。它通过MCP或Python集成方式与Claude、Cursor、LM Studio等AI平台兼容。SimpleMem适用于需要在不同应用场景中保持持续学习能力的AI代理，特别是在对话系统、知识管理和内容生成等领域，能够显著提升系统的记忆能力和信息处理效率。",2,"2026-06-11 03:48:44","high_star"]