SimpleMem:LLM 智能体的高效终身记忆系统
以语义无损压缩的方式存储、压缩和检索文本与多模态长期记忆,让智能体用更少的令牌回忆更多内容。
- Star 数
- ★ 3.8k
- 最近更新
- 2 个月前
- License
- MIT
- 主语言
- Python
- FA 评分
- 43/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台ChatGPT · Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 构建需要跨会话保持上下文的聊天机器人或虚拟助手。
- 不适合
- 只想用 MCP 客户端就要多模态记忆的用户
- 不愿配置 config.py 和 API 密钥的非技术用户
这个 Agent 能做什么,适合哪些场景?
SimpleMem 是一个针对 LLM 智能体的统一记忆栈,核心原理是存储高信息密度的“语义无损”记忆,从而在显着降低推理成本的同时提升回忆效果。它包含三个集成组件:SimpleMem(文本核心)、Omni-SimpleMem(支持文本、图像、音频和视频的多模态记忆)以及 EvolveMem(自进化检索)。该系统提供 Python 包(simplemem)和 MCP 服务器两种方式部署,MCP 服务器支持 Claude Desktop 和 Cursor 等客户端,并可通过 Docker 自托管。它兼容任何 OpenAI 兼容的 API,并在 LoCoMo、MemBench 和 Mem-Gallery 等基准上取得了最新成果。该仓库属于 aiming-lab 项目,采用 MIT 许可证。
SimpleMem 提供三种核心流程:存储信息(将对话或事实转换为结构化原子记忆)、索引记忆(使用语义嵌入和元数据组织)以及检索相关记忆(基于语义而非关键词)。在 Python 中,它提供了高级 API,如 SimpleMem()、add_dialogue()、add_text()、add_image()、add_audio()、add_video()、ask() 和 query()。它还支持并行处理(enable_parallel_processing)和自进化优化(simplemem.optimize())。通过 MCP,它暴露了文本记忆功能,云服务地址为 mcp.simplemem.cloud,并支持流式 HTTP。
- 构建需要跨会话保持上下文的聊天机器人或虚拟助手。
- 为需要总结或引用之前聊天图像或录音的多模态分析应用赋予长期记忆。
- 通过减少用于上下文管理的令牌开销,优化大型对话数据集的处理。
- 将记忆能力集成到现有 AI 工作流中(通过 MCP 或 Python API)。
- 利用其自进化检索功能,通过基于开发问题调整配置参数,来改进检索准确性。
如何安装或部署这个 Agent?
克隆仓库:git clone https://github.com/aiming-lab/SimpleMem.git 并进入目录。安装依赖:pip install -r requirements.txt 或 pip install -e .。可选额外安装:pip install -e .[server](MCP/HTTP)或 pip install -e .[benchmark](复现基准)。需要 Python 3.10+ 和 OpenAI 兼容的 API 密钥。复制 config.py.example 到 config.py,并设置 OPENAI_API_KEY(和可选的 OPENAI_BASE_URL)。对于 Docker,运行 docker compose up -d。
如何使用这个 Agent?
对于文本记忆,使用 SimpleMem() 并调用 add_dialogue() 添加对话,然后调用 finalize() 和 ask() 进行查询。对于多模态,使用 add_text()、add_image() 等。要自动优化检索,调用 simplemem.optimize(mem, dev_questions, max_rounds=3) 并保存配置。对于 MCP,配置 mcpServers 包含 URL 和 Bearer 令牌。有关详细示例,请参阅仓库的 README 和文档。
这个 Agent 有哪些优点和局限?
- 在 LoCoMo 上报告 SOTA 性能(F1=0.613,+47%),并将推理令牌消耗减少约 30 倍。
- 通过统一的 Python API 提供真正的多模态支持(文本、图像、音频、视频)。
- 配备 EvolveMem 的自进化检索机制,在 LoCoMo 上相对提升 25.7%。
- 提供灵活的部署选项:Python 包、MCP 云服务和可自托管的 Docker 镜像。
- 需要付费的 OpenAI 兼容 API 密钥;初始化前必须配置密钥。
- 设置相对复杂,使用前需了解 Python 3.10+ 和权限设置。
- 多模态和 MCP 服务器是独立产品,多模态支持尚不可通过 MCP 使用,且不支持跨平台统一。
- 文档中的基准测试结果(例如,F1 分数)是声称的结果,独立验证所需的数据未在源中提供。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| SimpleMem:LLM 智能体的高效终身记忆系统 当前 | 43 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 3.8k | 2 个月前 | Python | ChatGPT · Claude Code |
| Yuxi(语析)——可私有部署的多租户知识智能体平台 | 41 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 7.4k | 2 天前 | Python | OpenAI API |
| M-flow 认知记忆引擎 | 36 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 4.5k | 2 个月前 | Python | OpenAI API · Claude API |
| qKnow 企业知识智能平台 | 38 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 285 | 3 天前 | Java | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 要求用户配置 API 密钥,但未说明密钥存储方式或最小权限原则;MCP 服务器支持多租户隔离和 token 认证,但未提供用户确认机制;数据流透明度有限,未明确说明数据如何存储、传输和删除;敏感数据处理方面,README 提到加密密钥(ENCRYPTION_KEY),但未详细说明;依赖安全方面,requirements.txt 固定了版本,但未提及漏洞扫描;外部影响方面,MCP 服务器是云托管的,但未说明数据驻留或隐私政策;回滚方面,EvolveMem 提到自动回滚,但未详细说明;来源归属方面,论文和引用信息存在,但未验证。扣分原因:缺乏用户确认、数据流透明度不足、敏感数据处理细节缺失、依赖安全未验证、外部影响未说明、回滚机制不明确、来源归属未验证。
证据显示:README 和测试文件在功能描述上基本一致,但存在一些不一致,如 README 提到 'semantic lossless compression',但测试未验证;依赖可用性方面,requirements.txt 固定了版本,但未说明是否所有依赖都可用;失败消息方面,README 提到 'if responses come back empty, raise the token limit',但未提供全面的错误处理文档。扣分原因:自洽性有轻微不一致,依赖可用性未验证,失败消息不全面。
证据显示:README 明确了目标受众(LLM 代理开发者)和使用场景(文本和多模态记忆),并提供了多种集成方式(Python、MCP、Docker);能力边界方面,README 列出了支持的功能和规划中的功能,但未明确限制;触发精度方面,自动模式根据首次调用选择后端,但未详细说明触发条件;环境适配方面,支持多种 OpenAI 兼容端点,但未说明所有可能的配置。扣分原因:触发精度描述不详细,能力边界未完全明确。
证据显示:README 结构清晰,包含快速开始、安装、MCP 服务器、复现结果等章节;安装说明详细,包括 pip 和 Docker;命名稳定性方面,包名 'simplemem' 已统一,但版本历史未提供;示例和 FAQ 方面,提供了多个代码示例,但未提供 FAQ;已知限制方面,README 提到了 MCP 服务器不支持多模态和 EvolveMem,但未全面列出;许可证为 MIT,清晰;版本控制方面,README 有新闻更新,但未提供正式的变更日志;维护责任方面,未明确说明维护者或贡献指南。扣分原因:命名稳定性未验证,已知限制不全面,版本控制不正式,维护责任不明确。
证据显示:输出可用性方面,提供了代码示例和预期输出,但未验证实际输出;边际价值方面,声称在 LoCoMo 等基准上取得 SOTA,但未提供可复现的详细结果;成本效益方面,声称减少 token 消耗,但未提供具体数据。扣分原因:输出未验证,边际价值未充分支持,成本效益数据不足。
证据显示:README 引用了 arXiv 论文和基准结果,但未提供具体实验细节;跨来源验证方面,仅依赖 README 和测试文件,未提供独立验证;事实与推断分离方面,README 将声称和推断混合,未明确区分。扣分原因:声称缺乏可追溯性,跨来源验证不足,事实与推断未分离。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- API 密钥处理方式不明确,建议审查代码确保密钥安全存储。
- 云托管的 MCP 服务器可能涉及数据隐私问题,需确认数据驻留和隐私政策。
- 依赖固定版本但未进行漏洞扫描,建议定期检查依赖安全。
- 声称的基准性能未提供可复现的详细步骤,需谨慎对待。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.3.0 v0.3.0 — Unified SimpleMem package
发布说明摘录
SimpleMem v0.3.0 — Unified package SimpleMem, Omni-SimpleMem, and EvolveMem now ship as a single simplemem package with auto-routing. Highlights - One import, auto-routing: from simplemem import SimpleMem. The first method you call selects the backend (text vs multimodal). - Text memory (SimpleMem): semantic lossless compression, intent-aware retrieval. - Multimodal (Omni-SimpleMem): text, image, audio, video via add_image / add_audio / add_video / query. …在 GitHub 查看 ↗ -
v0.2.0 v0.2.0 — Omni-SimpleMem: Multimodal Memory
发布说明摘录
What's New 🧠 Omni-SimpleMem: Multimodal Memory SimpleMem now supports text, image, audio & video memory. - +411% on LoCoMo F1 over previous baselines - +214% on Mem-Gallery F1 - 5.81 q/s retrieval throughput (3.5x faster) - Built on three principles: Selective Ingestion, Progressive Retrieval, Knowledge Graph Augmentation Other Changes - README restructured with parallel SimpleMem (text) + Omni-SimpleMem (multimodal) organization - Added Roadmap for upcoming multimodal infrastructure (cross-session, MCP, Docker) - All 13 language READMEs updated …在 GitHub 查看 ↗ -
v0.1.0 v0.1.0 — Initial Release (Text Only)
发布说明摘录
SimpleMem v0.1.0 — Initial Release (Text Only) An efficient memory framework based on semantic lossless compression for LLM agents. Features - Semantic Structured Compression — converts dialogues into compact, atomic memory units - Online Semantic Synthesis — consolidates related memory fragments to eliminate redundancy - Intent-Aware Retrieval Planning — dynamic search intent inference with parallel multi-view retrieval - 43.24% F1 on LoCoMo benchmarks (26% improvement over Mem0) - ~550 tokens per query — 30× fewer than full-context approaches …在 GitHub 查看 ↗
常见问题
是否免费使用?
我能否在本地离线运行?
如何添加多模态数据?
add_image()、add_audio() 或 add_video() 方法。多模态支持目前仅通过 Python API 提供,MCP 服务器尚不支持。