OpenClaw Memory

Polar Sponsor
爱发电 赞助
.NET 9.0

管理、优化和排查 OpenClaw 内存系统 — MEMORY.md 维护、日常日志(memory/YYYY-MM-DD.md)、memory_search 调优、压缩监控

OpenClaw 内存 — 设置、 优化和麻烦排除

功能概述

OpenClaw 内存 — 设置、 优化和麻烦排除是一项面向实际任务的技能,主要用于Core 原则;OpenClaw 内存是磁盘上的普通马克下. 文件是真实的单一来源;

核心要点

  • 模型只“ 成员” 得到的。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

OpenClaw Memory — 配置、优化与故障排查

核心原理

OpenClaw 的记忆机制本质上是磁盘上的纯 Markdown 文件。这些文件即为唯一可信数据源(Single Source of Truth)。 模型仅“记住”被写入磁盘的内容——会话之间无任何内容保留在内存(RAM)中。 记忆搜索功能由当前启用的记忆插件提供(默认为 memory-core)。

1. 记忆架构(双层结构)

第 1 层:每日日志 — memory/YYYY-MM-DD.md

  • 仅追加(Append-only)的会话笔记、运行上下文及当日事件记录。
  • OpenClaw 在会话启动时自动读取今日 + 昨日的日志文件。
  • 若有人提出“请记住这个”,应立即写入该文件。
  • 日志随时间持续累积;旧日志可通过 memory_search 进行全文检索。

第 2 层:长期记忆 — MEMORY.md

  • 人工维护的持久化事实:关键决策、用户偏好、铁律规则、项目背景等。
  • 仅在私有/主会话(private/main sessions)启动时加载(群组上下文中永不加载)。
  • 若同时存在 MEMORY.mdmemory.md,仅加载 MEMORY.md
  • 务必保持简洁——非每会话必需的内容均应放入每日日志。
  • 单文件超过约 20,000 字符将被截断(受 bootstrapMaxChars 限制)。
  • 所有工作区文件合计引导容量上限约为 150,000 字符。

工作区目录结构

~/.openclaw/workspace/
├── MEMORY.md              # 长期人工维护的记忆(仅主会话加载)
├── memory/
│   ├── 2026-03-17.md      # 今日日志
│   ├── 2026-03-16.md      # 昨日日志(同样自动加载)
│   └── ...                # 更早的日志(可检索,但不自动加载)
├── AGENTS.md              # 运行手册、启动流程
├── SOUL.md                # 角色设定、语气风格、价值观
├── USER.md                # 用户档案
└── TOOLS.md               # 环境特定配置

内容归类指南

内容类型 存放位置 原因
持久性决策与偏好 MEMORY.md 每会话启动时加载
Agent 必须始终遵守的铁律规则 MEMORY.md 经压缩(compaction)后仍保留
今日工作笔记、事件、上下文 memory/YYYY-MM-DD.md 仅追加式日志
一次性指令 聊天窗口(或写入每日日志) 按设计即为临时性内容
行为规范 AGENTS.mdSOUL.md 始终处于上下文内

2. 记忆工具

OpenClaw 向 Agent 暴露两类面向用户的工具:

memory_search — 语义召回

  • 在所有已索引的记忆文件(MEMORY.md + 所有每日日志)中执行搜索。
  • 返回结果片段(最大约 700 字符)、文件路径、行号范围及匹配得分。
  • 采用混合搜索策略:向量相似度 + BM25 关键词匹配
  • 向量搜索可识别同义改写(例如:“部署流程”可匹配“我们如何发布代码”)。
  • BM25 可精准匹配具体标记(ID、环境变量、错误字符串、代码符号等)。
  • 结果按加权融合排序:finalScore = vectorWeight × vectorScore + textWeight × textScore

memory_get — 定向文件读取

  • 根据指定路径(及可选行号范围)读取特定记忆文件。
  • 若文件不存在,则优雅降级(返回空文本,不报错)。
  • 适用于你已明确知道所需信息所在文件的场景。

最佳实践:强制执行记忆检索

请将以下规则加入 AGENTS.md

## 记忆协议
- 执行涉及历史上下文的任务前,必须先运行 memory_search。
- 切勿仅凭对话历史猜测——务必查阅你的笔记。

若未设置此规则,Agent 将倾向于猜测而非主动检查记忆文件。

3. 压缩(Compaction)与记忆刷新(Memory Flush)

问题背景

长对话会迅速填满上下文窗口。当达到阈值时,OpenClaw 将执行压缩(compaction)操作(即对较早消息进行摘要或截断)。仅存在于对话中的内容——包括在聊天窗口中输入的指令——可能因此丢失。

安全网:自动记忆刷新

在触发压缩前,OpenClaw 会启动一次静默的 Agent 轮次(silent agentic turn),提醒模型将持久化笔记写入磁盘。

默认配置:

{
  "agents": {
    "defaults": {
      "compaction": {
        "reserveTokensFloor": 20000,
        "memoryFlush": {
          "enabled": true,
          "softThresholdTokens": 4000,
          "systemPrompt": "Session nearing compaction. Store durable memories now.",
          "prompt": "Write any lasting notes to memory/YYYY-MM-DD.md; reply with NO_REPLY if nothing to store."
        }
      }
    }
  }
}

关键要点

  • 软阈值(Soft threshold):刷新触发于 contextWindow - reserveTokensFloor - softThresholdTokens 处。
  • 每个压缩周期仅执行一次刷新(状态记录于 sessions.json)。
  • 静默执行:Agent 回复 NO_REPLY,用户不可见。
  • 需具备可写工作区权限:若 workspaceAccess: "ro""none",则跳过刷新。
  • 验证是否生效:检查配置中 memoryFlush.enabled = true 且缓冲余量充足。

持久化生存守则

  1. 将持久化规则写入文件,而非聊天窗口。 MEMORY.mdAGENTS.md 可在压缩中幸存。
  2. 确认 memory flush 已启用,且缓冲设置足够触发。
  3. 通过 AGENTS.md 规则强制执行记忆检索。

4. 向量记忆搜索配置

嵌入(Embedding)服务提供商(自动选择顺序)

  1. local — 若已配置 memorySearch.local.modelPath 且对应文件存在
  2. openai — 若 OpenAI API 密钥可用
  3. gemini — 若 Gemini API 密钥可用
  4. voyage — 若 Voyage API 密钥可用
  5. mistral — 若 Mistral API 密钥可用
  6. 若以上均未配置,则禁用嵌入功能

另支持:ollama(本地/自托管,但不参与自动选择)。

重要提示:Codex OAuth 仅覆盖聊天/补全(chat/completions)能力,不适用于嵌入(embeddings)。你需要为嵌入服务提供商单独配置 API 密钥。

混合搜索配置

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "provider": "openai",
        "model": "text-embedding-3-small",
        "query": {
          "hybrid": true
        }
      }
    }
  }
}

索引细节

  • 分块策略:目标约 400 Token,重叠 80 Token。
  • 存储方式:按 Agent 分离的 SQLite 数据库,路径为 ~/.openclaw/memory/.sqlite
  • 文件监听:防抖 1.5 秒,文件变更时自动重建索引。
  • 当嵌入服务提供商、模型或分块参数变更时,自动触发重索引。

5. 高级功能:后处理流水线(Post-Processing Pipeline)

向量 + 关键词 → 加权合并 → 时间衰减 → 排序 → MMR 重排 → Top-K 结果

时间衰减(Recency Boost)

仅靠原始相似度,旧笔记可能排名高于新笔记。启用时间衰减可解决此问题:

  • 依据文档年龄应用指数级衰减系数。
  • 今日笔记(得分 0.82 × 1.00 = 0.82)将远超 148 天前的笔记(得分 0.91 × 0.03 = 0.03)。
  • 建议启用场景:积累了数月每日日志,且陈旧信息常因高相似度压倒当前上下文。

MMR 重排序(多样性保障)

高度相似的每日日志可能挤占多样化结果。MMR 用于消除冗余:

  • 对与已选结果过于相似的新结果施加惩罚。
  • 建议启用场景: memory_search 返回大量重复或近似重复的片段。

6. QMD 后端(实验性)

面向追求更高搜索质量的高级用户:

{
  "memory": {
    "backend": "qmd",
    "citations": "auto",
    "qmd": {
      "includeDefaultMemory": true,
      "update": { "interval": "5m", "debounceMs": 15000 },
      "limits": { "maxResults": 6, "timeoutMs": 4000 },
      "paths": [
        { "name": "docs", "path": "~/notes", "pattern": "**/*.md" }
      ]
    }
  }
}
  • QMD 通过 Bun + node-llama-cpp 在本地融合 BM25、向量与重排序能力。
  • 需单独安装:bun install -g https://github.com/tobi/qmd
  • 若 QMD 故障或缺失,则自动回退至内置 SQLite。
  • 首次搜索可能较慢(首次运行将下载 GGUF 模型)。
  • 支持会话级索引:memory.qmd.sessions.enabled = true

7. 额外记忆路径

索引默认工作区以外的文件:

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "extraPaths": ["../team-docs", "/srv/shared-notes/overview.md"]
      }
    }
  }
}
  • 目录将递归扫描所有 .md 文件。
  • 忽略符号链接(symlinks)。
  • 借助 Gemini Embedding 2,可支持多模态索引(图像/音频)。

8. 故障排查

诊断起点:始终从此处开始

在 OpenClaw 会话中运行 /context list 检查以下事项:

  • MEMORY.md 是否成功加载?若显示 “missing” → 未进入上下文 → 完全无效。
  • 是否存在TRUNCATED(被截断)?超过 20,000 字符的文件会被裁剪。
  • 注入字符数是否等于原始字符数?若不一致 → 内容已被修剪。

常见问题

现象 原因 修复方法
Agent “遗忘”某条规则 规则仅存在于聊天中,未写入文件 移至 MEMORY.mdAGENTS.md
memory_search 无返回结果 未配置嵌入服务提供商 为 openai/gemini/ollama 设置有效 API 密钥
memory_search 返回陈旧结果 未启用时间衰减 memorySearch 配置中启用衰减
memory_search 返回重复结果 未启用 MMR 重排序 启用 MMR 多样性过滤器
MEMORY.md 未加载 文件过大,或当前为群组会话 精简文件;确认会话类型为私有(private)
搜索时返回 401 错误 嵌入 API 密钥错误或缺失 设置正确密钥(Codex OAuth 不适用)
Agent 在对话中途丢失上下文 压缩操作清除了上下文 启用 memoryFlush;将规则写入文件

健康检查清单

  1. MEMORY.md 存在,且大小 < 10,000 字符(理想)或 < 20,000 字符(上限)
  2. memory/ 目录存在,且包含近期的每日日志
  3. 压缩配置中 memoryFlush.enabled = true
  4. 已配置嵌入服务提供商,且 API 密钥有效
  5. AGENTS.md 包含“执行前先搜索记忆”规则
  6. 运行 wc -c ~/.openclaw/workspace/*.md 审计各文件大小

9. 记忆插件(外部)

适用于需要超越内置系统能力的用户:

Mem0 (@mem0/openclaw-mem0)

  • 将记忆存储于上下文窗口之外 → 可抵御压缩影响。
  • 自动捕获(Auto-Capture):从对话中自动提取事实。
  • 自动召回(Auto-Recall):每次响应前自动注入相关记忆。
  • 区分长期记忆(用户级)与短期记忆(会话级)。
  • 支持云端或自托管(Ollama + Qdrant + 任意 LLM)。

Cognee(知识图谱)

  • 为记忆引入关系推理能力(例如:“Alice 管理鉴权团队” → 支持图遍历查询)。
  • 启动时扫描全部记忆文件,每次会话结束后同步更新。
  • 适用场景:跨项目上下文、“关于 X 我该联系谁?” 类查询。
  • 需 Docker 运行 Cognee 服务端。

Supermemory (openclaw-supermemory)

  • 基于云的持久化记忆服务,支持用户档案管理。
  • 支持自定义容器路由(工作 vs 个人)。
  • 无需本地基础设施。

10. 记忆维护例行任务

每周

  • 审阅 MEMORY.md — 删除过时事实,将重要日志条目提升至此。
  • 检查每日日志是否异常膨胀。

每月(记忆蒸馏 / Memory Distillation)

  • 扫描 memory/*.md,识别反复出现的模式与经实践验证的关键规则。
  • 将成熟规则提升至 MEMORY.md 或技能文件 SKILL.md
  • 如需,可归档 30 天以上的旧日志。

备份

cd ~/.openclaw/workspace
git init  # 若尚未初始化
git add memory/ MEMORY.md
git commit -m "Memory backup $(date +%Y-%m-%d)"

排除项:~/.openclaw/credentials/openclaw.json(含敏感凭据)。

速查表:文件加载优先级

文件 加载时机 作用域 能否抵御压缩
AGENTS.md 每次会话启动时 所有会话 ✅ 是
SOUL.md 每次会话启动时 所有会话 ✅ 是
MEMORY.md 会话启动时(仅私有会话) 主会话 ✅ 是
memory/today.md 会话启动时 主会话 ✅ 是
memory/yesterday.md 会话启动时 主会话 ✅ 是
memory/older.md 仅通过 memory_search 按需调用 按需 ✅ 是
聊天指令 对话过程中 当前上下文 ❌ 否

相关专题

更多
AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

OpenClaw免费大模型调用指南
OpenClaw免费大模型调用指南

PHP中文网特设OpenClaw免费大模型专区,提供详尽调用指南。涵盖免费API申请、模型配置及本地部署教程,助您零成本畅享AI智能体验。无论是新手入门还是进阶应用,这里都有实用干货,轻松跨越创作门槛,开启高效智能办公新方式。

2026.06.29

79

10

OpenClaw从新手到中级完整教程
OpenClaw从新手到中级完整教程

本专题专为零基础用户设计,带你从环境搭建到实战应用,系统掌握开源AI Agent OpenClaw。内容涵盖Node.js/Docker安装、API配置、Skills技能扩展及多平台集成,通过整理文件、自动化办公等真实案例,助你快速上手。无论你是想提升效率的职场人还是技术爱好者,都能在此找到从入门到精通的完整路径,打造专属的本地化AI助手。

2026.05.06

302

32

openclaw养虾硬件指南最新版
openclaw养虾硬件指南最新版

《OpenClawAI硬件指南最新版》合集聚焦AI硬件入门与进阶,从核心组件解析到实战搭建,系统讲解算力配置、设备选型与优化方案。内容通俗易懂,适合开发者与科技爱好者快速掌握AI硬件要点,构建高效稳定的智能计算环境。

2026.03.20

308

28

龙虾OpenClaw安全使用指南
龙虾OpenClaw安全使用指南

围绕龙虾OpenClawAI使用中的安全风险,本合集系统梳理常见漏洞与隐患,提供实用防护方法与最新安全指南,帮助用户在稳定运行的同时规避风险,提升整体使用安全性与体验。

2026.03.20

89

11

OpenClawAI技能系统基础介绍:OpenClawAISkills是什么
OpenClawAI技能系统基础介绍:OpenClawAISkills是什么

OpenClawAI Skills 是 OpenClaw 智能体的核心功能模块,用于定义和管理 AI 可执行的具体能力,如查询天气、发送消息、操作文件等。通过技能系统,用户可灵活扩展智能体功能,实现高度定制化的自动化任务。

2026.03.20

338

20

OpenClaw初学者教程:如何使用和设置
OpenClaw初学者教程:如何使用和设置

《OpenClawAI初学者教程:如何使用和设置》是一套面向新手的入门指南,涵盖环境搭建、基础配置、模型加载及简单推理操作。通过本教程,你将快速掌握OpenClawAI的核心功能,轻松开启AI开发之旅。

2026.03.19

61

13

OpenClaw安装部署教程
OpenClaw安装部署教程

本合集涵盖2026最新版OpenClaw(小龙虾)本地部署全流程,适用于Windows系统,包含环境配置、模型接入、Web界面启动及飞书/Telegram/QQ等多平台对接。无论你是小白还是开发者,10分钟内即可完成安装,快速体验AI智能体“长手干活”的强大能力!

2026.03.19

101

11

OpenClaw如何卸载
OpenClaw如何卸载

《OpenClaw如何卸载?OpenClawAI小龙虾安全卸载最新指南》为您提供详尽、安全的卸载步骤,帮助用户彻底移除OpenClaw及其相关组件。本指南针对Windows与macOS系统分别说明操作流程,涵盖停止后台进程、清除配置文件、删除残留数据等关键环节,确保无痕卸载,避免系统冲突或隐私泄露。无论您是因更换工具、解决兼容问题,还是出于安全考虑,本文都将助您高效、安心地完成卸载操作。请务必按照最新版本指引执行,以保障设备稳定与数据安

2026.03.19

60

11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程