Agent Memory Architecture(智能体持久记忆架构)
大多数智能体在重启后遗忘一切。真正可信赖的 Agent 系统需要跨会话、跨 Agent 的持久记忆基础设施。@matthewgunnin 在运行两个协调智能体(Ella on OpenClaw、Lyra on Hermes)数百次会话、历时 6 个月后,提炼出一套经过实战验证的 4 层记忆架构。
Source: 2026-07-04-x-x-com-matthewgunnin-status-2072772100973007203-s-46(来源未公开)
核心问题:上下文窗口管理 ≠ 记忆
典型的 Agent 记忆方案:把重要内容塞进 system prompt,祈祷上下文不溢出,重启后全部丢失。这是上下文窗口管理,不是记忆。真正的持久记忆需要多层、不同时间跨度的分层架构。
四层记忆架构
Layer 1:会话内上下文(In-session Context)
每次会话启动时读取两个文件:
- 身份文件(Identity File):Agent 的常设身份定义——不是埋在配置里的 system prompt,而是可编辑的 Markdown 文件。内容包含:Agent 的行为模式、优先级、“从不在不询问情况下执行”的操作,以及与其他 Agent 的关系。
- 记忆索引文件(Memory Index File):跨会话所有值得记住事项的目录。不是向量数据库,不是 embedding,而是一张纯文本目录表,指向各个独立的记忆文件。索引始终加载,单个记忆文件按需读取。
为什么用 Markdown? 人类可读、可编辑、可调试。当 Agent 行为异常,打开索引找到错误指令;想改变某个行为,直接编辑文件。无 API、无仪表盘、无需重训练。
Layer 2:会话后保留(Hindsight)
问题:纯 Markdown 记忆只能捕获被显式写下的内容,而最有价值的上下文往往是隐式的——运行过程中做出的决策、推断出的事实、事后才发现重要的细节。
Hindsight 是运行在 localhost 的本地事实保留后端。每次有意义的会话结束后,Agent 自动将一组精心筛选的事实推送到命名 bank 中(每个 Agent 各自的 bank)。
保留内容:
- 会话中做出的决策
- 关于用户或项目的非显而易见的事实
- 失败模式及采用的修复方案
- 用户确认或纠正的偏好
新会话启动时,在 Agent 回答之前先查询 Hindsight 获取相关上下文。这不是对 transcript 的全文搜索,而是按类型标记、经 Agent 判断值得携带的精炼事实集。
晋升路径:Hindsight 事实 → 人工审核 → 记忆索引条目。自动保留 + 人工批准门控。
Layer 3:共享长期状态(Nexus)
单 Agent 记忆在引入第二个 Agent 时就会崩溃——两个 Agent 各自持有矛盾的项目状态,一周内就开始相互冲突。
Nexus 是两个 Agent 共同读写的 Obsidian Vault(共享、可检查的状态文件):
- 实时上下文日志(Live-context Log):两个 Agent 在每次有意义的轮次后追加写入。不变量:每次回复前必须读取;每次有意义的轮次后必须追加。
- 项目状态文件
- 决策日志(带时间戳和理由)
- 每个 Agent 的工作上下文检查点:长任务期间每几次工具调用更新一次
当 Lyra 凌晨 2 点合并了一个 PR,Ella 早上回答问题时已经知道了——因为她读取了日志。无需消息传递,无需 inter-agent API,无需轮询。一个共享文件,两个 Agent,追加写入日志。
跨 Agent 同步不变量:
- 每条日志条目需署名(Agent 名称、频道、类型、一行摘要)
- 纯追加写入,永不编辑他人条目
- 如果 Lyra 记录了相关内容,Ella 在下次回复中明确确认
- 重大决策由两个 Agent 都写入决策日志
Layer 4:可搜索知识(gbrain)
前三层处理情景记忆(发生了什么、决定了什么、值得携带什么)。gbrain 是语义层。
gbrain 是运行在 Nexus Vault 上的 MCP 服务器,提供全文与语义搜索。当 Agent 需要回答研究问题、查找历史合成结论或检索某类问题的处理方式时,它查询 gbrain 而不是重读每一个文件。输出:带来源的相关页面排序列表——Agent 读取相关的,不把整个 vault 倾倒进上下文。
记忆 vs 召回:Layer 1-3 处理 Agent 携带什么;Layer 4 处理 Agent 能查找什么。
工具清单
| 工具 | 用途 | 链接 |
|---|---|---|
| Hindsight | 本地事实保留后端 | github.com/vectorize-io/hindsight |
| gbrain | 编译 Wiki/语义搜索 MCP | github.com/garrytan/gbrain |
| OpenClaw | Agent 运行时(Ella) | openclaw.ai |
| Hermes | Agent 运行时(Lyra) | hermes-agent.nousresearch.com |
诚实的代价
这套系统需要纪律:必须把事情写下来、维护文件、审核保留内容后再使其永久化。它不是魔法的常开系统,而是结构化的人工纪律 + 接缝处的自动化。
Layer 1 和 Layer 3 只需一个周末即可搭建,从这里开始。完整 4 层系统历时约 6 个月才稳定。
Hermes 的轻量两层实现
Hermes Agent 的实用默认形态验证了“常驻信息必须少”的原则:
- Tier 1:短小、显式的核心文件:
memory.md记录系统/项目事实,user.md记录用户偏好,soul.md定义 Agent 身份。三者承担启动时的稳定上下文,必须保持简洁。 - Tier 2:按需检索的会话档案:完整历史存入 SQLite;只有在需要时通过 session search 召回,避免把全部历史塞入上下文窗口。
- 可选增强:外部记忆服务可提取跨对话的隐含模式;Obsidian Vault 适合承载需要人类检查、可继续推进的项目与研究。
它不是对“四层架构”的替代,而是 agent-memory-and-dreaming 所强调的渐进式披露在单 Agent 场景中的最小可用实现。
Source: 2026-07-24-youtube-youtu-be-5_N84t1rUU0-si-9hzeimqyKkOFvsp3-c8ca3e25af(来源未公开)
与相关概念的关联
- agent-memory-and-dreaming:Anthropic 的带外梦境系统是另一种解决跨会话记忆的生产方案(自愈净化机制)。
- obsidian-second-brain:Nexus 层直接使用 Obsidian Vault 作为共享状态基础设施。
- harness-in-agentic-systems:记忆架构是 Harness(Agent 控制系统)的核心组成部分。
- managed-agents:多 Agent 协调的隔离与状态同步问题与 Layer 3 高度相关。
研究工作流中的记忆闭环
长期记忆应服务于决策而不是无差别累积:按日汇总关注源与书签,先按相关性分层,再将跨来源结论与后续反馈写回记忆。为避免信息茧房,外部来源应按主题轮换,并保留反方证据。定期复盘输出格式、错漏与实际决策价值,才能让记忆成为可校正的研究系统。
Source: 2026-07-28-x-x-com-0xjeff-status-2076631167152042204-s-46-0eb4279557(来源未公开)
5. 为什么盲目调 Prompt、切模型或堆上下文无法根治 Agent 脱轨
Source: 2026-09-03-x-x-com-0xwhrrari-status-2093685107534000560-s-46-c1633d832a.md(来源未公开)
开发者在遇到 Agent 运行失败时,最常见的三重误区是:
- 频繁修改 System Prompt;
- 切换更大的模型;
- 盲目塞入更大 Context Window。
这些做法无法解决核心瓶颈:
- 注意力稀释与幻觉放大:上下文窗口越大,噪声和无关细节越多,模型的中间记忆检索(Lost in the Middle)越容易失效。
- 缺乏显式状态机(State Machine):开环 Agent 容易进入死循环。必须将长程任务拆解为确定性步骤,由外部存储(如持久化 KV 缓存、向量索引与短期 Scratchpad)管理状态转移,而非依赖模型脆弱的隐式内部注意力。
6. Google Agent Memory 工程范式:Session(Events + State)与长期 Memory Bank
Source: 2026-09-28-xiaohongshu-xhslink-cn-o-8LT1ouk0THT-93cf41677f.md(来源未公开)
Google 官方在 Agent Memory 系列课程中进一步规范化了工业级短期与长期记忆的工程分层:
- 短期会话记忆(Session Memory)的双构件设计:
- 一次连续对话(Session)被清晰切分为两个核心组件:
- Events(全量事件时间线):完整记录每条用户消息与 Agent 动作回复,保留原始上下文与时间戳,专供大模型读历史、回溯追问与故障溯源;
- State(结构化状态便签):以 Key-Value 键值对或轻量 JSON 维护高频取用的关键变量(如当前用户认证状态、购物车 ID、任务当前步骤)。Agent 在后续轮次中直接读取 State,完全免除通读并解析全量历史消息的 Token 损耗与延迟;
- 一次连续对话(Session)被清晰切分为两个核心组件:
- 跨会话持久层:AI Memory Bank:
- 跨越单次会话生命周期,将用户偏好、长程事实、多模态资产沉淀为全局多模态记忆库(Memory Bank),通过语义检索与实体图谱按需激活。