如果只看表层功能,OpenHuman 和 Hermes 都在讲“长期记忆”“个人 AI”“越用越懂你”。但如果拆到架构层,它们其实在解决两个不同问题:
OpenHuman 解决的是:Agent 如何快速获得你的个人上下文。
Hermes 解决的是:Agent 如何在长期使用中沉淀经验、偏好和技能。
换句话说,OpenHuman 更像是一个 个人数据记忆树 / RAG 知识库系统;Hermes 更像是一个 自我学习型 Agent 的经验管理系统。
一、先看最核心的架构分野
现代 Agent 记忆通常可以拆成三个动作:写入、管理、读取。也就是:什么信息值得存、怎么组织这些信息、什么时候把它们取出来辅助决策。2026 年一篇关于 LLM Agent Memory 的综述也把 Agent 记忆概括为与感知和行动耦合的 write–manage–read 循环。(arXiv)
放到 OpenHuman 和 Hermes 上,可以得到这个对比:
| 维度 | OpenHuman | Hermes |
|---|---|---|
| 记忆对象 | 邮件、文档、日历、代码仓库、聊天记录等外部数据 | 用户偏好、环境事实、项目约定、历史会话、任务经验、Skills |
| 写入方式 | 连接外部工具后自动同步、压缩、写入 Memory Tree | Agent 在交互和任务执行中主动写入 memory / user profile / skills |
| 存储形态 | Markdown chunks + SQLite + Obsidian vault + 层级摘要树 | MEMORY.md、USER.md、SQLite session DB、skills 文件、外部 memory provider |
| 主要目标 | 快速构建“关于你的知识库” | 长期形成“关于如何帮你的经验系统” |
| 更像什么 | 个人 RAG / AI Obsidian / Memory Graph | Agent 工作笔记 + 用户画像 + 程序性记忆 |
这就是二者最本质的区别:OpenHuman 记的是你的资料世界,Hermes 记的是它和你一起工作时学到的东西。
二、OpenHuman:从外部数据构建 Memory Tree
OpenHuman 的记忆架构是典型的 数据摄入驱动。
它的官方 README 明确强调 118+ 第三方集成,支持 Gmail、Notion、GitHub、Slack、Stripe、Calendar、Drive、Linear、Jira 等工具;每个连接都会作为 typed tool 暴露给 Agent,并且核心系统每 20 分钟遍历活跃连接,把新数据拉入 memory tree。(GitHub)
这意味着 OpenHuman 的记忆不是主要靠“你和它聊天慢慢教会它”,而是靠连接你的工作流工具后,主动把已有信息世界搬进来。
它的记忆数据流大致是:
Gmail / Notion / GitHub / Slack / Calendar / Drive ...
↓
auto-fetch 自动同步
↓
规范化为 ≤3k-token Markdown chunks
↓
打分、压缩、折叠进层级摘要树
↓
SQLite 本地存储
↓
同步生成 Obsidian-compatible Markdown vault
↓
Agent 检索、读取、使用
OpenHuman 官方说明,连接的数据会被 canonicalized 成不超过 3k token 的 Markdown chunks,然后被 scored,并折叠进 hierarchical summary trees,存储在本机 SQLite 中;同样的 chunks 还会落地为 .md 文件,放进可用 Obsidian 打开的 vault。(GitHub)
所以,OpenHuman 的设计重点不是“Agent 做完一个任务以后总结经验”,而是:
如何把用户分散在各处的数据,变成一个 Agent 可读、用户可浏览、可编辑的长期知识库。
它更像一个自动化版的 个人知识管理系统。只不过传统 Obsidian 是人手动写笔记,OpenHuman 是把你的邮件、文档、聊天、代码仓库自动压缩整理成 Agent 也能读懂的记忆树。
三、Hermes:小型常驻记忆 + 会话检索 + Skills
Hermes 的记忆架构完全不同。
它的核心不是大规模摄入外部资料,而是把 Agent 长期运行过程中学到的内容分层沉淀。官方文档说,Hermes 的 persistent memory 由两个文件组成:MEMORY.md 和 USER.md。前者用于保存环境事实、约定和学到的东西;后者用于保存用户偏好、沟通风格和期望。两者都存放在 ~/.hermes/memories/,并在 session 开始时作为 frozen snapshot 注入 system prompt。(Hermes Agent)
这套设计非常克制。Hermes 文档给出的限制是:
| 文件 | 作用 | 字符限制 |
|---|---|---|
MEMORY.md | Agent 的个人笔记:环境事实、项目约定、经验教训 | 2,200 chars |
USER.md | 用户画像:偏好、沟通风格、期望 | 1,375 chars |
这说明 Hermes 的常驻记忆不是“越多越好”,而是“少而关键”。因为这些内容会进入系统提示词,所以它必须控制 token 成本和干扰噪声。
Hermes 的基础记忆链路大致是:
用户对话 / 任务执行 / 用户纠正 / 项目经验
↓
Agent 判断是否值得长期保存
↓
写入 MEMORY.md 或 USER.md
↓
下次 session 开始时注入 system prompt
↓
影响后续行为和决策
此外,Hermes 还有一个重要补充:session search。除了 MEMORY.md 和 USER.md,Hermes 会把 CLI 和 messaging sessions 存储到 SQLite 的 ~/.hermes/state.db,并用 FTS5 做全文搜索;这些历史会话不会全部进入上下文,而是在需要时按需检索。(Hermes Agent)
这就形成了一个很清晰的分层:
常驻记忆:MEMORY.md / USER.md
↓
保存最关键、最常用、最应该一直知道的信息
历史记忆:SQLite + FTS5 session search
↓
保存所有历史会话,需要时再查
程序性记忆:Skills
↓
保存“做某类任务的方法”
Hermes 官方也把 skills 称为 procedural memory,也就是程序性记忆:它们是针对重复任务类型的可复用方法,Agent 在解决困难问题后可以创建,并在类似任务出现时自动加载。(NOUS RESEARCH)
所以 Hermes 的记忆系统不是一个单纯的知识库,而更像一个 Agent 的“成长机制”:
它记住用户是谁,记住项目环境是什么,记住以前聊过什么,更重要的是记住某类任务以后应该怎么做。
四、一个记“资料”,一个记“经验”
可以用一句话概括:
OpenHuman:用户已有数据 → 压缩整理 → 个人知识库 → Agent 使用
Hermes:Agent 工作过程 → 抽取事实/偏好/经验 → 记忆与 Skills → 下次做得更好
这也是两者体验差异的来源。
OpenHuman 追求的是 冷启动快。你连接 Gmail、Notion、GitHub、Calendar 等工具,它就能在较短时间内获得你的邮件、文档、会议、仓库、消息上下文。OpenHuman README 甚至直接强调 “Context in minutes, not weeks”,也就是不需要等 Agent 观察你几周,而是通过同步和压缩快速获得上下文。(GitHub)
Hermes 追求的是 长期使用后变强。它的官方文档称 Hermes 是 self-improving AI agent,会从经验中创建 skills,在使用中改进它们,并跨 session 建立用户模型。(Hermes Agent)
所以你可以这样理解:
OpenHuman 的记忆像“外部大脑”。
它把你的资料、邮件、文档、聊天、日历变成一个可检索的个人知识库。
Hermes 的记忆像“工作经验”。
它把你们一起完成任务时形成的偏好、约定、错误修正和操作流程沉淀下来。
五、从 RAG 角度看:OpenHuman 更像 RAG,Hermes 更像 Agent Memory Loop
如果用 RAG 系统的语言重新描述,OpenHuman 的架构非常接近一个个人化 RAG 系统:
Connectors
→ Auto-fetch
→ Markdown chunking
→ Compression / scoring
→ Hierarchical summaries
→ SQLite / Obsidian vault
→ Retrieval for agent
它的关键问题是:如何把异构个人数据变成可管理、可检索、可解释的上下文。
Hermes 则更像 Agent Memory Loop:
Interaction
→ Memory write decision
→ Persistent memory update
→ Session search
→ Skill creation / improvement
→ Future task behavior changes
它的关键问题是:如何让 Agent 从一次次任务中形成稳定的偏好、经验和技能。
因此,OpenHuman 的记忆更偏 declarative memory,也就是“知道什么”;Hermes 的记忆除了 declarative memory,还更强调 procedural memory,也就是“知道怎么做”。
六、工程取舍:OpenHuman 更重数据治理,Hermes 更重记忆筛选
OpenHuman 的难点在于数据摄入和组织。它要处理大量来自不同工具的数据:邮件、文档、日历、聊天、代码仓库。这类系统的核心挑战包括:
-
如何避免同步太多垃圾信息;
-
如何决定哪些 chunk 重要;
-
如何维护层级摘要树的一致性;
-
如何让用户能审查和编辑记忆;
-
如何保证本地隐私和权限隔离。
Hermes 的难点则在于记忆写入策略。因为它的常驻记忆空间很小,所以每次写入都要非常克制。Hermes 文档也明确写到,memory 有严格字符限制,满了以后需要合并、替换或删除旧条目;同时 memory entries 还会做安全扫描,防止 prompt injection、credential exfiltration 等危险内容被写入,因为这些记忆会注入系统提示词。(Hermes Agent)
这反映出两种完全不同的工程哲学:
| 工程问题 | OpenHuman | Hermes |
|---|---|---|
| 最大挑战 | 大规模个人数据如何整理成有用上下文 | 少量高价值记忆如何长期稳定影响行为 |
| 风险 | 信息过载、摘要失真、隐私边界、同步污染 | 错误记忆、过度固化偏好、prompt 注入、技能误用 |
| 优化方向 | chunking、summary tree、检索质量、用户可编辑性 | memory filtering、consolidation、session search、skill evolution |
七、该怎么选?
如果你的目标是:
“我希望 Agent 快速理解我的邮件、日历、文档、代码仓库、团队聊天和工作上下文。”
那 OpenHuman 的记忆架构更适合。它的价值在于把个人数据世界统一成一个可检索的 Memory Tree。
如果你的目标是:
“我希望 Agent 长期跟我工作,记住我的偏好、项目习惯、踩坑经验,并越来越会处理重复任务。”
那 Hermes 的记忆架构更值得研究。它的价值在于把交互过程沉淀成常驻记忆、历史检索和可复用 Skills。
更进一步,如果你是从 Agent 开发视角学习,我会这样看:
OpenHuman 值得研究的是:个人知识库如何产品化。
重点看 connectors、auto-fetch、chunking、summary tree、Obsidian vault、local-first 数据管理。
Hermes 值得研究的是:Agent 如何自我改进。
重点看 persistent memory、session search、skills、memory provider、写入/合并/遗忘策略。
结论
OpenHuman 和 Hermes 都在做“长期记忆”,但不是同一种长期记忆。
OpenHuman 是把用户的外部数据世界变成 Agent 可用的长期上下文。
它偏知识库、偏 RAG、偏数据摄入,目标是让 Agent 快速拥有“关于你”的背景资料。
Hermes 是把 Agent 与用户长期协作中产生的事实、偏好、历史和技能沉淀下来。
它偏经验系统、偏自我学习、偏 procedural memory,目标是让 Agent 越用越会做事。
所以,最准确的区别不是“谁的记忆更强”,而是:
OpenHuman 让 Agent 更快认识你;Hermes 让 Agent 更久以后更懂怎么帮你。