当前位置:首页 > 知识wiki > 正文内容

OpenClaw 记忆系统详解:长期记忆、短期记忆与记忆检索

Openclaw1小时前知识wiki4

OpenClaw 记忆系统架构

大多数AI助手的记忆要么"什么都记不住",要么"什么都往里塞"导致上下文膨胀失控。OpenClaw 设计了一套三层递进式记忆架构,让AI Agent 在"记住什么"和"忘记什么"之间找到平衡。本文详解各层职责、读写时机、截断规则与最佳实践。


🧠 三层记忆架构总览

OpenClaw 的 Agent 通过写入纯 Markdown 文件来"记住"信息。模型只记得写入磁盘的内容——没有隐藏的运行时状态。整个记忆体系分三层:

三层记忆架构图

△ OpenClaw 三层记忆架构:长期记忆→每日笔记→运行时上下文

层级 文件路径 加载时机 持久化
L1 · 长期记忆 MEMORY.md 每次 DM 会话启动 永久保留
L2 · 每日笔记 memory/YYYY-MM-DD.md 当天与昨天的笔记自动加载 持久化索引
L3 · 运行时上下文 对话历史 + Compaction 每次对话轮次 Compaction 后摘录归档

📄 第一层:MEMORY.md — 长期记忆

职责

存放持久的、经过提炼的事实性信息:用户偏好、关键决策、重要配置、长期目标。它是 Agent 的"大脑皮质"——只保留高信号、可复用的知识。

读写时机

  • 读取:每次 Agent 主会话(DM)启动时加载到 Prompt 上下文中
  • 写入:Agent 在对话中识别到持久化价值的信息时自动写入;用户也可直接说"记住我偏好 TypeScript"
  • 提炼:应定期从每日笔记中将有用信息"蒸馏"到 MEMORY.md,同时移除过时的条目

截断规则

⚠️ 重要:如果 MEMORY.md 超出 Bootstrap 文件预算,OpenClaw 会截断注入模型上下文的内容(磁盘上的文件不受影响)。

此时应当:将详细信息移回 memory/*.md,仅在 MEMORY.md 保留概要,或提高 Bootstrap 限制。使用 /context list/context detailopenclaw doctor 查看原始 vs 注入大小和截断状态。

行动敏感型记忆

某些记忆不仅记录事实,还影响 Agent 未来的行为。这类记忆需要标注行动边界:

  • 审批或权限要求
  • 临时约束(何时生效、何时过期)
  • 交接给其他会话/线程/人
  • 安全操作的时间窗口
  • 来源和授权者

示例:

API 迁移正在另一个会话中设计。此线程未来轮次不应编辑 API 实现代码;仅将此处发现作为设计输入,直到迁移计划落地。

📓 第二层:memory/ 目录 — 每日笔记

文件结构

位于 Agent 工作空间下的 memory/ 目录:

~/.openclaw/workspace/
├── MEMORY.md
├── memory/
│   ├── 2026-06-28.md
│   ├── 2026-06-29.md
│   ├── 2026-06-29-review.md        # 带 slug 的变体
│   └── 2026-06-30.md
└── DREAMS.md                        # Dream 日记(可选)

职责

  • 详细的日常观察和会话摘要
  • 原始上下文和中间发现
  • 尚不确定是否需要长期保留的信息
  • 带 slug 的文件(如 2026-06-29-review.md)同样被索引

读写时机

  • 读取:当天(Today)和昨天(Yesterday)的笔记自动注入 Prompt;更早的笔记通过 memory_search 检索
  • 写入:Compaction 前自动触发 Memory Flush 轮次,Agent 在此时保存重要上下文
  • 自动归档:Agent 被提示定期将内存中有价值的信息蒸馏到 MEMORY.md

Memory Flush(自动记忆保存)

在 Compaction 对对话进行摘要之前,OpenClaw 会执行一个静默轮次,提醒 Agent 将重要上下文保存到记忆文件中。此功能默认开启,无需额外配置。

配置本地模型的 Memory Flush 模型:

{
  "agents": {
    "defaults": {
      "compaction": {
        "memoryFlush": {
          "model": "ollama/qwen3:8b"
        }
      }
    }
  }
}

🔎 第三层:memory_search — 语义检索机制

工作原理

当 Agent 需要回忆不在 Prompt 上下文中的信息时,调用 memory_search 工具。它使用混合搜索——同时运行两条检索路径并合并结果:

Query
 ├── Embedding → Vector Search(语义相似度)
 └── Tokenize → BM25 Search(关键词精确匹配)
       ↓
   Weighted Merge → Top Results
  • 向量搜索:找到含义相似的内容("gateway host" 匹配 "运行 OpenClaw 的机器")
  • BM25 关键词:找到精确匹配(ID、错误字符串、配置键)

支持的 Embedding Provider

Provider 配置 ID 需要 API Key
OpenAI(默认) openai
Gemini gemini
本地模型 local
Ollama ollama
Voyage voyage
Mistral mistral
更多 DeepInfra / Bedrock / GitHub Copilot / OpenAI 兼容 视 provider 而定

检索质量调优

时间衰减(Temporal Decay)

旧笔记的排名权重逐渐降低。默认半衰期30天:一个月前的笔记得分降至原50%。MEMORY.md 永不过期。

🎯 MMR 多样化

减少重复结果。五个笔记都提到同一个配置时,MMR 确保前几条覆盖不同主题。

同时启用时间衰减和 MMR:

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "query": {
          "hybrid": {
            "mmr": { "enabled": true },
            "temporalDecay": { "enabled": true }
          }
        }
      }
    }
  }
}

CLI 命令

openclaw memory status           # 查看索引状态和 provider
openclaw memory search "query"   # 命令行搜索
openclaw memory index --force    # 重建索引

✂️ AGENTS.md 截断规则

AGENTS.md 文件中每行默认最大长度为 240 个字符。超出部分会被截断。这一规则对中文的影响尤为显著——中文字符按 UTF-8 字节计算,240 字节约等于 80 个中文字,因此长行中文内容更容易被截断。

建议:

  • AGENTS.md 中的中文描述尽量精简,每行控制在 80 字以内
  • 多行信息断开写入,不要挤在一行
  • MEMORY.md 不适用此截断规则(但有独立的 Bootstrap 文件预算截断)

🌟 Dreaming:后台记忆巩固

Dreaming 是可选的后台记忆巩固机制,用于自动化地将短期记忆中的高价值信息晋升到长期记忆:

  • 默认关闭,需主动启用
  • 启用后自动管理一个 Cron 定期执行全量 Dream 扫描
  • 晋升必须通过评分、召回频率和查询多样性门槛
  • 阶段总结和 Diary 条目写入 DREAMS.md 供人工审核

Grounded Backfill(历史回填):

使用 openclaw memory rem-backfill --path ./memory --stage-short-term 可以将历史笔记重新输入 Dreaming 管线,让系统评估旧笔记的持久化价值,而不直接写入 MEMORY.md。


🔄 与 MCP / Skill 联动场景

MCP 工具中的记忆使用

MCP 工具(如 wecom-msg、wecom-contact)本身不直接操作记忆文件,但 Agent 可通过以下方式实现记忆持久化:

  • MCP 调用 → 信息提取 → 写入 MEMORY.md:如从通讯录查询到某个联系人的信息后,Agent 可以记忆该信息供后续复用
  • MCP 调用 → 日志记录 → memory/*.md:MCP 工具的操作结果写入每日笔记,形成审计轨迹

Skill 中的记忆推荐

技能(Skill)在 SKILL.md 中定义时,应明确说明何时以及如何操作记忆:

SKILL.md 中的记忆声明示例:

## Memory Usage
- 查询到的用户信息应写入 MEMORY.md(偏好、联系方式)
- 每次操作日志写入当天的 memory/.md
- 不走 memory_search 检索,直接调用 memory_get 读取已验证数据

💡 最佳实践:日志 → 提炼 → 归档

推荐的记忆管理流程是一个三层漏斗

阶段 操作 目标
1️⃣ 日志 日常对话 → memory/YYYY-MM-DD.md 保留原始上下文
2️⃣ 提炼 每日笔记 → 抽取高价值信息 → MEMORY.md 去芜存菁,保持长期记忆紧凑
3️⃣ 归档 过时条目从 MEMORY.md 移回 memory/*.md 控制 Prompt 预算,防止截断

✅ 核心原则:

  1. 相信 Agent——告诉它"记住这个",它会自动写入对应文件
  2. 不要手动管理每条记忆——Heardbeat 流程和 Compaction 会处理日常提炼
  3. 关注截断信号——用 /context list 监控 MEMORY.md 注入大小
  4. 利用 Dreaming——启用后台巩固后,系统自动评估信息持久化价值
  5. 行动边界清晰——涉及审批、时效、交接的记忆标注"何时做什么"

🔧 记忆后端选择

OpenClaw 支持多种记忆后端引擎,可根据部署场景选择:

🗄️ Builtin(默认)

SQLite 基础,零配置开箱即用。支持关键词搜索、向量相似度和混合搜索。

QMD

本地优先,支持 Reranking、Query Expansion,可索引工作空间外目录。

🧠 Honcho

AI 原生跨会话记忆,用户建模、语义搜索、多 Agent 感知,需插件安装。

📚 Memory Wiki

编译持久记忆为可溯源的知识库,带声明结构、矛盾检测和仪表盘。


📝 总结

OpenClaw 的记忆系统设计哲学是"清晰分层、自动流转":MEMORY.md 保存精炼的长期知识,memory/*.md 承载日常上下文,memory_search 提供跨越时间维度的召回能力。开发者的工作不是"记录所有细节",而是建立正确的提炼节奏——利用 Compaction 前的 Memory Flush 自动保存关键内容,通过 Dreaming 后台巩固提升信息持久化效率,用 Active Memory 插件在交互式会话中预取相关记忆。

记住:最好的记忆系统不是记得最多的那个,而是知道该记住什么、该忘记什么的那个。

OpenClaw 知识百科 · 记忆系统详解 · 知识wiki

扫描二维码推送至手机访问。

版权声明:本文由点度点度金讯时代-BLOG发布,如需转载请注明出处。

本文链接:http://lmwmm.com/post/2608.html

分享给朋友:

“OpenClaw 记忆系统详解:长期记忆、短期记忆与记忆检索” 的相关文章

OpenClaw AI 助手平台使用指南

OpenClaw AI 助手平台使用指南

OpenClaw 是一款功能强大的AI助手平台,支持部署在自有服务器上,通过微信、企业微信、Telegram等多种渠道交互。本文详细介绍其核心功能、模型配置、技能系统、记忆机制、子代理系统和cron任务等使用要点。…

Agent与RAG:检索增强生成驱动的智能体架构

Agent与RAG:检索增强生成驱动的智能体架构

Agent与RAG(检索增强生成)融合架构详解:知识库索引、检索策略(单次/多轮/迭代/自适应路由/工具增强)、Agent-RAG三种交互模式、关键技术及典型应用场景。…

CrewAI深度解析:基于角色的多Agent协作框架

CrewAI深度解析:基于角色的多Agent协作框架

CrewAI是一个基于Python的多Agent协作框架,通过角色、任务和流程三大核心抽象,实现AI Agent的结构化协作与任务编排。本文详解核心概念、三种流程模式、Agent定义结构、框架对比及版本发展历程…

AI Agent 评估体系:Benchmark、评估指标与自动化测试

AI Agent 评估体系:Benchmark、评估指标与自动化测试

AI Agent评估体系是衡量智能体性能的标准化方法论,涵盖基准测试集、量化指标和自动化测试框架三大组件。本文介绍GAIA、AgentBench等主流Benchmark,任务完成度、效率成本、安全合规三类评估指标,以及LLM-as-Judg…

Browser Agent:基于浏览器的AI智能体架构与实现原理

Browser Agent:基于浏览器的AI智能体架构与实现原理

Browser Agent是指能够自主操控浏览器完成网页导航、数据提取、表单填写等任务的AI智能体系统。本文梳理其三大架构模式(DOM/视觉/混合)、核心操作集、主流实现对比、DOM表示策略、控制循环与评估基准,全面呈现Browser Ag…

金融Agent(Financial Agent):智能体在金融领域的架构与应用模式

金融Agent(Financial Agent):智能体在金融领域的架构与应用模式

金融Agent是AI智能体在金融领域的垂直应用,涵盖量化交易Agent、风控Agent、投研Agent、客服Agent和合规Agent五大类型。本文系统梳理金融Agent的核心术语、功能矩阵、分层多Agent参考架构、专用Tool设计模式,…