MARM-Systems
为 Claude/Codex 等 MCP 客户端提供持久记忆层,让 AI 跨会话记住项目背景、设计决策和编码规范
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为 Claude/Codex 等 MCP 客户端提供持久记忆层,让 AI 跨会话记住项目背景、设计决策和编码规范
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:MARM Dashboard 界面,支持浏览、搜索和编辑所有记忆条目
想象一个场景:你花了半小时跟 Claude Code 讨论数据库设计优化方案,关掉终端去吃了个午饭,回来继续问 Claude「上次我们讨论的那个索引策略」,它一脸茫然——因为你换了个新的对话窗口。这种「AI 失忆症」是所有 AI 编程工具用户的共同痛点。
MARM-Systems 正是为了解决这个问题而生。它是一个专为 MCP(Model Context Protocol)客户端设计的本地优先持久记忆层,让 Claude、Codex、Gemini、Qwen 以及各种 IDE 代理在多次对话之间保持上下文连续性,不再需要重复解释项目背景、编码规范或技术决策。
MARM 由独立开发者 Ryan Lyell 创建,核心洞察来自日常使用 AI 编程工具时的一个高频痛点:AI Agent 虽然能在单次会话中保持上下文,但一旦开启新对话,所有积累的项目理解、设计决策和中间结论都会丢失。团队成员之间共享记忆更是奢望——每个 Agent 实例都是一座「记忆孤岛」。
作者从向量数据库和语义搜索技术中找到灵感,构建了一套完整的记忆基础设施。这套系统于 2025 年初开源,迅速获得了 300+ GitHub Stars,并被收录到 MCP 官方注册表(registry.modelcontextprotocol.io),成为 MCP 生态中记忆管理领域的标杆项目。
MARM 提供 7 个精心设计的 MCP 工具,涵盖记忆的写入、检索、总结、清理等完整生命周期:
| 类别 | 工具 | 功能 |
|---|---|---|
| 记忆检索 | marm_smart_recall | 混合召回,支持精确查询(配置键、命令、API名)和语义搜索,自动重排序 |
| 日志记录 | marm_log_entry | 写入结构化会话日志,支持主题路由和摘要缓存 |
| 日志查看 | marm_log_show | 查看所有日志和会话(可过滤) |
| 摘要生成 | marm_summary | 为 LLM 对话生成缓存摘要 |
| 笔记本 | marm_notebook | 统一笔记本管理:添加、使用、展示、清空 |
| 记忆压缩 | marm_compaction | Agent 辅助记忆清理:查看候选、审查、暂存、应用或丢弃 |
| 删除 | marm_delete | 删除日志会话、条目或笔记本内容 |
这些工具的巧妙之处在于:不需要手动调用。用户只需用自然语言告诉 AI 你想要什么("把这段代码记到笔记本里供以后参考"、"搜索一下我们昨天讨论的身份认证方案"),AI Agent 会自动选择合适的工具完成任务。
图2:MARM 的 7 个 MCP 工具,覆盖记忆全生命周期
MARM 的存储层基于 SQLite WAL 模式(Write-Ahead Logging),兼顾并发安全和高性能写入。所有记忆同时维护两套索引:
all-MiniLM-L6-v2 轻量级编码器,将记忆转为 384 维向量,支持语义相似度搜索召回流程采用混合策略:系统自动识别查询类型——如果是配置键、命令路径等精确词汇,直接走 FTS;如果是概念性描述,则启动语义召回,并按相关性重排序返回 Top 结果。基准测试显示,在 4000 条记忆规模下,P95 召回延迟仅 31.3ms,性能相当出色。
多 Agent 场景下,MARM 通过写入队列(Write Queue) 序列化并发写入,配合连接池管理,避免 SQLite 写冲突。HTTP Swarm 模式下支持 200 RPM(--swarm)和 600 RPM(--swarm-max)两种速率预设,适应不同规模的多 Agent 协作。
MARM 提供了极其灵活的部署选项,适应从个人开发者到企业团队的各种场景:
Solo 用户(pip 安装):
pip install marm-mcp-server
python -m marm_mcp_server
# 连接 Claude Code
grok mcp add --transport http marm-memory http://localhost:8001/mcp
多 Agent 共享记忆(Swarm 模式):
python -m marm_mcp_server --swarm
Docker 一键部署(推荐生产使用):
# 生成 API Key
docker run --rm lyellr88/marm-mcp-server:latest --generate-key
# 启动服务
docker run -d --name marm-mcp-server \
-p 127.0.0.1:8001:8001 \
-e SERVER_HOST=0.0.0.0 \
-e MARM_API_KEY=your-key \
-v ~/.marm:/home/marm/.marm \
lyellr88/marm-mcp-server:latest
同时提供独立的 Web Dashboard(运行于 :8002 端口),用于可视化浏览、搜索、编辑记忆,查看实时写入队列状态,零代码管理记忆数据。
MARM Dashboard 是独立于 MCP 服务器运行的 Web 界面,直接操作同一个 ~/.marm/marm_memory.db 数据库,不依赖 MCP 协议。功能包括:浏览和搜索所有记忆、管理会话和协议日志、笔记本 CRUD 操作(内置编辑器)、一键清理(附带数量确认)、实时查看写入队列状态。
最佳适用场景:
已知局限:
MARM 的出现呼应了 AI Agent 领域的一个重要趋势:从「对话式单次交互」向「持久状态多轮协作」演进。OpenAI 的 GPTs、Anthropic 的 Claude Artifacts、各大 IDE 的 Agent 模式,都在探索让 AI 记住更多、关联更广。MARM 作为 MCP 生态中的记忆中间件,填补了一个关键空白——让任何 MCP 兼容的客户端都能获得持久记忆能力,而无需自己实现向量存储和检索逻辑。
随着 MCP 协议被更多工具和平台采纳(Claude、Codex、Gemini、Qwen、Cursor 等均已支持),MARM 的价值有望持续放大。如果你经常在多个 AI 对话之间切换、受够了重复解释项目背景,MARM 值得一试。