不同 Agent 系统的记忆机制有哪些差异?
未标记
考查重点:记忆表示与检索取舍。对比整段历史、摘要和外部检索记忆:前者细节多但占窗口,摘要更省但会失真,检索可扩展但会漏召回
本题目录
参考答案
核心回答
不同Agent记忆机制的差异,主要体现在保存什么、何时写入、怎样进入上下文、如何更新与隔离。有的以可读文件保存项目规则和少量稳定经验,有的把会话与长期记录分开检索,有的把记忆作为独立服务管理生命周期。不能只按“用了向量库还是Markdown”判断能力。
比较时先区分当前对话状态、跨会话事实与可复用流程,再看其读写时机、检索方式、作用范围和删除成本。下面以公开文档中的Claude Code、OpenClaw、Hermes和MemOS作具体参照,实际能力仍随版本和配置变化。
几类系统的具体侧重
Claude Code把用户编写的CLAUDE.md等项目指令与自动积累的auto memory分开:前者提供规范和项目背景,后者保存纠正、偏好与经验。它们作为上下文帮助决策,不能替代工具权限或执行拦截。
OpenClaw将工作区Markdown作为显式记忆载体,区分用户资料、长期事实与日常笔记。简短稳定内容进入会话启动上下文,详细资料通过检索或读取获取;这种方式容易查看和编辑,但仍需管理文件预算、范围和旧信息。
Hermes的内置记忆使用MEMORY.md和USER.md区分环境经验与用户资料,在会话开始时注入快照,通过memory工具增删改,历史细节可由session_search补取。会话中写了文件,不等于当前已有的固定快照自动变新;需要区分文件状态和当轮模型输入。
MemOS更强调将记忆条目作为独立资源管理。其云版文档描述生成、活跃、合并、归档、过期和冻结等生命周期;生命周期决定条目是否有效,调度与检索再决定本次是否使用。云版与开源版的具体能力需要分别核对。
怎样做有意义的选型
小型编码项目的规则与环境事实相对少,可读文件加按需检索往往够用;大量用户事实、时间变化和跨会话查询,则更需要结构化条目、命名空间、索引与生命周期管理。向量检索可以加入文件记忆系统,文件也可以是数据库服务的产物,两者并不互斥。
共同需要检查的是:用户明确更正后能否更新,临时偏好会不会覆盖长期偏好,其他项目能否读到本项目内容,删除是否同步影响摘要、缓存和索引。对同一批跨会话任务比较正确召回、误召回、更新延迟、Token成本和可维护性,才比功能清单更有价值。
常见追问
记忆就是上下文压缩吗? 压缩主要服务当前任务接力,长期记忆负责未来任务选择性复用;存下一段摘要,并不会自动拥有写入筛选、冲突处理和检索能力。
对应教程
- 16-记忆与对话历史(含Redis基础):先建立当前会话历史的概念,再比较跨会话机制。
参考资料
- 国内:JavaGuide:Agent记忆系统:采用文中记忆类型与生命周期的划分,为正文比较各系统保存什么、何时写入及如何清理提供共同维度。
- 国内:zero2Agent:长期记忆候选写入:借鉴长期记忆候选的筛选条件,说明正文中保存聊天记录与提取可复用事实的区别。
- 国内:WeThinkIn:记忆写入与生命周期:参考记忆范围、版本和冲突处理机制,比较正文中各系统更新记忆与隔离信息的方式及成本。
- 国内:MemTensor:Memory Lifecycle Management:依据 MemOS Cloud 的条目生命周期,解释正文中条目有效性管理与本次调用调度的分工。
- 国外:Anthropic:How Claude remembers your project:依据项目指令与 auto memory 的定义,说明正文中 Claude Code 长期上下文的来源和作用范围。
- 国外:OpenClaw:Memory overview:借鉴工作区文件分层,说明正文中 OpenClaw 如何区分长期事实、用户资料与日常记录。
- 国外:Nous Research:Persistent Memory:依据会话快照、memory 工具与 session_search 的说明,解释正文中 Hermes 内置记忆的写入及历史回查机制。