在 OpenClaw 里,新会话刚启动时,记忆不是一次性全塞给模型,而是走一套非常固定、轻量的初始化加载 + 按需召回流程。

下面用最清晰、最贴近源码逻辑的方式讲:

新会话开始时,记忆的完整使用流程

1. 先加载「基础身份记忆」

会话刚创建,第一步只加载最少、最稳定的记忆:

  • 系统提示词(system prompt)
  • Agent 自身配置(角色、能力、行为规则)
  • 长期记忆 MEMORY.md 中的核心摘要
    只加载:用户偏好、重要规则、关键约束,不加载全文

作用:
让模型知道自己是谁、知道你是谁、知道不能做什么。

2. 不加载历史对话(默认)

新会话 = 新上下文

  • 不会自动加载旧聊天记录
  • 不会加载几天前的短期记忆日志
  • 不会加载其他会话的内容

目的:
避免上下文污染,保证新会话干净。

3. 构建初始「空上下文」+ 记忆索引可用

此时模型的状态是:

  • 有身份
  • 有长期记忆摘要
  • 有向量库 + SQLite 索引已经就绪
  • 但没有历史对话

这是 OpenClaw 典型的冷启动状态。

4. 你发第一条消息 → 触发记忆召回

关键步骤来了:
用户输入 → 自动检索记忆 → 把相关片段注入上下文

流程:

  1. 对你的问题做 embedding
  2. 在向量库 + 关键词索引中搜索- 长期记忆 MEMORY.md
  • 历史短期记忆 daily log
  • 文档、知识库
  1. 召回 Top-K 相关片段
  2. 拼到 prompt 前面,再送给 LLM

所以:
新会话里,模型看似“记得以前的事”,其实是每次都现查记忆库。

5. 会话进行中:记忆只增不减

对话开始后:

  • 每一轮都会追加新内容到当天短期记忆 YYYY-MM-DD.md
  • 重要信息会被自动提取,更新到 MEMORY.md
  • 索引实时更新

但:

  • 旧记忆不会自动塞进上下文
  • 只有相关的才会被召回

一句话总结(最核心)

新会话开始时:

  1. 加载长期记忆摘要,建立身份
  2. 不加载历史对话
  3. 索引准备好
  4. 你一发消息,自动检索相关记忆并注入上下文

OpenClaw 的记忆本质是:
不依赖上下文窗口,依赖检索。新会话永远冷启动,再按需热加载。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐