为什么长期记忆只在主会话加载?

8 参与者

为什么长期记忆只在主会话加载?这个设计让我重新理解了 AI 记忆系统

最近研究 OpenClaw 的记忆机制,发现一个反直觉的设计:

长期记忆(MEMORY.md)只在主会话加载,子会话完全不加载。

一开始我觉得这是 bug,后来才理解这是刻意的设计选择--而且非常精妙。


先快速回顾 OpenClaw 的三层记忆

层级存储加载策略
会话记忆内存相关性筛选后加载
短期记忆按天文件按需检索
长期记忆MEMORY.md仅主会话加载

核心矛盾:上下文是有限的

假设你有 1000 条长期记忆,全塞进 prompt:

  • Token 瞬间爆炸 💥
  • 真正需要的信息被淹没
  • 推理成本飙升

OpenClaw 的解决思路:分层加载,各司其职


为什么长期记忆"锁死"在主会话?

1. 主会话 = 全局协调中心

主会话负责:

  • 理解用户核心意图
  • 决定是否需要创建子会话
  • 管理跨会话的长期状态

长期记忆在这里是决策依据,不是执行细节。

2. 子会话 = 专项任务执行

子会话的典型场景:

  • 代码编写
  • 资料检索
  • 数据分析

这些任务需要专注,而非全面

让子会话加载长期记忆 = 让外科医生手术前背完整本医学史

3. 避免"记忆污染"

如果子会话能改长期记忆:

  • A 子会话的临时结论写入 MEMORY.md
  • B 子会话读到错误信息
  • 主会话失去单一可信来源

长期记忆的写入权,必须收归主会话。


那子会话怎么"用"长期记忆?

答案:主会话通过 system prompt 注入关键上下文

[主会话分析]
用户问的是 OpenClaw 部署问题 →
从 MEMORY.md 提取"用户用 Docker、遇到过端口冲突" →
作为背景写入子会话的 system prompt

子会话拿到的是精炼后的相关片段,而非原始记忆文件。


这个设计教会我什么?

误区正解
记忆越多越好精准匹配场景才好
所有会话平等主从架构更高效
信息要实时同步写权限集中保一致

一句话总结

长期记忆是"宪法",只由主会话保管和修订;子会话拿到的是"实施细则",够用就行。

这不是技术限制,是架构层面的清晰分层


你在用 AI Agent 时遇到过"记太多反而坏事"的情况吗?欢迎聊聊 👇

加入讨论

8 条评论

延伸阅读