上个月我写了 Hermes 接入 mem0 的教程,后台收到不少反馈说确实好用。但也有读者问我:有没有完全本地化的方案?不想把记忆数据传到云端。
当时我还没找到特别满意的替代品,直到最近刷到一个项目——agentmemory。
看了它的 benchmark 数据和架构设计之后,我觉得有必要再出一篇。不是因为 mem0 不好,而是这两个工具的定位差异比我想象的大,值得掰开了说。
与 mem0 对比
| mem0 | agentmemory | |
|---|---|---|
| 定位 | 云端记忆层 API | 本地记忆引擎 + MCP 服务 |
| 检索准确率 | 68.5%(LoCoMo) | 95.2%(LongMemEval-S) |
| 数据存储 | 云端(可自部署) | 默认本地 SQLite |
| 外部依赖 | 需要 Qdrant/pgvector | 零依赖,自带嵌入模型 |
| 自动捕获 | ❌ 需要手动 add() | ✅ 12 个生命周期 Hook |
| 搜索策略 | 向量 + 知识图谱 | BM25 + 向量 + 知识图谱(三路融合) |
| 多 Agent 共享 | API 级别 | MCP + REST + 信号协调 |
| 实时查看器 | 云端 Dashboard | 本地 http://localhost:3113 |
| Token 效率 | 按集成方式不同 | ~170K tokens/年,约 $10 |
| 免费额度 | 个人够用 | 完全免费(本地运行) |
一句话总结:mem0 是“省心挂载”,agentmemory 是“本地基建”。
mem0 胜在开箱即用、云端 Dashboard 直观看记忆、Python/TS SDK 生态大。agentmemory 胜在检索精度高、数据不出本地、自动捕获不需要你手动调 add()、而且能跨 Agent 共享记忆——你 Hermes 里积累的记忆,Claude Code 和 Cursor 也能用。
如果你之前已经接了 mem0 用着还行,不一定要换。但如果你对数据隐私有要求,或者想要更强的检索能力和自动化程度,agentmemory 值得认真看一下。
安装流程
agentmemory 基于 Node.js,底层用了一个叫 iii-engine 的本地引擎做存储和检索,不需要额外装数据库。
第一步:安装 agentmemory
npm install -g @agentmemory/agentmemory
如果你是 macOS/Linux 遇到权限问题:
sudo npm install -g @agentmemory/agentmemory
或者通过 npx 安装:
npx @agentmemory/agentmemory
装完之后启动记忆服务:
agentmemory
默认跑在 localhost:3111,这时候它就是一个本地记忆服务器了。
第二步:配置 Hermes
打开 ~/.hermes/config.yaml,加上这两段:
mcp_servers:
agentmemory:
command: npx
args: ["-y", "@agentmemory/mcp"]
memory:
provider: agentmemory
第三步:验证
curl http://localhost:3111/agentmemory/health
返回 {"status":"healthy"} 就说明服务正常。
再检查 Hermes 侧:
hermes memory status
看到 provider 显示 agentmemory 就成功了。
第四步:实时查看记忆
浏览器打开 http://localhost:3113,你能看到一个实时 Viewer,记忆在对话过程中会动态出现。这点比 mem0 的云端 Dashboard 更即时,而且完全在本地。
更简单的安装方式
直接将下面的指令扔给 Hermes 就好:
Install agentmemory for Hermes. Run `npx @agentmemory/agentmemory` in a separate terminal to start the memory server on localhost:3111. Then add this to ~/.hermes/config.yaml so Hermes can use agentmemory as an MCP server with all 51 memory tools:
mcp_servers:
agentmemory:
command: npx
args: ["-y", "@agentmemory/mcp"]
memory:
provider: agentmemory
Verify with `curl http://localhost:3111/agentmemory/health`. Open http://localhost:3113 for the real-time viewer. For deeper 6-hook memory provider integration (pre-LLM context injection, turn capture, MEMORY.md mirroring, system prompt block), copy integrations/hermes from the agentmemory repo to ~/.hermes/plugins/agentmemory.
进阶:6-Hook 深度集成
上面的 MCP 方案已经能用了,但如果你想要更强的自动化——比如每次对话前自动注入相关记忆、对话结束后自动捕获要点、MEMORY.md 写入自动同步到 agentmemory——可以用它的插件模式。
从 agentmemory 仓库里把 Hermes 集成目录复制过来:
cp -r integrations/hermes ~/.hermes/plugins/agentmemory
这个插件会自动注入 6 个 Hook:
- prefetch() — 每次 LLM 调用前注入相关记忆
- sync_turn() — 每轮对话自动捕获
- on_session_end() — 会话结束时标记待总结
- on_pre_compress() — 压缩上下文前重新注入
- on_memory_write() — MEMORY.md 写入自动同步
- system_prompt_block() — 会话开始时注入项目画像
说白了就是:你什么都不用管,它自己记、自己找、自己注入。这比 mem0 的手动 add() 模式省心不少。
跟 mem0 的核心差异,我觉得值得展开说
1. 数据主权
mem0 默认走云端,虽然也有自部署选项,但大多数人用的是它的 SaaS 版本。agentmemory 默认就是本地,SQLite 存储,零外部依赖。对在意数据隐私的人来说,这是根本性的区别。
2. 检索精度
agentmemory 在 LongMemEval-S 基准上跑出了 95.2% 的 R@5,用的是 BM25 + 向量 + 知识图谱的三路融合检索。mem0 在 LoCoMo 基准上是 68.5%。虽然两个基准不完全一样(这个得说清楚),但差距摆在那里。实际用下来,agentmemory 找记忆确实更准,尤其是跨会话的模糊回忆。
3. 自动 vs 手动
mem0 的工作方式是:对话结束后,它从对话中提取关键信息存下来。但这个过程不是完全自动的,有时候需要你主动调 add() 来确保重要信息被记住。
agentmemory 走的是 Hook 模式,12 个生命周期钩子覆盖了从会话开始到结束的全流程,基本不需要你干预。
4. 跨 Agent 协作
这是 agentmemory 的一个杀手级特性。它通过 MCP + REST + 信号机制实现了多 Agent 记忆共享。也就是说,你在 Hermes 里积累的项目经验,Claude Code 也能检索到。反过来也一样。
mem0 虽然也有 API,但没有这种原生的跨 Agent 协调能力。
5. Token 消耗
agentmemory 声称一年的 Token 消耗约 170K,成本约 $10(用本地嵌入模型的话是 $0)。因为它只注入相关记忆,而不是把所有历史都塞进上下文。mem0 按集成方式不同,消耗不太固定。
什么人该选 agentmemory?
- 对数据隐私有要求,不想记忆上传云端
- 想要更高的检索精度
- 同时在用 Hermes + Claude Code / Cursor 等多个 Agent
- 愿意多花 5 分钟配置,换来长期自动化
什么人继续用 mem0 就好?
- 已经跑起来了,用着没毛病
- 喜欢云端 Dashboard 随时看
- 主要就用 Hermes 一个 Agent,不需要跨 Agent 共享
- 不想自己维护本地服务
常见问题
1. agentmemory 和 mem0 能同时用吗?
不建议。memory.provider 只能选一个,同时挂两个容易出冲突。选一个用到底就好。
2. 重启后记忆会丢吗?
不会。agentmemory 的数据存在本地 SQLite 里,重启服务后记忆还在。但注意别手滑执行 agentmemory remove,那是真删。
3. 没有 Node.js 环境怎么办?
先装 Node.js(推荐 v18+),macOS 用 brew install node,Linux 用 nvm 或者直接装。
4. 之前 mem0 里积累的记忆能迁移过来吗?
目前没有官方的迁移工具。不过 agentmemory 的自动捕获会在后续对话中逐渐积累新记忆,旧的 mem0 记忆可以手动导出后通过 API 批量导入。
写在最后
记忆系统这东西,本质上是在回答一个问题:你的 Agent 到底了不了解你?
mem0 是一个不错的答案,agentmemory 是另一个方向的答案。前者省事,后者省心。如果你之前看了我那篇 mem0 教程已经接入了,这次可以两个都试试,对比一下谁更贴合你的使用场景。
我个人觉得如果你只用 Hermes 聊天,mem0 够了。但如果你是重度用户,同时跑好几个 Agent,agentmemory 的本地化 + 跨 Agent 共享 + 自动捕获这套组合拳,长期来看更香。
项目地址:
https://github.com/rohitg00/agentmemory
小贴士:agentmemory 自带一个 demo 命令,装完后跑
agentmemory demo可以快速体验它的记忆召回效果,推荐先试试再决定。
123