Hermes Agent vs. OpenClaw,从记忆系统对比有什么优势?

张开发
2026/4/20 14:18:42 15 分钟阅读

分享文章

Hermes Agent vs. OpenClaw,从记忆系统对比有什么优势?
最近Hermes Agent又开始火了总看到有人把Hermes和之前火热的小龙虾对比。Hermes vs. OpenClaw 的核心区别只有一个架构设计哲学。OpenClaw 是广度优先的任务执行器Skills是人工编写的静态文件记忆是基础的Markdown 文件存储。Hermes 是深度优先的自学习体核心是那个闭环执行 评估 提取 精炼Skills 由 Agent自动从任务经验中生成记忆是多层结构会话/持久/技能越用越聪明。这篇文章会展开讲 Hermes Agent 的记忆系统、持续学习和 persona人设而这些正是 OpenClaw 缺失设计原则的地方。Hermes 在 LLM 外面包了一层持久化层这一层围绕四种不同的知识类型组织每种类型都有各自的存储、检索和失败模式。最终得到的是一个能够积累事实、教会自己流程、回忆过往经历并在跨平台和跨时间中维持身份一致性的 agent。希望你看完以后能弄清这些火热的智能体的背后原理而无需慌张也不用辛苦去追这些热点因为其背后的技术原理基本上还算稳定。1 知识架构Hermes 把知识拆成四个 store对应认知科学里一个很有名的分类法声明式什么是真的、程序式事情怎么做、情景式发生过什么和身份它是谁。这种拆分不是比喻而是一条在系统提示词层面被强制执行的工程约束。声明式记忆存在两个有边界的纯文本文件里MEMORY.md2200 字符存环境事实USER.md1375 字符存用户画像数据外加云端持久化用于跨平台保存。这部分由 agent 自己整理并且始终出现在系统提示词里。程序式记忆存在SKILL.md文件里**没有大小上限****由 agent 创建**按需加载。复杂任务完成之后agent 会自己写入这部分。情景式记忆被动记录到 SQLite 中并带有 FTS5 全文搜索。每条消息都会进去。只有当 agent 需要回忆过去上下文时才会搜索它。身份由多层提示词拼出来SOUL.md、人格预设、平台提示以及 Honcho 持续演化的 AI peer 表征。始终存在。从不搜索。就在那里。这些 store 之间的路由是确定性的。当 agent 遇到新信息时它会走一棵严格的决策树这套路由在_build_system_prompt()run_agent.py:1825-1966里强制执行。用户事实 →USER.md1375 字符 Honcho 混合写入。流程 → 如果是 5 次以上工具调用就走skill_manage(create)。环境事实 →MEMORY.md2200 字符。任务状态 → 不持久化它已经通过 FTS5 自动触发器存在SessionDB里了。所有写入都会经过tools/memory_tool.py里的_scan_memory_content()扫描。这是关于用户的吗→USER.md。这是一个可复用流程吗→ Skill。这是一个环境事实吗→MEMORY.md。这是任务特定状态吗→ 不存它已经在 session DB 里了。这很重要因为不同知识类型有不同的经济考量声明式事实存起来便宜但保持最新很贵程序式知识获取起来很贵但复用起来很便宜。把它们压进同一个 store就像大多数框架把所有东西都扔进向量数据库那样会制造随着使用量增长而扩大的检索噪音。2 本地记忆两个文件。总共 **3575 个字符。**这就是声明式记忆的全部预算。**这个约束本身就是设计。**有限 store 强迫 agent 做筛选。它不能记下每一个细节必须决定什么是重要的而且这件事受优先级规则支配先用户纠正再偏好再环境事实最后才是流程备注。每一条 entry 都是精挑细选而来。三种操作add带重复拒绝、replace子串匹配 预算检查、remove。**没有 read**因为记忆始终在系统提示词里可见。冻结快照模式。记忆会在 session 开始时从磁盘加载一次并作为冻结快照注入系统提示词。session 中途的写入会进磁盘但不会更新系统提示词。为什么因为前缀缓存的稳定性。系统提示词会在每一轮被缓存。你一改它缓存就失效后面每次 API 调用都要付完整的重新处理成本。冻结快照用 session 内一致性去交换缓存效率赌的是现在存下来的记忆在未来的 session 里更重要。这和人类睡眠期间的记忆巩固之间的类比并不只是表面相似。agent 的“白天”就是 session。它的“睡眠”则是 session 之间的间隙快照会在那个时候解冻。**nudge interval。**什么会触发主动保存一个轮次计数器。nudge_interval默认 10会定期插入提醒让 agent 评估最近有没有什么值得持久化。flush_min_turns默认 6则防止在很短的 session 里过早 flush。两者组合起来形成一种节奏工作 → nudge → 评估 → 写盘 → 继续。**安全扫描。记忆文件会跨 session 存活所以它们是高价值攻击目标。**每次写入之前_scan_memory_content()都会检查提示词注入模式、数据外传命令、SSH 后门模式和不可见 Unicode 字符。通过os.replace()fsync()实现的原子写入可以保证并发读者永远看不到一个部分写完的文件。3 一个真实的 session 长什么样架构描述是静态的。下面看在一个真实的大约 25 轮 session 里这些部分是如何按顺序触发的第 1 到第 2 轮用户要一个导航栏然后纠正了配色方案“用深色背景我讨厌浅色主题。” 计数器递增。第 4 到第 10 轮又过了 8 轮在调布局。到第 10 轮nudge 触发。agent 评估对话决定深色主题偏好值得保留于是在后台把 “User hates light themes” 写进USER.md。系统提示词不会变化**冻结快照继续保持**但磁盘上的文件从此就会把这个偏好带到未来所有 session 里。第 11 到第 22 轮继续工作。token 估算值跨过 50% 阈值。压缩触发。Phase 1sentinel 触发辅助模型扫描中间轮次flush 额外记忆。Phase 2中间轮次由 Gemini Flash 总结首尾部分被保护。Phase 3session 在 SQLite 中分裂系统提示词从磁盘重新加载此时同时吸收了 nudge 写入和 Phase 1 flush 的内容一个新的前缀缓存开始。第 23 轮及之后agent 拥有**更少的原始轮次但拥有更多持久知识。**下一个 session哪怕是几天后加载USER.md时深色主题偏好从第一轮开始就已经在那里了。不需要重新解释。4 双 peer 模型本地记忆很快但受平台绑定。为了跨 session 建模Hermes 集成了 Honcho。大多数 agent 记忆系统只建模用户。Honcho 建模双方。它有一个 user peer关于用户是谁的持续演化表征和一个 AI peer关于 Hermes 是谁的持续演化表征。两边都设置了observe_meTrueHoncho 会观察双方说了什么并从被观察到的行为中构建表征。这提供了一个理解其意义的框架后训练并不会创造一个全新的实体它只是从预训练学到的人格空间里进一步精炼。Hermes 在应用层把某种版本的这个过程做成了系统。agent 的身份不只是声明在配置文件里它还会从真实行为中被观察、积累和更新。意图SOUL.md给出目标。观察到的行为Honcho 的 AI peer反映现实。两者之间的漂移是可见的。预取循环。拉取 Honcho 上下文需要一次 HTTP 往返。Hermes 会在每轮结束时启动后台 daemon 线程去预取上下文和 dialectic 结果。下一轮会通过 destructive read 把它们消费掉。热路径上没有 HTTP 延迟。只有第一轮要付出冷启动成本。5 技能系统**声明式记忆存事实。情景式记忆存 transcript。两者都不存流程。**Hermes 与典型 agent 的最大分歧就出现在这里。一个 Skill 是一个带 YAML frontmatter 的结构化SKILL.md按类别存储在~/.hermes/skills/下。它的生命周期是一个闭环读路径tools/skills_tool.py大约 900 行——skill_view带 frontmatter 解析Tier 1 索引由agent/prompt_builder.py里的build_skills_system_prompt()构建。写路径tools/skill_manager_tool.py659 行——create/patch/edit/delete。失败时通过patch定向 find-and-replace实现**自我改进。**所有写入都受tools/skills_guard.py约 350 行控制60 多种模式按信任等级执行策略。被阻断 → 原子回滚。任务到来 → agent 检查技能索引始终在系统提示词里以紧凑列表形式存在→ 找到匹配项加载 skill。没找到从头解决。任务结束后它复杂吗5 次以上工具调用如果是就提议保存成 skill。用了一个现有 skill 但失败了立刻通过skill_manage(actionpatch)修补它。这在应用层很像 on-policy distillation。agent 从自己的轨迹中学习而不是从预先准备好的示例里学并且通过不断使用来精炼提取出来的流程。失败后立刻 patch 的机制正是让这个循环收敛而不是振荡的关键。渐进式披露让 token 成本保持可控。Tier 1系统提示词里的紧凑索引每个 skill 大约 2 个 token。Tier 2完整SKILL.md按需加载。Tier 3具体的支撑文件。agent 始终知道自己会做什么而不用为“知道全部细节”支付完整 token 成本。**安全门。****六大类、**60 多种威胁模式外传、注入、破坏性命令、持久化、网络、混淆。按信任等级执行安装策略builtin全部通过→ trusted / agent-created阻断危险项→ community阻断危险项 谨慎项。被阻断的发现会触发原子回滚。6 Persona(人设)SOUL.md定义了核心身份“You are Hermes, an AI assistant made by Nous Research.” 它的语气哲学是“你是一个 peer。你知道很多但你不表演自己知道。” **反模式**不要 emoji不要谄媚不要 hype 词。发送前检查清单我回答了真正的问题吗我还能删掉一句吗SOUL.md可由用户编辑。你可以完全重写它。用户拥有这个 agent 的声音。完整系统提示词会按严格顺序从12 层组装出来它在_build_system_prompt()run_agent.py:1825-1966中组装。第 1 到第 10 层缓存到self._cached_system_prompt。第 5 到第 6 层来自MemoryStore.load_from_disk()memory_tool.py:108-123的冻结快照。第 7 层skills 索引。第 8 层SOUL.md 上下文文件。第 11 到第 12 层是临时层来自gateway/session.py:196-320的 session 上下文 来自honcho_integration/session.py的 Honcho 预取。缓存策略system_and_3agent/prompt_caching.py。第 1 到第 10 层会被**缓存每个 session 构建一次摊销到后面的每一轮。第 11 到第 12 层是临时的**会在每次 API 调用时随轮次上下文重建。**一个 12 层的身份在稳态下的成本大致和一个 2 层身份差不多**因为其中 10 层已经在前缀缓存里了。7 上下文压缩每个 LLM 都有有限的上下文窗口。Hermes 用一个三阶段压缩生命周期来处理溢出编排入口在_compress_context()run_agent.py:3994-4058核心逻辑在agent/context_compressor.py382 行。Phase 1flush_memories()run_agent.py:3832-3921—— sentinel 注入一次辅助模型调用只开放 memory tool。Phase 2保护头部 3 条 尾部 4 条中间部分由 Gemini FlashT0.3总结并做工具边界对齐。Phase 3session 分裂并建立 parent FK_invalidate_system_prompt()run_agent.py:2113-2122从磁盘重新加载记忆并重建缓存前缀。上下文长度通过agent/model_metadata.py中的分级 probe 发现。Phase 1Memory flush。任何上下文丢失之前sentinel 会触发一句话“Save anything worth remembering.” 一次 API 调用只开放 memory tool。模型保存下来的内容都会活下来。Phase 2Compress。前 3 条消息和后 4 条消息会被保护。中间轮次由 Gemini FlashT0.3总结。边界对齐保证 tool call / result 对不会被拆开。状态注入会附加 todo 快照和文件读取历史。Phase 3Session split rebuild。旧 session 会以end_reason: compression结束在 SQLite 中。新 session 获得一个 parent FK。系统提示词从磁盘重新加载吸收 Phase 1 flush 写入的内容前缀缓存在 1 到 2 轮内重新建立。这个结果有点**反直觉**压缩之后agent 的原始上下文更少了但持久知识更多了。压缩不是损失。它是巩固。Prime Intellect 在相关工作中提供了一个互补视角让模型通过 Python REPL 和子 LLM 来管理自己的上下文。他们的洞察是上下文折叠和高效注意力其实是同一个问题的两面。Hermes 在应用层解决的是同一类问题因此它对具体模型保持无关。8 这些系统如何连接Memory ↔ Skills。**硬边界通过系统提示词强制执行**事实去 memory流程去 skills。一次用户纠正可能同时写入两个地方事实进MEMORY.md流程修补进 skill。Skills ↔ Session Search。经验学习机制。agent 遇到任务 → 搜索过去的 session → 找到可行方法 → 结晶成 skill → 下次直接加载。情景式记忆是原始经验。程序式记忆是提炼后的专长。Persona ↔ Honcho。SOUL.md播下 AI peer 身份的种子。随着时间推移这个表征会**从真实行为中演化**形成声明性意图和观察到的现实之间的张力。Compression ↔ Memory。压缩前的 flush 把压缩从纯损失变成一次巩固事件。压缩之后系统提示词会用包含 flush 写入的新快照重新构建。前缀缓存的代价1 到 2 轮是真实存在的但值得。有限 store 强迫筛选。3575 字符的记忆预算不是妥协。它是一个设计选择用来保证信号密度。**被动记录主动检索。**情景式 store 会捕获 agent 当下并不知道重要的东西。筛选发生在读的时候而不是写的时候。每一个持久化边界都有安全检查。每一次从临时上下文跨到持久存储都会经过一个检查点。对提示词注入做纵深防御。模型无关。记忆是纯文本。skills 是 markdown。session 是 SQLite。更换底层 LLM不会丢失知识、技能或身份。用户所有。SOUL.md是一个你可以编辑的文本文件。skills 是你可以检查的目录。memory 以本地优先。所有东西都在~/.hermes/里。它不是一个云服务。它是你可以控制的基础设施。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多文章