[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-aiming-lab--SimpleMem":3,"tool-aiming-lab--SimpleMem":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":80,"owner_website":79,"owner_url":81,"languages":82,"stars":106,"forks":107,"last_commit_at":108,"license":109,"difficulty_score":23,"env_os":110,"env_gpu":110,"env_ram":110,"env_deps":111,"category_tags":116,"github_topics":117,"view_count":134,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":135,"updated_at":136,"faqs":137,"releases":167},3113,"aiming-lab\u002FSimpleMem","SimpleMem","SimpleMem: Efficient Lifelong Memory for LLM Agents — Text & Multimodal","SimpleMem 是一款专为大语言模型（LLM）智能体打造的高效终身记忆系统，支持文本、图像、音频及视频等多模态数据。它核心解决了 AI 在长期交互中容易“遗忘”上下文、难以积累持续知识，以及因记忆数据膨胀导致处理效率下降的痛点。\n\n通过独特的语义无损压缩技术，SimpleMem 能够智能地存储、压缩并检索海量长期记忆，既保留了关键信息的完整性，又大幅降低了资源消耗。这意味着无论是复杂的代码开发对话，还是跨天的多模态任务协作，AI 都能像拥有“长期大脑”一样，精准调用过往经验。\n\n该工具非常适合开发者、研究人员以及希望提升本地或云端 AI 助手能力的进阶用户。其最大的亮点在于广泛的兼容性：基于 MCP（模型上下文协议）或 Python 集成，它可以无缝接入 Claude Desktop、Cursor、LM Studio、Cherry Studio 等主流平台。无需重构现有工作流，用户即可让手中的 AI 工具具备跨越时间的记忆能力，实现更连贯、更智能的人机协作。","\u003Cdiv align=\"center\">\n\n\u003Cimg alt=\"simplemem_logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_72bef12b7ad4.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_17b88b2ece80.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_17ec56a36742.png\" 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) • [📦 Installation](#-installation) • [🔄 Cross-Session Memory](#-cross-session-memory-text-memory) • [🔌 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- **[04\u002F02\u002F2026]** 🧠 **Omni-SimpleMem — 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, Omni-SimpleMem brings state-of-the-art multimodal lifelong memory to your agents. [View Omni-SimpleMem →](OmniSimpleMem\u002F)\n- **[02\u002F09\u002F2026]** 🚀 **Cross-Session Memory is Here — Outperforming Claude-Mem by 64%!** SimpleMem now supports **persistent memory across conversations**. On the LoCoMo benchmark, SimpleMem achieves a **64% performance boost** over Claude-Mem. Your agents can now recall context, decisions, and learnings from previous sessions automatically. [View Cross-Session Documentation →](cross\u002FREADME.md)\n- **[01\u002F20\u002F2026]** **SimpleMem is now available on PyPI!** 📦 Install directly via `pip install simplemem`. [View Package Usage Guide →](docs\u002FPACKAGE_USAGE.md)\n- **[01\u002F19\u002F2026]** **Added Local Memory Storage for SimpleMem Skill!** 💾 SimpleMem Skill now supports local memory storage within Claude Skills.\n- **[01\u002F18\u002F2026]** **SimpleMem now supports Claude Skills!** 🚀 Use SimpleMem in claude.ai for long-term memory across conversations. Register at [mcp.simplemem.cloud](https:\u002F\u002Fmcp.simplemem.cloud), configure your token, and import the skill!\n- **[01\u002F14\u002F2026]** **SimpleMem MCP Server is now LIVE and Open Source!** 🎉 Cloud-hosted memory service at [mcp.simplemem.cloud](https:\u002F\u002Fmcp.simplemem.cloud). Integrates with LM Studio, Cherry Studio, Cursor, Claude Desktop via **Streamable HTTP** MCP protocol. [View MCP Documentation →](MCP\u002FREADME.md)\n- **[01\u002F08\u002F2026]** 🔥 Join our [Discord](https:\u002F\u002Fdiscord.gg\u002FKA2zC32M) and [WeChat Group](fig\u002Fwechat_logo3.JPG) to collaborate and exchange ideas!\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- [📦 Installation](#-installation)\n- [🐳 Docker](#-run-with-docker)\n- [🔌 Router Utilities](#-router-utilities)\n- [🔄 Cross-Session Memory](#-cross-session-memory-text-memory)\n- [🔌 MCP Server](#-mcp-server-text-memory)\n- [🗺️ Roadmap](#️-roadmap)\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\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_44de08b833c8.png\" alt=\"SimpleMem Framework\" width=\"900\"\u002F>\n\n*The SimpleMem Architecture: (1) Semantic Structured Compression filters low-utility dialogue and converts informative windows into compact, context-independent memory units. (2) Online Semantic Synthesis consolidates related fragments during writing, maintaining a compact and coherent memory topology. (3) Intent-Aware Retrieval Planning infers search intent to adapt retrieval scope and query forms, enabling parallel multi-view retrieval and token-efficient context construction.*\n\u003C\u002Fdiv>\n\n---\n\n### 🏆 Performance Comparison\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_7bfd5bef0121.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### 🧠 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## 📦 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## 🔌 Router Utilities\n\nThe router uses a **registry-based factory** pattern — backends are lazily loaded only when requested, and dependencies are checked before instantiation.\n\n```python\nimport simplemem_router as simplemem\n\n# List all registered modes\nsimplemem.list_modes()\n# {'text': 'Single-modal text memory with semantic lossless compression',\n#  'omni': 'Multimodal memory — text, image, audio, video (Omni-SimpleMem)'}\n\n# Check if a mode's dependencies are satisfied\nsimplemem.is_available(\"omni\")  # True \u002F False\n\n# Check which mode was auto-selected\nmem = simplemem.create()\nprint(mem.mode)  # \"auto\" (pending), \"text\", or \"omni\"\n\n# Register a custom backend\nsimplemem.register(\n    mode=\"my_backend\",\n    module_path=\"my_package.memory\",\n    class_name=\"MyMemorySystem\",\n    description=\"Custom memory backend\",\n    required_deps=[\"my_package\"],\n)\nmem = simplemem.create(mode=\"my_backend\")\n```\n\n---\n\n## ❓ Common Setup Issues & Troubleshooting\n\nIf you encounter issues while setting up or running SimpleMem for the first time, check the following common cases:\n\n### 1️⃣ API Key Not Detected\n- Ensure your API key is correctly set in `config.py`\n- For OpenAI-compatible providers (Qwen, Azure, etc.), verify that `OPENAI_BASE_URL` is configured correctly\n- Restart your Python environment after updating the key\n\n### 2️⃣ Python Version Mismatch\n- SimpleMem requires **Python 3.10**\n- Check your version using:\n  ```bash\n  python --version\n  ```\n\n---\n\n## 🔄 Cross-Session Memory *(text memory)*\n\n**SimpleMem-Cross** extends SimpleMem with persistent cross-conversation memory capabilities. Agents can recall context, decisions, and observations from previous sessions — enabling continuity across conversations without manual context re-injection.\n\n### Key Features\n\n| Feature | Description |\n|---------|-------------|\n| **Session Lifecycle** | Full session management with start\u002Frecord\u002Fstop\u002Fend lifecycle |\n| **Automatic Context Injection** | Token-budgeted context from previous sessions injected at session start |\n| **Event Collection** | Record messages, tool uses, file changes with automatic redaction |\n| **Observation Extraction** | Heuristic extraction of decisions, discoveries, and learnings |\n| **Provenance Tracking** | Every memory entry links back to source evidence |\n| **Consolidation** | Decay, merge, and prune old memories to maintain quality |\n\n### Quick Example\n\n```python\nfrom cross.orchestrator import create_orchestrator\n\nasync def main():\n    orch = create_orchestrator(project=\"my-project\")\n\n    # Start session — previous context is injected automatically\n    result = await orch.start_session(\n        content_session_id=\"session-001\",\n        user_prompt=\"Continue building the REST API\",\n    )\n    print(result[\"context\"])  # Relevant context from previous sessions\n\n    # Record events during the session\n    await orch.record_message(result[\"memory_session_id\"], \"User asked about JWT\")\n    await orch.record_tool_use(\n        result[\"memory_session_id\"],\n        tool_name=\"read_file\",\n        tool_input=\"auth\u002Fjwt.py\",\n        tool_output=\"class JWTHandler: ...\",\n    )\n\n    # Finalize — extracts observations, generates summary, stores memories\n    report = await orch.stop_session(result[\"memory_session_id\"])\n    print(f\"Stored {report.entries_stored} memory entries\")\n\n    await orch.end_session(result[\"memory_session_id\"])\n    orch.close()\n```\n\n### Architecture\n\n```\nAgent Frameworks (Claude Code \u002F Cursor \u002F custom)\n                    |\n     +--------------+--------------+\n     |                             |\nHook\u002FLifecycle Adapter      HTTP\u002FMCP API (FastAPI)\n     |                             |\n     +--------------+--------------+\n                    |\n           CrossMemOrchestrator\n                    |\n  +-----------------+------------------+\n  |                 |                  |\nSession Manager  Context Injector  Consolidation\n(SQLite)         (budgeted bundle) (decay\u002Fmerge\u002Fprune)\n  |                 |                  |\n  +---------+-------+                  |\n            |                          |\n   Cross-Session Vector Store (LanceDB) \u003C--+\n```\n\n### Module Reference\n\n| Module | Description |\n|--------|-------------|\n| `cross\u002Ftypes.py` | Pydantic models, enums, records |\n| `cross\u002Fstorage_sqlite.py` | SQLite backend for sessions, events, observations |\n| `cross\u002Fstorage_lancedb.py` | LanceDB vector store with provenance |\n| `cross\u002Fhooks.py` | Lifecycle hooks (SessionStart\u002FToolUse\u002FEnd) |\n| `cross\u002Fcollectors.py` | Event collection with 3-tier redaction |\n| `cross\u002Fsession_manager.py` | Full session lifecycle orchestration |\n| `cross\u002Fcontext_injector.py` | Token-budgeted context builder |\n| `cross\u002Forchestrator.py` | Top-level facade and factory |\n| `cross\u002Fapi_http.py` | FastAPI REST endpoints |\n| `cross\u002Fapi_mcp.py` | MCP tool definitions |\n| `cross\u002Fconsolidation.py` | Memory maintenance worker |\n\n> 📖 For detailed API documentation, see [Cross-Session README](cross\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## 🗺️ Roadmap\n\n**Omni-SimpleMem infrastructure** — bringing multimodal memory to all shared components:\n\n- [ ] Omni cross-session memory (text + image + audio + video persistence)\n- [ ] Omni MCP server (multimodal memory via MCP protocol)\n- [ ] Omni Docker support\n- [ ] Omni PyPI package (`pip install omni-simplemem`)\n- [ ] Omni Claude Skills integration\n\n**Core improvements:**\n\n- [ ] Streaming ingestion for real-time memory updates\n- [ ] Memory sharing across multiple agents\n- [ ] Benchmark expansion (more multimodal benchmarks)\n\nContributions welcome! Open an [issue](https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fissues) to discuss.\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{simplemem2025,\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={2025},\n  url={https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem}\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","\u003Cdiv align=\"center\">\n\n\u003Cimg alt=\"simplemem_logo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_72bef12b7ad4.png\" width=\"450\">\n\n\u003Cdiv align=\"center\">\n\n## 面向大型语言模型代理的高效终身记忆——文本与多模态\n\n\u003Csmall>以语义无损压缩技术存储、压缩并检索长期记忆。现新增对文本、图像、音频及视频的多模态支持。兼容Claude、Cursor、LM Studio等多种平台。\u003C\u002Fsmall>\n\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cb>适用于任何支持MCP或Python集成的AI平台\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\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_17b88b2ece80.png\" 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\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_17ec56a36742.png\" 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软件包\u003C\u002Fb>\u003C\u002Fa>\n  \u003C\u002Fsub>\n\u003C\u002Ftd>\n\n\u003Ctd align=\"center\" width=\"100\">\n  \u003Csub>\u003Cb>+ 任意MCP\u003Cbr\u002F>客户端\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[![项目页面](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=\"许可证\">\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=\"欢迎提交PR\">\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服务器\">\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技能\">\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=\"微信\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cbr\u002F>\n\n[🚀 快速入门](#-quick-start) • [🌟 概述](#-overview) • [📈 结果](#-results) • [🧠 Omni-SimpleMem](#-omni-simplemem-multimodal-memory) • [📦 安装](#-installation) • [🔄 跨会话记忆](#-cross-session-memory-text-memory) • [🔌 MCP服务器](#-mcp-server-text-memory) • [📝 引用](#-citation)\n\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\n\u003Cbr\u002F>\n\n## 🔥 最新消息\n\n- **[04\u002F02\u002F2026]** 🧠 **Omni-SimpleMem——多模态记忆现已上线！** SimpleMem现支持**文本、图像、音频及视频**记忆。在LoCoMo（F1=0.613，提升47%）和Mem-Gallery（F1=0.810，提升51%）两项基准测试中，均超越现有最佳水平。Omni-SimpleMem为您的代理带来最先进的多模态终身记忆功能。[查看Omni-SimpleMem →](OmniSimpleMem\u002F)\n- **[02\u002F09\u002F2026]** 🚀 **跨会话记忆上线——性能比Claude-Mem提升64%！** SimpleMem现支持**跨对话的持久化记忆**。在LoCoMo基准测试中，SimpleMem相比Claude-Mem实现了**64%的性能提升**。您的代理现在能够自动回忆起先前会话中的上下文、决策及学习成果。[查看跨会话文档 →](cross\u002FREADME.md)\n- **[01\u002F20\u002F2026]** **SimpleMem现已上架PyPI！** 📦 您可直接通过`pip install simplemem`进行安装。[查看软件包使用指南 →](docs\u002FPACKAGE_USAGE.md)\n- **[01\u002F19\u002F2026]** **为SimpleMem技能新增本地内存存储功能！** 💾 SimpleMem技能现可在Claude Skills中支持本地内存存储。\n- **[01\u002F18\u002F2026]** **SimpleMem现已支持Claude Skills！** 🚀 您可在claude.ai中使用SimpleMem实现跨对话的长期记忆。请前往[mcp.simplemem.cloud](https:\u002F\u002Fmcp.simplemem.cloud)注册账号、配置Token，并导入该技能！\n- **[01\u002F14\u002F2026]** **SimpleMem MCP服务器现已上线且开源！** 🎉 位于[mcp.simplemem.cloud](https:\u002F\u002Fmcp.simplemem.cloud)的云端记忆服务已正式启用。可通过**可流式传输的HTTP** MCP协议与LM Studio、Cherry Studio、Cursor以及Claude Desktop等平台集成。[查看MCP文档 →](MCP\u002FREADME.md)\n- **[01\u002F08\u002F2026]** 🔥 欢迎加入我们的[Discord](https:\u002F\u002Fdiscord.gg\u002FKA2zC32M)和[微信交流群](fig\u002Fwechat_logo3.JPG)，共同协作、交流想法！\n- **[01\u002F05\u002F2026]** SimpleMem论文已在[arXiv](https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.02553)上发表！\n\n---\n\n## 📑 目录\n\n- [🚀 快速入门](#-quick-start)\n- [🌟 概述](#-overview)\n- [📈 结果](#-results)\n- [📝 SimpleMem：文本记忆](#-simplemem-text-memory)\n- [🧠 Omni-SimpleMem：多模态记忆](#-omni-simplemem-multimodal-memory)\n- [📦 安装](#-installation)\n- [🐳 Docker](#-run-with-docker)\n- [🔌 路由工具](#-router-utilities)\n- [🔄 会话间记忆](#-cross-session-memory-text-memory)\n- [🔌 MCP 服务器](#-mcp-server-text-memory)\n- [🗺️ 路线图](#️-roadmap)\n- [📊 评估](#-evaluation)\n- [📝 引用](#-citation)\n\n---\n\n## 🚀 快速入门\n\n### 🧠 理解基本工作流程\n\n从高层次来看，SimpleMem 是一个用于基于 LLM 的智能体的长期记忆系统。其工作流程包含三个简单步骤：\n\n1. **存储信息**——对话或事实被处理并转化为结构化的原子级记忆。\n2. **索引记忆**——通过语义嵌入和结构化元数据对存储的记忆进行组织。\n3. **检索相关记忆**——当收到查询时，SimpleMem 会根据语义而非关键词来检索最相关的信息。\n\n这种设计使 LLM 智能体能够保持上下文、高效地回忆过往信息，并避免重复处理冗余的历史记录。\n\n### 🎓 基本使用方法\n\nSimpleMem 提供了一个统一的入口点 `simplemem_router`。默认的 `mode=\"auto\"` 会根据你调用的方法自动检测应使用哪个后端，无需手动配置：\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create()  # mode=\"auto\" — 后端由首次调用决定\n```\n\n你首次调用的方法决定了所使用的后端：\n\n| 首次调用 | 选择的后端 | 原因 |\n|:--|:--|:--|\n| `add_dialogue()` | **文本**（SimpleMem） | 对话型 API → 文本模式 |\n| `add_text()` \u002F `add_image()` \u002F `add_audio()` \u002F `add_video()` | **多模态**（Omni-SimpleMem） | 多模态 API → 多模态模式 |\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**📝 自动 → 文本**（纯文本输入）\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create()  # 自动模式\n\n# add_dialogue() → 自动选择文本后端\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**🧠 自动 → 多模态**（多模态输入）\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create()  # 自动模式\n\n# add_image() → 自动选择多模态后端\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> **💡 小贴士**：自动模式会根据你的数据选择最轻量的后端。如果你更倾向于明确指定模式，也可以直接使用 `mode=\"text\"` 或 `mode=\"omni\"`。\n\n---\n\n### 🚄 高级：并行处理\n\n对于大规模对话处理，可以启用并行模式：\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create(\n    mode=\"text\",\n    clear_db=True,\n    enable_parallel_processing=True,  # ⚡ 并行构建记忆\n    max_parallel_workers=8,\n    enable_parallel_retrieval=True,   # 🔍 并行执行查询\n    max_retrieval_workers=4\n)\n```\n\n> **💡 专业提示**：并行处理可显著降低批量操作的延迟！\n\n---\n\n## 🌟 概述\n\n**SimpleMem** 是一系列高效的记忆框架——用于文本的 **SimpleMem** 和用于多模态（文本、图像、音频、视频）的 **Omni-SimpleMem**——基于 **语义无损压缩**，旨在解决 **LLM 智能体长期记忆效率** 的根本挑战。与现有系统不同，后者要么被动积累冗余上下文，要么依赖昂贵的迭代推理循环，SimpleMem 通过三阶段流水线最大化了 **信息密度** 和 **token 利用率**：\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"33%\" align=\"center\">\n\n### 🔍 第一阶段\n**语义结构化压缩**\n\n将非结构化交互提炼为紧凑、多视角索引的记忆单元\n\n\u003C\u002Ftd>\n\u003Ctd width=\"33%\" align=\"center\">\n\n### 🗂️ 第二阶段\n**在线语义合成**\n\n在会话内即时整合相关上下文，形成统一的抽象表示，以消除冗余\n\n\u003C\u002Ftd>\n\u003Ctd width=\"33%\" align=\"center\">\n\n### 🎯 第三阶段\n**意图感知检索规划**\n\n推断搜索意图，动态确定检索范围并高效构建精确的上下文\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n> 关于多模态记忆，请参阅下方的 [Omni-SimpleMem](#-omni-simplemem-multimodal-memory)。\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_44de08b833c8.png\" alt=\"SimpleMem 架构\" width=\"900\"\u002F>\n\n*SimpleMem 架构：(1) 语义结构化压缩过滤掉低效对话，将有价值的信息窗口转化为紧凑、与上下文无关的记忆单元。(2) 在线语义合成在写入过程中整合相关片段，保持记忆拓扑的紧凑性和连贯性。(3) 意图感知检索规划推断搜索意图，调整检索范围和查询形式，实现多视角并行检索和 token 效率高的上下文构建。*\n\u003C\u002Fdiv>\n\n---\n\n### 🏆 性能对比\n\n\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_readme_7bfd5bef0121.png\" alt=\"性能与效率权衡\" width=\"900\"\u002F>\n\n*SimpleMem 以极低的 token 开销（约 550）实现了卓越的 F1 分数（43.24%），位于理想左上角位置。*\n\n**速度对比演示**\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 与基线：实时速度对比演示*\n\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n\n**LoCoMo-10 基准测试结果（GPT-4.1-mini）**\n\n| 模型 | ⏱️ 构建时间 | 🔎 检索时间 | ⚡ 总时间 | 🎯 平均 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## 📈 结果\n\n### 📊 基准测试结果（LoCoMo）\n\n\u003Cdetails open>\n\u003Csummary>\u003Cb>🏆 会话间记忆对比\u003C\u002Fb>\u003C\u002Fsummary>\n\n| 系统 | LoCoMo 分数 | 相比 SimpleMem |\n|:-------|:------------:|:------------:|\n| **SimpleMem** | **48** | — |\n| Claude-Mem | 29.3 | **+64%** |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>🔬 高能力模型（GPT-4.1-mini）\u003C\u002Fb>\u003C\u002Fsummary>\n\n| 任务类型 | SimpleMem F1 | Mem0 F1 | 提升幅度 |\n|:----------|:------------:|:-------:|:-----------:|\n| **多跳** | 43.46% | 30.14% | **+43.8%** |\n| **时间序列** | 58.62% | 48.91% | **+19.9%** |\n| **单跳** | 51.12% | 41.3% | **+23.8%** |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>⚙️ 高效模型（Qwen2.5-1.5B）\u003C\u002Fb>\u003C\u002Fsummary>\n\n| 指标 | SimpleMem | Mem0 | 备注 |\n|:-------|:---------:|:----:|:------|\n| **平均 F1** | 25.23% | 23.77% | 与规模小 99 倍的模型相当 |\n\n\u003C\u002Fdetails>\n\n### 🧠 Omni-SimpleMem 结果\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd align=\"center\" width=\"170\">🏆 \u003Cb>0.613 F1\u003C\u002Fb>\u003Cbr>\u003Csub>LoCoMo（较先前 SOTA 提升 47%）\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"170\">🏆 \u003Cb>0.810 F1\u003C\u002Fb>\u003Cbr>\u003Csub>Mem-Gallery（较先前 SOTA 提升 51%）\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"140\">⚡ \u003Cb>检索吞吐量提升 3.5 倍\u003C\u002Fb>\u003Cbr>\u003Csub>检索效率\u003C\u002Fsub>\u003C\u002Ftd>\n\u003Ctd align=\"center\" width=\"140\">🧠 \u003Cb>支持 4 种模态\u003C\u002Fb>\u003Cbr>\u003Csub>文本·图像·音频·视频\u003C\u002Fsub>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n---\n\n## 📝 SimpleMem：文本记忆\n\n### 1️⃣ 语义结构化压缩\n\nSimpleMem 在 LLM 生成过程中集成了一种 **隐式语义密度门控机制**，用于过滤冗余的交互内容。系统将原始对话流重新构建为 **紧凑的记忆单元**——包含已解析的核心指代和绝对时间戳的自洽事实。每个单元通过三种互补的表示方式进行索引，以实现灵活的检索：\n\n\u003Cdiv align=\"center\">\n\n| 🔍 层级 | 📊 类型 | 🎯 目的 | 🛠️ 实现 |\n|---------|---------|------------|-------------------|\n| **语义** | 密集 | 概念相似性 | 向量嵌入（1024 维） |\n| **词汇** | 稀疏 | 精确术语匹配 | BM25 式关键词索引 |\n| **符号** | 元数据 | 结构化筛选 | 时间戳、实体、人物 |\n\n\u003C\u002Fdiv>\n\n**✨ 示例转换：**\n```diff\n- 输入：  \"他明天下午两点会见鲍勃\"  [❌ 相对、模糊]\n+ 输出： \"爱丽丝将于 2025 年 11 月 16 日 14:00:00 在星巴克会见鲍勃\"  [✅ 绝对、原子]\n```\n\n---\n\n### 2️⃣ 在线语义合成\n\n与依赖异步后台维护的传统系统不同，SimpleMem 在写入阶段 **实时进行合成**。相关记忆单元会在当前会话范围内被合成为更高层次的抽象表示，从而允许重复或结构相似的经历被 **立即去噪并压缩**。\n\n**✨ 示例合成：**\n```diff\n- 片段 1： \"用户想要咖啡\"\n- 片段 2： \"用户喜欢燕麦奶\"\n- 片段 3： \"用户喜欢热的\"\n+ 整合后： \"用户喜欢热燕麦奶咖啡\"\n```\n\n这种主动合成确保了记忆拓扑结构保持紧凑，避免冗余碎片化。\n\n---\n\n### 3️⃣ 意图感知检索规划\n\n不同于固定深度的检索，SimpleMem 利用 LLM 的推理能力生成一个 **全面的检索计划**。给定查询时，规划模块会推断出 **潜在的搜索意图**，以动态确定检索范围和深度：\n\n$$\\{ q_{\\text{sem}}, q_{\\text{lex}}, q_{\\text{sym}}, d \\} \\sim \\mathcal{P}(q, H)$$\n\n随后，系统会跨语义、词汇和符号索引执行 **并行多视角检索**，并通过基于 ID 的去重合并结果：\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n**🔹 简单查询**\n- 通过单个记忆单元直接查找事实\n- 检索深度极浅\n- 响应迅速\n\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\">\n\n**🔸 复杂查询**\n- 跨多个事件的聚合\n- 扩展检索深度\n- 覆盖面更广\n\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n**📈 结果**：F1 得分为 43.24%，且所需 token 数量仅为全上下文方法的 **三十分之一**。\n\n---\n\n\u003Cdiv align=\"center\">\n\n# 🧠 Omni-SimpleMem：多模态记忆\n\n**新增**——SimpleMem 现在可处理文本、图像、音频和视频。\n\n\u003C\u002Fdiv>\n\n**Omni-SimpleMem** 将 SimpleMem 扩展至 **统一的多模态记忆**——支持文本、图像、音频和视频体验，并在所有五种经过测试的 LLM 后端中均表现出最先进的准确性。\n\n其构建基于三大原则：**选择性摄入**（针对每种模态的熵驱动过滤）、**渐进式检索**（FAISS 和 BM25 混合搜索，结合金字塔式 token 预算扩展）以及 **知识图谱增强**（多跳跨模态推理）。\n\n> 📖 完整文档、基准测试及架构详情：[**Omni-SimpleMem →**](OmniSimpleMem\u002F)\n\n---\n\n## 📦 安装\n\n### 📝 新手须知\n\n- 请确保您使用的 **Python 3.10 是活动环境中的版本**，而不仅仅是全局安装的版本。\n- 必须在运行任何记忆构建或检索操作之前配置好兼容 OpenAI 的 API 密钥，否则初始化可能会失败。\n- 使用非 OpenAI 提供商（如 Qwen 或 Azure OpenAI）时，请务必在 `config.py` 中验证模型名称和 `OPENAI_BASE_URL`。\n- 对于大型对话数据集，启用并行处理可以显著缩短记忆构建时间。\n\n### 📋 需求\n\n- 🐍 Python 3.10\n- 🔑 兼容 OpenAI 的 API（OpenAI、Qwen、Azure OpenAI 等）\n\n### 🛠️ 设置\n\n```bash\n# 📥 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem.git\ncd SimpleMem\n\n# 📦 安装依赖\npip install -r requirements.txt\n\n# ⚙️ 配置 API 设置\ncp config.py.example config.py\n# 根据您的 API 密钥和偏好编辑 config.py\n```\n\n### ⚙️ 配置示例\n\n```python\n# config.py\nOPENAI_API_KEY = \"your-api-key\"\nOPENAI_BASE_URL = None  # 或 Qwen\u002FAzure 的自定义端点\n\nLLM_MODEL = \"gpt-4.1-mini\"\nEMBEDDING_MODEL = \"Qwen\u002FQwen3-Embedding-0.6B\"  # 最先进的检索模型\n```\n\n---\n\n## 🐳 使用 Docker 运行\n\n**MCP 服务器**可以在 Docker 中运行，以提供一致且隔离的环境。数据（LanceDB 和用户数据库）会持久化到主机卷中。\n\n### 先决条件\n\n- [Docker](https:\u002F\u002Fdocs.docker.com\u002Fget-docker\u002F) 和 [Docker Compose](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Finstall\u002F)\n\n### 快速运行\n\n```bash\n# 从仓库根目录\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=\u003CTOKEN>\n\n数据存储在主机的 `.\u002Fdata` 目录中（自动创建）。\n\n### 自定义配置\n\n1. 复制环境模板并编辑：\n   ```bash\n   cp .env.example .env\n   # 编辑 .env：设置 JWT_SECRET_KEY、ENCRYPTION_KEY、LLM_PROVIDER、模型 URL 等\n   ```\n2. 使用该环境文件运行：\n   ```bash\n   docker compose --env-file .env up -d\n   ```\n\n### 在主机上使用 Ollama\n\n当 `LLM_PROVIDER=ollama` 且 Ollama 在您的机器上运行（而非在 Docker 容器中）时，请在 `.env` 文件中设置：\n\n```bash\nLLM_PROVIDER=ollama\nOLLAMA_BASE_URL=http:\u002F\u002Fhost.docker.internal:11434\u002Fv1\n```\n\n在 Linux 系统上，`host.docker.internal` 会通过 Compose 文件自动启用。\n\n### 常用命令\n\n```bash\ndocker compose logs -f simplemem   # 实时查看日志\ndocker compose down                 # 停止并移除容器\n```\n\n> 📖 如需自行部署 MCP 服务器（Docker 或裸金属环境），请参阅 [MCP 文档](MCP\u002FREADME.md)。\n\n---\n\n## 🔌 路由器工具\n\n路由器采用基于注册表的工厂模式——后端仅在请求时才会被延迟加载，并且会在实例化前检查依赖项是否满足。\n\n```python\nimport simplemem_router as simplemem\n\n# 列出所有已注册的模式\nsimplemem.list_modes()\n# {'text': '单模态文本记忆，支持语义无损压缩',\n#  'omni': '多模态记忆——文本、图像、音频、视频（Omni-SimpleMem)'}\n\n# 检查某模式的依赖项是否已满足\nsimplemem.is_available(\"omni\")  # True \u002F False\n\n# 检查自动选择的模式\nmem = simplemem.create()\nprint(mem.mode)  # \"auto\"（待定）、\"text\" 或 \"omni\"\n\n# 注册自定义后端\nsimplemem.register(\n    mode=\"my_backend\",\n    module_path=\"my_package.memory\",\n    class_name=\"MyMemorySystem\",\n    description=\"自定义记忆后端\",\n    required_deps=[\"my_package\"],\n)\nmem = simplemem.create(mode=\"my_backend\")\n```\n\n---\n\n## ❓ 常见设置问题与故障排除\n\n如果您在首次设置或运行 SimpleMem 时遇到问题，请检查以下常见情况：\n\n### 1️⃣ API 密钥未检测到\n- 确保您的 API 密钥已在 `config.py` 中正确设置。\n- 对于兼容 OpenAI 的提供商（如 Qwen、Azure 等），请确认 `OPENAI_BASE_URL` 是否配置正确。\n- 更新密钥后，请重启 Python 环境。\n\n### 2️⃣ Python 版本不匹配\n- SimpleMem 需要 **Python 3.10**。\n- 使用以下命令检查您的 Python 版本：\n  ```bash\n  python --version\n  ```\n\n---\n\n## 🔄 跨会话记忆 *(文本记忆)*\n\n**SimpleMem-Cross** 在 SimpleMem 的基础上扩展了持久化的跨对话记忆功能。智能体可以回忆起之前会话中的上下文、决策和观察结果，从而实现对话间的连续性，而无需手动重新注入上下文。\n\n### 主要特性\n\n| 特性 | 描述 |\n|------|------|\n| **会话生命周期** | 完整的会话管理，包括开始、记录、停止和结束等阶段 |\n| **自动上下文注入** | 根据令牌预算，自动将先前会话的上下文注入到当前会话中 |\n| **事件收集** | 记录消息、工具使用、文件变更等信息，并自动进行脱敏处理 |\n| **观察提取** | 通过启发式方法提取决策、发现和学习内容 |\n| **溯源追踪** | 每条记忆都可追溯到其来源证据 |\n| **整合优化** | 对旧记忆进行衰减、合并和修剪，以保持记忆质量 |\n\n### 快速示例\n\n```python\nfrom cross.orchestrator import create_orchestrator\n\nasync def main():\n    orch = create_orchestrator(project=\"my-project\")\n\n    # 开始会话——自动注入先前的上下文\n    result = await orch.start_session(\n        content_session_id=\"session-001\",\n        user_prompt=\"继续构建 REST API\",\n    )\n    print(result[\"context\"])  # 来自先前会话的相关上下文\n\n    # 在会话中记录事件\n    await orch.record_message(result[\"memory_session_id\"], \"用户询问关于 JWT 的问题\")\n    await orch.record_tool_use(\n        result[\"memory_session_id\"],\n        tool_name=\"read_file\",\n        tool_input=\"auth\u002Fjwt.py\",\n        tool_output=\"class JWTHandler: ...\",\n    )\n\n    # 结束会话——提取观察结果、生成摘要并存储记忆\n    report = await orch.stop_session(result[\"memory_session_id\"])\n    print(f\"已存储 {report.entries_stored} 条记忆\")\n\n    await orch.end_session(result[\"memory_session_id\"])\n    orch.close()\n```\n\n### 架构\n\n```\n智能体框架（Claude Code \u002F Cursor \u002F 自定义）\n                    |\n     +--------------+--------------+\n     |                             |\n钩子\u002F生命周期适配器      HTTP\u002FMCP API（FastAPI）\n     |                             |\n     +--------------+--------------+\n                    |\n           CrossMemOrchestrator\n                    |\n  +-----------------+------------------+\n  |                 |                  |\n会话管理器  上下文注入器  整合优化\n（SQLite）         （按预算打包） （衰减\u002F合并\u002F修剪）\n  |                 |                  |\n  +---------+-------+                  |\n            |                          |\n   跨会话向量存储（LanceDB） \u003C--+\n```\n\n### 模块参考\n\n| 模块 | 描述 |\n|--------|-------------|\n| `cross\u002Ftypes.py` | Pydantic 模型、枚举和记录 |\n| `cross\u002Fstorage_sqlite.py` | SQLite 后端，用于存储会话、事件和观察结果 |\n| `cross\u002Fstorage_lancedb.py` | LanceDB 向量存储，支持溯源 |\n| `cross\u002Fhooks.py` | 生命周期钩子（会话开始\u002F工具使用\u002F结束） |\n| `cross\u002Fcollectors.py` | 三层脱敏的事件收集功能 |\n| `cross\u002Fsession_manager.py` | 完整的会话生命周期编排 |\n| `cross\u002Fcontext_injector.py` | 基于令牌预算的上下文构建器 |\n| `cross\u002Forchestrator.py` | 最上层的接口和工厂 |\n| `cross\u002Fapi_http.py` | FastAPI REST 端点 |\n| `cross\u002Fapi_mcp.py` | MCP 工具定义 |\n| `cross\u002Fconsolidation.py` | 内存维护模块 |\n\n> 📖 更多详细的 API 文档，请参阅 [跨会话 README](cross\u002FREADME.md)。\n\n---\n\n## 🔌 MCP 服务器 *(文本记忆)*\n\nSimpleMem 可作为一款基于模型上下文协议（MCP）的**云端记忆服务**提供，能够与 Claude Desktop、Cursor 等兼容 MCP 的 AI 助手无缝集成。\n\n**🌐 云服务**: [mcp.simplemem.cloud](https:\u002F\u002Fmcp.simplemem.cloud) — 或者您也可以使用 [Docker](#-run-with-docker) 在本地自建 MCP 服务器。\n\n### 主要特性\n\n| 特性 | 描述 |\n|---------|-------------|\n| **可流式传输的 HTTP** | 支持 MCP 2025-03-26 协议及 JSON-RPC 2.0 |\n| **多租户隔离** | 每个用户的独立数据表，通过令牌认证访问 |\n| **混合检索** | 语义搜索 + 关键字匹配 + 元数据过滤 |\n| **生产优化** | 通过集成 OpenRouter 提升响应速度 |\n\n### 快速配置\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> 📖 更多详细的设置说明和自建指南，请参阅 [MCP 文档](MCP\u002FREADME.md)。\n\n---\n\n## 🗺️ 路线图\n\n**Omni-SimpleMem 基础设施** —— 将多模态记忆引入所有共享组件：\n\n- [ ] Omni 跨会话记忆（文本 + 图像 + 音频 + 视频持久化）\n- [ ] Omni MCP 服务器（通过 MCP 协议实现多模态记忆）\n- [ ] Omni Docker 支持\n- [ ] Omni PyPI 包（`pip install omni-simplemem`）\n- [ ] Omni Claude Skills 集成\n\n**核心改进：**\n\n- [ ] 流式摄取，用于实时记忆更新\n- [ ] 多智能体之间的记忆共享\n- [ ] 基准测试扩展（更多多模态基准）\n\n欢迎贡献！请开一个 [issue](https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fissues) 进行讨论。\n\n---\n\n## 📊 评估\n\n### 🧪 运行基准测试\n\n```bash\n# 🎯 完整 LoCoMo 基准测试\npython test_locomo10.py\n\n# 📉 子集评估（5 个样本）\npython test_locomo10.py --num-samples 5\n\n# 💾 自定义输出文件\npython test_locomo10.py --result-file my_results.json\n```\n\n---\n\n### 🔬 复现论文结果\n\n请使用 `config.py` 中的精确配置：\n- **🚀 高性能**：GPT-4.1-mini、Qwen3-Plus\n- **⚙️ 高效**：Qwen2.5-1.5B、Qwen2.5-3B\n- **🔍 嵌入**：Qwen3-Embedding-0.6B（1024 维）\n\n---\n\n## 📝 引用\n\n如果您在研究中使用了 SimpleMem，请引用以下内容：\n\n```bibtex\n@article{simplemem2025,\n  title={SimpleMem: 针对 LLM 智能体的高效终身记忆},\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 预印本 arXiv:2601.02553},\n  year={2025},\n  url={https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem}\n}\n```\n\n```bibtex\n@article{omnisimplemem2026,\n  title   = {Omni-SimpleMem：自主研究引导的终身多模态智能体记忆发现},\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 预印本 arXiv:2604.01007},\n  year    = {2026},\n}\n```\n\n---\n\n## 📄 许可证\n\n本项目采用 **MIT 许可证**——详情请参阅 [LICENSE](LICENSE) 文件。\n\n---\n\n## 🙏 致谢\n\n我们感谢以下项目和团队：\n\n- 🔍 **嵌入模型**：[Qwen3-Embedding](https:\u002F\u002Fgithub.com\u002FQwenLM\u002FQwen) - 业界领先的检索性能\n- 🗄️ **向量数据库**：[LanceDB](https:\u002F\u002Flancedb.com\u002F) - 高性能列式存储\n- 📊 **基准测试**：[LoCoMo](https:\u002F\u002Fgithub.com\u002Fsnap-research\u002Flocomo) - 长上下文记忆评估框架","# SimpleMem 快速上手指南\n\nSimpleMem 是一个专为 LLM Agent 设计的高效长期记忆系统，支持文本及多模态（图像、音频、视频）数据的存储、压缩与检索。它通过语义无损压缩技术，帮助 Agent 跨会话保留关键上下文，显著提升信息密度与召回效率。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：Python 3.9 或更高版本\n*   **前置依赖**：\n    *   `pip` (Python 包管理工具)\n    *   若使用多模态功能，建议安装对应的多媒体处理库（如 `pillow`, `pydub` 等，通常由包自动处理或按需安装）\n*   **网络环境**：首次安装需访问 PyPI 官方源。国内用户可配置清华或阿里镜像源以加速下载。\n\n## 安装步骤\n\n### 1. 配置国内镜像源（推荐）\n为了获得更快的下载速度，建议在安装前临时指定国内镜像源：\n\n```bash\n# 使用清华大学镜像源\npip install simplemem -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n或者永久配置：\n```bash\npip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 2. 安装 SimpleMem\n执行以下命令安装最新稳定版：\n\n```bash\npip install simplemem\n```\n\n## 基本使用\n\nSimpleMem 提供了统一的入口 `simplemem_router`，默认开启 `auto` 模式。该模式会根据你调用的第一个方法自动判断后端：\n*   调用对话相关方法（如 `add_dialogue`）→ 自动启用 **Text** 模式（纯文本记忆）。\n*   调用多模态方法（如 `add_image`, `add_audio`）→ 自动启用 **Omni** 模式（多模态记忆）。\n\n### 场景一：文本记忆（自动模式）\n\n适用于记录对话、事实陈述等纯文本信息。\n\n```python\nimport simplemem_router as simplemem\n\n# 创建实例，mode=\"auto\" 会根据后续调用自动选择后端\nmem = simplemem.create()\n\n# 添加对话记录\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)\n\n# 完成写入并构建索引\nmem.finalize()\n\n# 查询记忆\nanswer = mem.ask(\"When and where will Alice and Bob meet?\")\nprint(answer)\n# 输出示例：\"16 November 2025 at 2:00 PM at Starbucks\"\n```\n\n### 场景二：多模态记忆（自动模式）\n\n适用于混合了文本、图片、音频或视频的复杂场景。\n\n```python\nimport simplemem_router as simplemem\n\n# 创建实例\nmem = simplemem.create()\n\n# 添加多模态数据（自动切换至 Omni 后端）\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\n# 执行查询\nresult = mem.query(\"What does the user enjoy?\", top_k=5)\nfor item in result.items:\n    print(item[\"summary\"])\n\n# 关闭连接释放资源\nmem.close()\n```\n\n### 进阶：开启并行处理\n\n如果需要处理大规模对话数据，可以启用并行模式以显著降低延迟：\n\n```python\nimport simplemem_router as simplemem\n\nmem = simplemem.create(\n    mode=\"text\",\n    clear_db=True,\n    enable_parallel_processing=True,  # 启用并行记忆构建\n    max_parallel_workers=8,           # 设置构建线程数\n    enable_parallel_retrieval=True,   # 启用并行查询\n    max_retrieval_workers=4           # 设置查询线程数\n)\n```","一位独立开发者正在构建一个跨模态的个人生活助手，需要让 AI 长期记住用户的文字日记、会议录音截图以及日常拍摄的照片细节。\n\n### 没有 SimpleMem 时\n- **记忆碎片化严重**：AI 只能依赖有限的上下文窗口，一旦对话轮数过多，上周提到的“项目截止日期”或“家人生日”等关键信息就会被遗忘。\n- **多模态数据无法关联**：用户上传的会议白板照片和对应的录音笔记分散在不同文件中，AI 无法将图像内容与文字描述进行语义层面的深度绑定。\n- **存储成本高昂且低效**：为了保留历史数据，不得不将所有原始记录反复填入提示词，导致 Token 消耗剧增且响应速度显著变慢。\n- **缺乏长期演进能力**：每次开启新会话都像是“失忆”状态，无法基于用户过去半年的习惯偏好提供个性化的建议或总结。\n\n### 使用 SimpleMem 后\n- **实现无损长期记忆**：SimpleMem 通过语义无损压缩技术，将海量历史交互浓缩存储，AI 能随时精准召回数月前的关键细节而不占用当前上下文。\n- **多模态记忆深度融合**：无论是文本、图片还是音视频，SimpleMem 都能统一编码存储，让 AI 能理解“这张照片里的草图是上周会议讨论的方案”这类复杂关联。\n- **高效检索与低成本运行**：仅在需要时动态检索相关记忆片段，大幅降低了 Token 用量，同时保持了极快的响应速度和较低的算力开销。\n- **具备持续成长的人格**：随着时间推移，SimpleMem 帮助 AI 不断积累对用户风格和偏好的理解，使其从一个通用助手进化为懂你的专属伙伴。\n\nSimpleMem 通过高效的多模态记忆压缩与检索机制，彻底打破了 LLM 代理的“短期记忆”瓶颈，让 AI 真正拥有了伴随用户成长的终身记忆能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Faiming-lab_SimpleMem_72bef12b.png","aiming-lab","AIMING Lab","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Faiming-lab_d687b63e.jpg","AIMING Lab @ UNC-Chapel Hill. AIMING stands for Adaptive Intelligence through Alignment, Interaction and Learning.",null,"HuaxiuYaoML","https:\u002F\u002Fgithub.com\u002Faiming-lab",[83,87,91,94,98,102],{"name":84,"color":85,"percentage":86},"Python","#3572A5",98.8,{"name":88,"color":89,"percentage":90},"CSS","#663399",0.4,{"name":92,"color":93,"percentage":90},"JavaScript","#f1e05a",{"name":95,"color":96,"percentage":97},"HTML","#e34c26",0.3,{"name":99,"color":100,"percentage":101},"Dockerfile","#384d54",0.1,{"name":103,"color":104,"percentage":105},"Shell","#89e051",0,3163,304,"2026-04-04T03:50:44","MIT","未说明",{"notes":112,"python":113,"dependencies":114},"该工具主要作为 Python 包或 MCP 服务器运行，支持文本及多模态（图像、音频、视频）记忆。可通过 pip 安装，也提供 Docker 支持。具体底层深度学习框架依赖（如 PyTorch）在提供的片段中未明确列出，但多模态功能通常隐含需要相应的推理环境。","3.8+",[115],"simplemem_router",[15,52,55,54,14,51,13,26],[118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],"agent","compression","llm","mcp","memory","rag","retrieval","semantic-search","simplemem","knowledge-graph","lifelong-memory","multimodal","python","audio","video","vision",5,"2026-03-27T02:49:30.150509","2026-04-06T06:44:24.708671",[138,143,148,153,158,163],{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},14342,"使用小模型（如 Qwen2.5-3B）时，规划阶段生成的 JSON 格式经常出错导致程序崩溃，如何解决？","这是小模型处理复杂 JSON 格式的常见问题。官方建议的解决方案是添加一个轻量级的重试机制（retry loop）：当检测到输出格式无效时，自动重新运行规划器直到生成有效的 JSON 格式为止。如果多次重试后仍然失败，则跳过该步骤以避免整个管道崩溃。无需对提示词进行特殊修改，保持与大模型一致的设置即可。","https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fissues\u002F32",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},14343,"SimpleMem 生成的回答过于简略或细节不足，如何优化输出质量？","输出的详细程度主要受基础大模型风格（如 Deepseek-V3.1-Terminus）和默认提示词的影响。默认提示词针对特定基准测试进行了优化，可能导致简洁性过高。如果在生产环境或特定项目中使用，建议修改提示词指令（prompt instructions），明确要求模型提供尽可能多的细节。在 LongMemEval 等测试中，当前配置在检索核心事实和必要细节方面表现良好，只需调整提示词即可适应不同需求。","https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fissues\u002F30",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},14344,"如何在 VS Code 中解决安装 simplemem[gpu] 后 Jupyter Notebook 内核崩溃的问题？","内核崩溃通常是因为默认安装了 GPU\u002FCUDA 依赖项，这在某些远程或 Conda 环境中会导致冲突。解决方案是将 GPU 特定的依赖项与基础安装分离。可以通过只安装基础包来避免此问题，仅在需要时按需安装 GPU 支持。官方已提交 PR（#33）修复此问题，使 GPU 支持变为可选安装，从而防止在 VS Code Remote 或 Conda 环境中出现内核崩溃。","https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fissues\u002F22",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},14345,"SimpleMem 是否支持作为 MCP Server 在 LM Studio 或其他本地环境中使用？","是的，SimpleMem 已经发布了 MCP Server 版本。对于本地部署，用户需要修改嵌入模型（embedding）和大语言模型（LLM）的 API 配置，将其指向本地端点（local endpoints）。未来计划增加采样支持。您可以直接利用发布的 MCP server 代码，通过调整配置文件中的 API 地址来实现本地集成。","https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fissues\u002F4",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},14346,"SimpleMem 的“任务驱动记忆”与“存在连续性层（Presence Continuity Layer）”有什么区别？","两者有显著区别：SimpleMem 等系统主要是“任务驱动”的，设计用于响应明确的查询目标，检索确切的事实或细节；而“存在连续性层”旨在维持跨会话、跨设备和跨模型的“环境状态”（ambient state），即使没有明确查询也能保持用户上下文的连贯性。在底层基础设施上，连续性系统可能仍需类似 SimpleMem 的机制来高效管理和注入状态，但其顶层设计更侧重于身份、关系状态和长期上下文的稳定性，而非单一任务的准确性。","https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fissues\u002F42",{"id":164,"question_zh":165,"answer_zh":166,"source_url":142},14347,"是否可以使用更强的模型专门用于记忆构建阶段以提升效果？","虽然官方实验中所有阶段使用的是同一个模型以保持一致性，但维护者明确表示：在实际应用中，使用更强的模型专门负责记忆构建（construction）阶段是一个非常好的优化思路。建议用户进行小规模实验来验证这种混合模型策略的效果，这可能会显著提升记忆质量和下游任务的表现。",[168,173],{"id":169,"version":170,"summary_zh":171,"released_at":172},81117,"v0.2.0","## 新增功能\n\n### 🧠 Omni-SimpleMem：多模态记忆\nSimpleMem 现在支持 **文本、图像、音频及视频** 记忆。\n\n- 在 LoCoMo F1 指标上较先前基线提升 **+411%**\n- 在 Mem-Gallery F1 指标上提升 **+214%**\n- 检索吞吐量达到 **5.81 q\u002Fs**（速度提升 3.5 倍）\n- 基于三大原则构建：选择性摄入、渐进式检索、知识图谱增强\n\n### 其他变更\n- 重新组织 README，采用并行的 SimpleMem（文本）+ Omni-SimpleMem（多模态）结构\n- 新增未来多模态基础设施路线图（跨会话、MCP、Docker）\n- 更新所有 13 种语言的 README\n- 修复若干 bug 并提升系统稳定性\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Faiming-lab\u002FSimpleMem\u002Fcompare\u002Fv0.1.0...v0.2.0","2026-04-03T04:11:24",{"id":174,"version":175,"summary_zh":176,"released_at":177},81118,"v0.1.0","## SimpleMem v0.1.0 — 初始版本（仅文本）\n\n一种基于语义无损压缩的高效内存框架，专为大语言模型代理设计。\n\n### 特性\n- 语义结构化压缩 — 将对话转换为紧凑、原子化的记忆单元\n- 在线语义合成 — 整合相关记忆片段以消除冗余\n- 意图感知检索规划 — 动态推断检索意图，并支持并行多视角检索\n- 在 LoCoMo 基准测试上取得 43.24% 的 F1 分数（相比 Mem0 提升 26%）\n- 每次查询约 550 个 token — 仅为全上下文方法的三十分之一\n- 支持 MCP 协议 — 兼容 Claude、Cursor、LM Studio 等","2026-03-10T03:55:16"]