OpenClaw 与 Hermes Agent 记忆对比(2026):文件、上限、迁移

3 min read

OpenClaw 和 Hermes Agent 记忆对比:文件结构、字符上限、搜索、整理、外部记忆提供方和迁移。内容来自两个项目的文档,2026 年 10 月核对。

OpenClaw 与 Hermes Agent 的记忆本质上是两种思路。Hermes 把记忆做得很小、很固定:两个有硬性上限的文件,以冻结快照的形式加载,外加对旧会话的全文搜索。OpenClaw 让记忆不设上限:Markdown 文件和每日笔记,支持混合搜索,并由后台任务把最好的笔记提升到 MEMORY.md。

两者都是开源(MIT)的 agent,都在你自己的电脑上运行,并通过聊天软件交互。Hermes 还有官方的桌面应用,与命令行共用同一套记忆。OpenClaw 来自 Peter Steinberger 和 OpenClaw Foundation;Hermes Agent 来自 Nous Research。下面的事实来自两个项目的文档,2026 年 10 月核对。

OpenClaw 和 Hermes 的记忆有什么不同?

两者都把记忆存成 agent 自己写的纯文本。Hermes 把记忆限制得很死,始终在上下文里约 1,300 个 token,其余内容都当作可搜索的历史。OpenClaw 让记忆以文件的形式增长,启动时只加载整理过的文件,其余内容通过语义和关键词搜索找回。

两者没有哪个“更好”。Hermes 的做法让提示词保持小巧,也让提示缓存保持稳定。OpenClaw 的做法能存更多内容,代价是需要 embedding 提供方和索引。两者都处在 AI agent 记忆入门 所讲的光谱的简单一端。

并排对比

Hermes AgentOpenClawHindsight(两者都可用的插件)
始终加载的文件MEMORY.md(agent 笔记)、USER.md(用户资料)MEMORY.md(持久事实)、USER.md(可选资料)无;记忆库在服务器上,按查询召回
位置~/.hermes/memories/agent 工作区,默认 ~/.openclaw/workspaceHindsight Cloud、你自己的服务器,或本地嵌入式守护进程
大小上限2,200 和 1,375 个字符,由工具强制执行启动预算;超出则注入的副本被截断没有固定上限;召回内容按你设的 max_tokens 预算裁剪
会话中途的更新写入磁盘;提示在下次会话才更新(冻结快照)文件写入磁盘;建立索引后搜索才能看到新笔记retain 存入事实;之后的召回都能看到
每日或情景笔记无;完整会话存在 SQLite 中memory/YYYY-MM-DD.md 每日笔记经历和世界事实,带时间和实体
搜索session_search:对旧会话做 SQLite FTS5 全文搜索memory_search:向量 + BM25 混合,带时间衰减、MMR语义 + BM25 + 图 + 时间并行搜索,融合后重排序
需要 embedding 吗不需要可选(默认 OpenAI;可用本地 GGUF)需要,由服务器处理
写入工具memory 工具:添加、替换、删除agent 写 Markdown 文件;memory_get 读取retain:LLM 提取事实、时间、实体和关系
整理记忆满了时 agent 必须先整理;后台复查dreaming 任务把笔记提升到 MEMORY.md;压缩前先 flush后台整理为观察和心智模型
写入审批memory.write_approval: true 会暂存写入dreaming 的输出进入 DREAMS.md 等待审阅未列出
安全扫描条目会扫描注入、外泄和不可见 Unicode不可信的候选内容不会被提升未列出
外部提供方同一时间只能用一个:Honcho、OpenViking、Mem0、Hindsight、Holographic、RetainDB、ByteRover、Supermemory、Memori内置、Honcho、LanceDB 引擎;Memory Wiki;第三方插件(Mem0、Hindsight)它本身就是提供方:hermes plugins install hindsight 或 @vectorize-io/hindsight-openclaw

Hermes 如何处理记忆

Hermes 把始终在线的部分保持得很小。agent 通过记忆工具添加、替换或删除简短的条目。如果某次写入会超出上限,就返回错误,让 agent 先做整理。Hermes 文档 解释了冻结快照:它“保留 LLM 的前缀缓存”,所以系统提示在会话中途不会变化,缓存的 token 也保持便宜。

更大的内容放进会话历史。每个命令行和聊天会话都存进 ~/.hermes/state.db,session_search 用全文搜索找到原始消息。不需要 embedding,也不需要提取模型。Skills 保存 agent 学到的流程,是 agent 自己写和修改的 SKILL.md 文件;Hermes Agent skills 讲了它们如何创建、加载和修剪。完整说明见 Hermes Agent 记忆。

OpenClaw 如何处理记忆

OpenClaw 写得更多,也找得更多。每日笔记记录正在进行的上下文。MEMORY.md 和 USER.md 在启动时加载。所有内容都建立了 SQLite 索引,memory_search 把向量相似度和 BM25 合并,再乘以 30 天半衰期的时间衰减和重要性分数,并用 MMR 去掉近似重复的内容。

有两个后台步骤让它保持整洁:压缩前的记忆 flush 会请 agent 保存重要内容;dreaming 会把通过分数、频次和多样性检查的短期笔记提升到 MEMORY.md。完整说明见 OpenClaw AI agent 记忆。

哪个记得更好?

两个内置系统之间没有公开的正面对比基准,所以任何说某个“记得更好”的说法都只是观点。从设计可以推断的是:

  • 提示中的准确近期事实:差不多。两者都在启动时加载整理过的文件。
  • 三周前说过、但措辞不同的内容:OpenClaw 更有优势,因为向量搜索匹配含义,而 Hermes 的 FTS5 匹配词语。
  • 精确的标识符和错误字符串:两者都可以;FTS5 和 BM25 都能匹配精确的词元。
  • 每轮的 token 成本:Hermes 更低,也更可预测,这是设计上的选择。
  • 会话中途看到你刚添加的事实:Hermes 会在工具响应里立即显示,但要等到 /new 之后才会出现在系统提示里。

如果以后不够用,两者都可以接入外部提供方。选哪一个,和选任何记忆层是同一个决定。LLM 记忆对比 讲了 Mem0、Honcho、Hindsight、Supermemory 等;Honcho LLM 记忆 讲了它 3.4 版本的变化。

Hindsight 适合哪里

两个内置系统都刻意保持简单。当 agent 运行几个月,历史超出了 2,200 字符的文件或一堆每日笔记时,外部提供方就该接手。Hindsight 就是其中之一,两个 agent 都能接入:它在 Hermes 插件目录里(hermes plugins install hindsight),它的 OpenClaw 插件 可以运行本地嵌入式守护进程,复用你已经付费的 LLM。

它比内置系统多出的能力:

  • 长历史。 它报告 LongMemEval 94.6 和 BEAM 10M 64.1;Mem0 自己的对比页给出 Mem0 在 BEAM 10M 上为 48.6。分数均为厂商报告。
  • 保留证据的整理。 相关事实会合并成带原文引用和证明计数的观察,而不是让 agent 手工改写 MEMORY.md。
  • 四路搜索,而不是一路。 召回同时进行语义、关键词、图和时间范围搜索,所以“我上周说过的部署内容”不需要原文措辞也能找到。
  • 开源、可本地运行。 MIT 许可,所有功能都在开源服务器中,支持 25 家以上 LLM 提供方,包括 Ollama。

两个 agent 使用同样的工具(Hindsight v1.2.0)

从 Hindsight v1.2.0(2026 年 11 月 3 日)起,OpenClaw 插件提供与 Hermes 插件相同的三个记忆工具,名称和参数一致(#5965)。所以同一个记忆库可以在两个 agent 之间迁移,而不需要改变 agent 使用它的方式。两个插件现在的功能如下:

Hermes 插件OpenClaw 插件
agent 工具hindsight_retain、hindsight_recall、hindsight_reflect相同的三个,另加七个知识库工具(浏览、搜索、读取、创建和编辑页面;只有设置 allowKnowledgeDelete: true 才能删除)(#6004)
工具与自动召回memory_modememoryMode:hybrid(默认:自动召回加工具)、context(只自动召回)、tools(只用工具)
后台运行Cron 运行、看板工作者和 delegate_task 子 agent 不会保存到记忆库(#6000)Cron、心跳和子 agent 会话默认跳过;设置 skipOperationalSessions: false 后它们可以使用记忆;会话模式可以把它们设为只读(#5963)
保存失败时自动保存的内容会保留并重发,最多尝试 5 次,且不会重复存储;内容保存在内存中,所以服务器宕机时如果进程崩溃,这些内容仍会丢失(#6013)v1.2.0 的更新说明中没有相关变化

这里最需要注意的限制是:它比 Hermes 固定的约 1,300 个 token 消耗更多 token。每次 retain 都会调用 LLM,而且召回默认返回的上下文比 Mem0 多(按 Mem0 的测量约 4 倍)。如果提示成本很重要,把 max_tokens 设低。更多内容见 Hindsight 详解。

两者之间如何迁移

两个项目都让切换变得容易:

  1. OpenClaw 到 Hermes:从 Hermes v0.22.5(2026 年 10 月 22 日)起,导入器是插件,不再属于核心。运行 hermes plugins install agent-importers,然后运行 hermes import-agent openclaw(插件装好后,旧命令 hermes claw migrate 仍然可用)。全新安装时,hermes setup 会找到 ~/.openclaw,询问“Import your setup from OpenClaw?”,并替你安装插件。它总会先显示预览;加上 --dry-run 就只停在预览。
  2. Hermes 到 OpenClaw:在 OpenClaw 控制界面中,打开 Settings → Import Memory。它会把 Hermes 的 MEMORY.md 和 USER.md 复制到 memory/imports/hermes/,可以搜索,但不会合并进 OpenClaw 自己的 MEMORY.md。

根据 Hermes 迁移指南,OpenClaw 的导入会这样处理记忆:

OpenClaw在 Hermes 中去向方式
workspace/MEMORY.md~/.hermes/memories/MEMORY.md拆分成条目,与已有内容合并,去掉重复项
workspace/USER.md~/.hermes/memories/USER.md同样的合并方式
workspace/memory/*.md 每日笔记~/.hermes/memories/MEMORY.md所有每日文件合并进主记忆
workspace/SOUL.md~/.hermes/SOUL.md原样复制
Skills(4 个位置)~/.hermes/skills/openclaw-imports/默认跳过重名的 skill
API keys~/.hermes/.env只有加上 --migrate-secrets 才会导入

在写入任何内容之前,它会把 ~/.hermes/ 打包成 zip,存到 ~/.hermes/backups/(加上 --no-backup 可关闭),所以糟糕的导入可以用 hermes import 撤销。

迁移后,请检查哪些内容被带过来了。2,200 字符的 Hermes 记忆可以干净地映射到 OpenClaw。反方向才是问题:所有每日笔记都会合并进一个 MEMORY.md,而 Hermes 把这个文件限制在 2,200 字符。请把它们精简成几条长期有效的条目,或者把长历史转到外部提供方(见 Hindsight 适合哪里)。

这个插件也能从 Claude Code、Codex CLI 和 Cursor 导入。它们的指令文件(CLAUDE.md、AGENTS.md、Cursor rules)以及 Codex 的 memories/*.md 会变成 Hermes 的记忆条目,而 hermes import-agent --sync 会同步之后的改动。

如何选择

如果你想要一份一分钟就能读完的记忆、可预测的 token 用量,以及很强的内置 skill 系统,选 Hermes。如果你想让 agent 记一本不断增长的日记,并能按含义找回旧笔记,而且你能接受运行 embedding 提供方(或本地模型),选 OpenClaw。两者里,记忆都只是指导,不是强制规则;OpenClaw 的文档也明确这么说。对于硬性规则,请使用各 agent 自己的审批和沙箱设置。如果其中任何一个在几个月的使用中忘得太多,就添加 Hindsight 作为提供方,而不是换 agent。另外,由于两个 agent 都会把聊天和网页中的内容写入记忆,在给它们访问不可信输入之前,请先阅读 记忆注入攻击。