简打卡
51.76M · 2026-03-28
这是「一天一个开源项目」系列的第 36 篇文章。今天介绍的项目是 EverMemOS(GitHub)。
对话式 Agent 若只有「当前轮」的上下文,换会话就忘、跨平台不互通,很难做真正的长期陪伴与个性化。EverMemOS 是 EverMind-AI 开源的长时记忆操作系统:从对话中结构化抽取记忆(Encoding)、按情节与画像组织与巩固(Consolidation)、在需要时智能检索注入上下文(Retrieval),并支持情节记忆、事实、偏好、关系等多模态记忆类型。在 LoCoMo 长上下文记忆基准上达到 93% 推理准确率,且用 Milvus、Elasticsearch、MongoDB、Redis 等生产级组件,通过 REST API 与任意 LLM 集成,适合做跨 LLM、跨平台的 Agent 记忆底座。
为什么值得看?
EverMemOS 的 Slogan 是 「Long-term memory OS for your agents across LLMs and platforms」。它要解决的是:Agent 缺乏跨会话、跨平台、可推理的长时记忆 的问题。
通过三条流水线:
从而实现「不仅记住发生了什么,还理解记忆的含义,并用记忆指导决策」。在 LoCoMo(Long-Context Memory)基准上达到 93% 推理准确率,优于同类记忆系统。
面向的用户:
技术栈:Python(约 99.9%)、Docker、FastAPI、MongoDB、Elasticsearch、Milvus、Redis。
EverMemOS 的核心作用是:为 Agent 提供跨 LLM、跨平台的长时记忆能力,包括:
从而让 Agent 在多轮、多会话、多端场景下保持「记得住、查得到、用得上」的记忆。
对话式助手
客服与支持
个人/团队知识 Agent
多 Agent 协作
研究与评估
环境:Python 3.10+、Docker 20.10+、uv、4GB RAM。
# 1. 克隆并进入目录
git clone
cd EverMemOS
# 2. 启动 Docker 依赖(MongoDB、Elasticsearch、Milvus、Redis 等)
docker compose up -d
# 3. 安装 uv 与项目依赖
curl -LsSf | sh
uv sync
# 4. 配置 API Key
cp env.template .env
# 编辑 .env:LLM_API_KEY(记忆抽取)、VECTORIZE_API_KEY(向量化/重排)等
# 5. 启动服务
uv run python src/run.py
# 6. 健康检查
curl
# 预期:{"status": "healthy", ...}
服务默认运行在 ****。完整步骤见 Getting Started。
写入一条对话记忆:
import requests
API_BASE = "http://localhost:1995/api/v1"
# 写入单条消息(系统会做抽取与入库)
requests.post(f"{API_BASE}/memories", json={
"message_id": "msg_001",
"create_time": "2025-02-01T10:00:00+00:00",
"sender": "user_001",
"content": "I love playing soccer on weekends"
})
按 query 检索记忆:
# 检索与「用户喜欢什么运动」相关的记忆
response = requests.get(f"{API_BASE}/memories/search", json={
"query": "What sports does the user like?",
"user_id": "user_001",
"memory_types": ["episodic_memory"],
"retrieve_method": "hybrid" # 可选:bm25, embedding, hybrid, agentic 等
})
result = response.json().get("result", {})
for memory_group in result.get("memories", []):
print(memory_group)
更多示例与完整 API 见 API Usage Guide、Memory API。
93% LoCoMo 准确率
生产级基础设施
与 LLM 解耦
多模态记忆
多种检索策略
群聊与元数据
批量与评估
Docker + uv
| 对比项 | EverMemOS | 仅对话历史 / 简单 KV | 自建向量+RAG |
|---|---|---|---|
| 记忆结构 | 多模态(情节/事实/偏好/关系) | 多为原始文本 | 视实现而定 |
| 推理能力 | LoCoMo 93%,专门优化记忆推理 | 无基准 | 需自测 |
| 检索方式 | BM25 + 向量 + 混合 + Agentic | 多为关键词或简单向量 | 需自研 |
| 生产组件 | Milvus + ES + MongoDB + Redis | 常为单机/单库 | 需自行选型 |
| 集成方式 | REST API,与 LLM 无关 | 常与某 LLM 绑定 | 视架构而定 |
| 文档与评估 | 文档齐全 + 多基准复现 | 少 | 视项目而定 |
为什么选 EverMemOS?
README 与文档中的核心流程可概括为:
Encoding(编码)
Consolidation(巩固)
Retrieval(检索)
整体上,EverMemOS 作为「记忆中间层」夹在对话/前端与 LLM 之间:前端或 Agent 将消息写入 EverMemOS,在需要时再向 EverMemOS 做检索,把结果拼进 prompt 再调 LLM。
src/:核心服务入口(如 run.py)、API、编码/巩固/检索逻辑data/、data_format/:示例数据与数据格式说明demo/:simple_demo、extract_memory、chat_with_memory 等脚本docs/:开发文档、配置、API、架构说明evaluation/:LoCoMo、LongMemEval、PersonaMem 等评估脚本与说明config.json、env.template:服务与依赖配置docker-compose.yaml:MongoDB、Elasticsearch、Milvus、Redis 等通过 API 的 retrieve_method 等参数选择,详见 API 文档。
运行简单 Demo:
# 终端 1:启动 API
uv run python src/run.py
# 终端 2:运行简单 demo
uv run python src/bootstrap.py demo/simple_demo.py
完整体验:先 extract_memory.py 从示例数据抽取记忆,再 chat_with_memory.py 做带记忆的交互式对话。详见 Demo Guide。
评估(以 LoCoMo 为例):
uv sync --group evaluation
uv run python -m evaluation.cli --dataset locomo --system evermemos --smoke # 快速烟雾测试
uv run python -m evaluation.cli --dataset locomo --system evermemos # 完整评估
cat evaluation/results/locomo-evermemos/report.txt
详见 Evaluation Guide。
.env:由 env.template 复制而来,需配置 LLM_API_KEY(抽取用)、VECTORIZE_API_KEY(向量化/重排)等;其他服务地址可由 Docker Compose 默认提供。config.json:服务端口、各存储连接、检索默认参数等,见 Configuration Guide。EverMind-AI 举办的开源竞赛,赛道包括:Agent + Memory(带长时记忆的智能体)、Platform Plugins(VSCode、Chrome、Slack、Notion、LangChain 等集成)、OS Infrastructure(核心功能与性能优化)。可通过 Discord 组队与获取 Starter Kit,详见 README。
欢迎来我中的个人主页找到更多有用的知识和有趣的产品