上个月我写了 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