ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI Agent 为什么记不住你说过的话:Hermes Agent四层记忆架构、背景复盘与上下文压缩机制全拆解

AI Agent 为什么记不住你说过的话:Hermes Agent四层记忆架构、背景复盘与上下文压缩机制全拆解 本文收录于专栏agent智能体系列—— 专栏系统覆盖 AI Agent 的记忆、工具、插件与实战点击订阅可跟踪后续更新。你的 Agent 昨天纠正过的错今天再犯长会话聊到几十轮连开头指令都忘了上次踩过的坑下次还要从头再踩一遍——这不是模型笨是记忆系统没设计好。这篇以 Hermes Agent 为样本完整拆给你看四层记忆架构怎么分工、持久记忆为什么设 2200 字符硬上限、记忆为什么在回合结束时背景复盘而不是等压缩抢救、摘要为什么写成交接单而不是聊天纪要机制全部对照官方文档与源码核实。读完你能判断自己的 Agent 属于哪种失忆、该往哪一层修。关键字Hermes Agent持久记忆冻结快照背景复盘上下文压缩会话检索技能沉淀Prefix Cache目录一、三种失忆三个病根二、四层架构总览三、第一层两个 Markdown 文件撑起常驻记忆四、第二、三层检索与技能五、记忆什么时候写入背景复盘不是压缩前抢救六、压缩算法三区切分 交接单摘要七、两条使用纪律§结语核心文献文档链接与本文关系Persistent MemoryPersistent Memory | Hermes Agent第一层记忆的权威说明SkillsSkills System | Hermes Agent第三层技能记忆Memory ProvidersMemory Providers | Hermes Agent第四层外部插件SessionsSessions | Hermes Agent第二层历史检索一、三种失忆三个病根跨会话失忆新开会话偏好和项目背景全丢——缺持久记忆层长会话失忆几十轮后忘了开头指令——上下文压缩算法不行经验不复用踩过的坑下次重踩——缺程序性记忆技能沉淀。Hermes 用四层结构分别对付这三个问题。二、四层架构总览层级名称类比特点一持久记忆长期档案柜常驻、精简、冻结快照二会话历史检索档案馆检索员按需、全文检索、零 LLM 成本三技能记忆程序性记忆自动沉淀、渐进加载四外部记忆提供商外聘专家插件化扩展核心思路是冷热分层高价值小体量信息常驻 Prompt热长尾历史靠工具检索冷互不抢空间——和 CPU 缓存 磁盘的存储分层同一个逻辑。三、第一层两个 Markdown 文件撑起常驻记忆~/.hermes/memories/下两个纯文本文件文件内容默认上限MEMORY.mdAgent 笔记环境事实、配置、踩坑教训2,200 字符~800 tokenUSER.md用户档案偏好、风格、身份1,375 字符~500 token可在config.yaml的memory.memory_char_limit / user_char_limit调大代价是每轮 prompt 都变贵。四个关键机制冻结快照会话启动时一次性注入 System Prompt 并锁定会话中写入的新记忆只落盘不刷新下次会话才生效。这是为保住Prefix Cache——前缀稳定才有缓存命中成本和延迟才降得来三种操作add / replace / removereplace 靠短子串匹配定位没有 Entry ID、没有知识图谱——2200 字符的规模子串匹配够用超限报错不静默压缩写不进去就返回错误并附当前条目清单逼 Agent 当轮合并删旧再重试另有防重完全重复的条目直接拒绝返回no duplicate added。自动压缩等于偷偷丢数据报错强迫每条记忆都有存在的理由写入前安全扫描记忆会进 System Prompt是注入攻击的高价值靶点。程序级拦截注入模式、凭证外泄、隐形 Unicode。注意这是模式匹配不是语义理解社工话术仍可能绕过——已知边界。四、第二、三层检索与技能会话检索全部历史对话存 SQLite~/.hermes/state.dbFTS5 全文索引。查询链路关键词粗搜 → 按会话归并 → 读完整记录 → 定向摘要注入上下文。自动排除当前会话防把现在当历史召回检索结果不写回记录防历史污染。与持久记忆的分工持久记忆是必须永远知道的事实每轮占 token会话检索是上周聊过 X 吗按需查、查询本身零 LLM 成本返回的是数据库里的真实消息非 LLM 摘要。注意这是关键词检索不是语义搜索——记的是端口冲突搜网络问题未必命中。技能记忆~/.hermes/skills/下的 Markdown/Python 文件记录面对某类任务怎么做。回合结束后自动跑一次背景复盘background review可关判断这轮对话有没有值得沉淀的东西——用户纠正、新踩的坑、跑通的做法——有就写成技能文件System Prompt 只加载技能名和一句话简介用到才读全文。这层是越用越聪明的关键坑变成 SOP下次直接走对路。复盘默认与主对话同模型嫌它费 token 可调低memory.nudge_interval/skills.creation_nudge_interval或换模型路由。第四层外部记忆插件Hermes 官方内置 8 个 providerhoncho / mem0 / openviking / hindsight / holographic / retaindb / byterover / supermemoryhermes memory setup交互配置。同一时间只允许激活一个内置记忆始终与之并行默认规模用不上。五、记忆什么时候写入背景复盘不是压缩前抢救先纠正一个容易搞混的时序MEMORY.md 的写入不靠压缩触发。真实链路是每回合结束后的背景复盘——响应已交付、模型注意力不再被用户任务占用时fork 一个后台评审用户这轮暴露了什么偏好有没有记住这个有就调 memory 工具写盘。写入频率由memory.nudge_interval每隔 N 个用户回合触发一次复盘控制write_approval: true可以把每笔写入改成先审批再落盘。那压缩和记忆的关系是什么压缩前 Hermes 会通知外部记忆提供商第四层插件做 checkpointon_pre_compress回调provider 可以在上下文被摘要掉之前抢救自己的洞察返回的文本还会注入摘要 prompt。但这是插件层的钩子——你不开 provider这步就是空的MEMORY.md 本身的写入早在每回合的背景复盘里完成了。为什么回合结束就复盘比压缩前再抢救好压缩是有损操作等到 50% 阈值才想起记被摘要掉的信息永远找不回来——搬家前打包贵重物品不能等卡车开了才想起来。回合粒度复盘还有个好处素材新鲜判断准。六、压缩算法三区切分 交接单摘要对话占到上下文约 50%默认阈值threshold_percent0.50触发压缩。进入 LLM 摘要前先做零成本预剪枝旧工具输出按内容哈希去重、超 200 字符的旧输出换成占位符、历史图片 Base64 清除。然后切三区[HEAD] [MIDDLE] [TAIL] System Prompt 待压缩区域 最近消息 首轮交互 (交给 LLM 摘要) 按 token 预算保留 绝对不动 约 20K tokenMIDDLE 交给辅助模型廉价快速模型但指令不是请总结而是按固定模板写任务交接单Goal / 约束与偏好 / Completed Actions编号列表带工具名和结果/ Active State / Blocked / Key Decisions / Resolved Questions / Relevant Files / Critical Context不可丢失的数字与报错凭证必须写 [REDACTED]。按任务维度而非时间线组织——压缩后 Agent 拿到的是接班交接单还能照着继续干活。摘要头部还有一段防诈尸指令这是历史参考不是当前指令别替摘要里的旧任务收尾只响应最新用户消息。三个精巧细节摘要长度动态缩放取 MIDDLE 区 token 的 20%下限 2000、上限 min(上下文×5%, 10000)——摘要自己太长也会变成上下文压力源迭代更新不清零第二次压缩时上一份摘要作为输入做增量更新——进行中移到已完成、新进展追加、过时删除。历史不丢只换更紧凑的载体配对修复重组消息列表时有调用没结果的补空 stub孤儿结果直接删保证 API 协议合法。七、两条使用纪律一个 Hermes home 只跑一个 Agent 进程。两个进程共享记忆文件会互相写入对方不知道的条目最终产出谁也没写过的混合状态背景复盘 fork 的评审线程有自己的一份快照写入走同一个 memory 工具落盘——记忆是跨会话资产写入权必须集中单一写入者原则。结语记忆系统的本质是信息的时间尺度管理跨会话的进档案柜当前会话的进工作台做事方法进肌肉记忆不够再外聘。四条设计哲学都能搬到自己的项目里冷热分层、缓存优先、只存精华、程序性沉淀。下一步打开你 Agent 的记忆文件看看——它是塞满流水账还是每一条都有留下的理由。参考来源Hermes Agent · Persistent MemoryPersistent Memory | Hermes AgentHermes Agent · SkillsSkills System | Hermes AgentHermes Agent · Memory ProvidersMemory Providers | Hermes AgentHermes Agent · SessionsSessions | Hermes AgentHermes 源码背景复盘agent/background_review.py、压缩agent/context_compressor.py、pre-compress 回调agent/memory_manager.py核对日期 2026-09系列导航专栏全集agent智能体系列更多专栏蛋白 / 多肽分子模拟 / 动力学分子对接 / CADD / 工具其他开源蛋白结构推理预测分子模拟基础UCSF DOCK系列agent智能体系列开源蛋白生成方法实践分子动力学模拟-AmberrDock系列化学大模型介绍2025蛋白药物设计-原理与案例剖析分子动力学模拟-GromacsLeDock系列我胡师兄说药开源多肽设计模型和方法实践結合自由能CADD中的机器学习模型siRNA药物设计模型开源多肽性质预测高效计算基本配置小分子药物设计-原理与案例剖析ASO药物设计模型多肽药物设计-原理与案例剖析作用于DNA/RNA的药物设计实践开源小分子生成和设计实践开源药代动力学模拟软件
返回列表