MemMachine/MemMachine · 上手攻略
- 仓库:MemMachine/MemMachine
- 链接:https://github.com/MemMachine/MemMachine
- 分类:AI 基础设施 · Agent 记忆层
- 作者:Tom
- 更新:2026-09-22
一、是什么
MemMachine 是一个面向 AI Agent 和 LLM 应用的开源长期记忆层(Apache 2.0),核心解决"LLM 天生无状态"问题——让 AI 能够在多次对话、不同 session、甚至切换模型后,依然记住用户偏好、对话历史和关键事实。
架构上采用客户端-服务器模式:Server 端管理存储和检索(Neo4j 图数据库存情景记忆,SQL 存用户画像),Client 端通过 Python SDK / REST API / MCP Server 与应用对接。支持 OpenAI、Anthropic、Bedrock、Ollama 等任意 LLM provider。
⚠️ 注意:MemMachine 同时是一个开源项目名,也有一个同名的商业化平台(memmachine.ai),两者相关联但有区别——本攻略覆盖开源仓库本身。
二、解决什么问题
场景痛点:当前所有主流 LLM 都是无状态的——每次对话结束后,AI 就"失忆"了。对于需要跨 session 持续运行的 AI 助手、CRM Agent、个人理财顾问等场景,这严重限制了实用性。
MemMachine 通过三层记忆架构解决这个问题:
| 记忆类型 | 描述 | 存储 |
|---|---|---|
| Working Memory | 当前 session 的短期上下文 | 内存 |
| Episodic Memory | 跨 session 的对话情景记忆(图结构) | Neo4j 图数据库 |
| Profile Memory | 长期用户事实与偏好 | SQL 数据库 |
结果是:AI 可以在新的 session 中说"您上次提到喜欢靠窗座位,我已记住"——而不需要用户重复。
三、快速安装
3.1 前提条件
- Docker & Docker Compose
- OpenAI API Key(用于语言模型和 embeddings,⚠️ 存储在服务器端配置文件)
3.2 安装 Server(Docker 一键启动)
# Linux/macOS
TARBALL_URL=$(curl -s https://api.github.com/repos/MemMachine/MemMachine/releases/latest \
| grep '"tarball_url"' \
| head -n 1 \
| sed -E 's/.*"tarball_url": "(.*)",/\1/')
curl -L "$TARBALL_URL" -o MemMachine-latest.tar.gz
tar -xzf MemMachine-latest.tar.gz
cd MemMachine-MemMachine-*/
./memmachine-compose.sh
# Windows (PowerShell)
$latestRelease = Invoke-RestMethod -Uri "https://api.github.com/repos/MemMachine/MemMachine/releases/latest"
$tarballUrl = $latestRelease.tarball_url
Invoke-WebRequest -Uri $tarballUrl -OutFile "MemMachine-latest.tar.gz"
tar -xzf "MemMachine-latest.tar.gz" -C MemMachine --strip-components=1
cd MemMachine
./memmachine-compose.sh
安装脚本会引导配置 OpenAI API key,完成后服务自动启动。
3.3 验证安装
curl http://localhost:8080/health
# 应返回 healthy 状态
3.4 管理命令
./memmachine-compose.sh start # 启动
./memmachine-compose.sh stop # 停止
./memmachine-compose.sh restart # 重启
./memmachine-compose.sh logs # 查看日志
./memmachine-compose.sh clean # 清除所有数据
3.5 安装 Python Client SDK
pip install memmachine-client
四、核心用法
4.1 Python SDK 基本用法
from memmachine_client import MemMachineClient
# 初始化客户端(连接本地服务器)
client = MemMachineClient(base_url="http://localhost:8080")
# 获取或创建项目
project = client.get_or_create_project(org_id="my_org", project_id="my_project")
# 为用户 session 创建记忆实例
memory = project.memory(
group_id="default",
agent_id="travel_agent",
user_id="alice",
session_id="session_001"
)
# 添加记忆
result = memory.add("I prefer aisle seats on flights", metadata={"category": "travel"})
# 返回: [AddMemoryResult(uid='...')]
# 搜索记忆
results = memory.search("What are my flight preferences?")
print(results.content.episodic_memory.long_term_memory.episodes[0].content)
# => "I prefer aisle seats on flights"
4.2 MCP Server 接入
MemMachine 提供原生 MCP server,支持两种模式:
# Stdio 模式(适合 Claude Desktop)
memmachine-mcp-stdio
# HTTP 模式(适合 Web 客户端)
memmachine-mcp-http
接入后,Claude Desktop 等 MCP 兼容客户端可以直接调用 MemMachine 的记忆能力。
4.3 框架集成
| 框架 | 集成方式 | 说明 |
|---|---|---|
| LangChain | Memory Provider | 作为 LangChain Agent 的记忆组件 |
| LangGraph | Stateful Memory | 为 LangGraph 工作流提供跨节点状态持久化 |
| CrewAI | Persistent Memory | 为 CrewAI 多 Agent 系统提供记忆持久化 |
| LlamaIndex | Memory Integration | 集成到 LlamaIndex 应用 |
| AWS Strands | Agent SDK Memory | AWS Strands Agent SDK 的记忆后端 |
| n8n | No-code Workflow | 工作流自动化平台集成 |
| Dify | Memory Backend | Dify AI 应用的记忆后端 |
| FastGPT | Platform Integration | FastGPT 平台集成 |
五、典型适用场景
- 个人 AI 助手:记住用户偏好(语言风格、专业术语、常用上下文),跨 session 持续进化
- CRM Sales Agent:记住客户历史、跟进记录、偏好沟通方式,每次对话无缝衔接
- Healthcare Navigator:记住患者病史、用药记录、治疗进展,支持长期跟踪
- Personal Finance Advisor:记住用户风险偏好、投资目标、资产配置习惯,提供个性化建议
- Writing Assistant:学习用户写作风格、常用词汇、一贯格式,保持输出风格一致
六、坑与注意
⚠️ Neo4j + SQL 双依赖
- Episodic Memory 用 Neo4j 图数据库(需要额外运维);Profile Memory 用 SQL(PostgreSQL/MySQL)
- ⚠️ 没有 Docker Compose 管理能力的话,运维复杂度显著上升
- 本地开发需要同时运行 Neo4j + SQL + MemMachine Server 三个服务
⚠️ OpenAI API Key 必填
- Server 端配置需要 OpenAI API Key(用于 embeddings 生成和 LLM 调用)
- ⚠️ Key 以明文/配置文件方式存储,需要确保服务器安全
- 离线部署需要自建 embedding 服务(当前版本未内置本地 embedding 选项)
⚠️ LangChain/LangGraph 集成成熟度待验证
- 仓库 README 列出了集成路径,但实际集成代码质量、版本兼容性需要自行测试
- ⚠️ 如遇到 LangChain 版本不兼容,可能需要降级或等官方修复
⚠️ 存储可扩展性
- 图数据库存储情景记忆,查询性能依赖 Neo4j 调优;数据量大时需要配置索引
- 暂无内置的数据导出/迁移工具(⚠️ 如果需要换存储后端,当前没有平滑迁移路径)
⚠️ 与同名商业平台的边界
- 开源仓库(Apache 2.0)与 memmachine.ai 商业平台是不同的产品
- 商业平台有额外的托管服务、UI 界面和支持;开源版本需要自行运维
⚠️ 中文文档有限
- 主要文档和社区讨论为英文;中文资料较少,调试和问题解决需要依赖英文社区
七、与同类对比
| 工具 | 存储 | 开源 | 多模态记忆 | 框架集成 | 部署方式 |
|---|---|---|---|---|---|
| MemMachine | Neo4j + SQL | ✅ Apache 2.0 | Working + Episodic + Profile | LangChain/LangGraph/CrewAI 等 | 自托管 / Docker |
| mem0 | 多种 | 部分开源 | 语义 + 关系记忆 | LlamaIndex/LangChain | 云 / 自托管 |
| letta-ai | PostgreSQL | ✅ | 状态 + 记忆 | 原生 API | 自托管 / 云 |
| Cognee | 多种 | ✅ | 记忆 + 知识图谱 | LlamaIndex | 自托管 |
| nvidia/ai-memory | PostgreSQL | ✅ | 简单记忆 | 有限 | 自托管 |
MemMachine 的差异化在于三层记忆架构(Working/Episodic/Profile 分层清晰)+ 图数据库做情景记忆(适合复杂关联查询)+ 多框架集成路径完整。劣势在于运维复杂度较高(Neo4j 强依赖)。
八、一句话推荐结论
如果你需要为 AI Agent 构建真正的长期记忆能力,且对图结构的情景记忆("上次发生了什么")和 SQL 结构的事实记忆("用户喜欢什么")有明确区分需求,MemMachine 是目前集成度最高、框架支持最全的开源方案——代价是运维复杂度(Neo4j + SQL 双依赖)和较高的接入门槛。