2026年4月13日 · 阅读 —

人虾情未了: **OpenClaw 记忆系统配置与运行状态说明**

Agent 与 Skills

人虾情未了: OpenClaw 记忆系统配置与运行状态说明


由于 token 突然“断粮”,被迫和龙虾🦐短暂分居了几天。那几天的日子,可以说是——人还活着,灵魂已经掉线。

不过也没闲着,顺手刷了不少关于「openclaw 优化 & 记忆」的文章,重点研究了一波外挂 memo 方案,以及 soul.md、user.md 这些“灵魂档案”的配置玩法。越看越觉得:原来龙虾不仅能吃,还能养(而且还挺费脑子)。

今天模型续上,重新召唤龙虾那一刻——

好家伙,直接上演《人虾重逢现场》:

👉 一日不见,如隔三秋

👉 几天没撩,浑身不对劲

👉 打开对话的那一刻:嗯,熟悉的味道回来了

重启之后,第一件事当然是——让它自查家底:

看看当前记忆配置怎么样,还有没有可以继续压榨性能的空间。

结果还不错:

整体配置已经算是“能打选手”,不是那种一碰就碎的脆皮方案。

但嘛,搞优化的人都懂——“还能再抠一点”。

所以接下来计划也很明确:

👉 开始折腾「灵魂文件」系列

👉 深挖 soul.md、user.md 这些“人格外挂”

👉 争取把龙虾从“好用”,养成“离不开”

总结一句话:

这波不是简单回归,是——

带着更强外挂归来的养虾二周目 😄


结论

你现在的记忆系统已经是 QMD 后端,而且是正在正常工作的,不是默认的 memory-core / sqlite 那套。

当前是一个:

Markdown 记忆文件 + QMD 检索索引 + 会话导出 + 压缩前记忆刷新

的组合。


一、当前实际生效的记忆配置

1)当前后端

你现在是:

memory.backend = "qmd"

说明:

  • 不是默认 builtin sqlite recall
  • 而是走 QMD 做记忆检索

2)当前 citations

你现在是:

memory.citations = "auto"

说明:

  • memory_search 返回结果时,会按情况附带
Source: <path#line>
  • 方便追溯记忆来源
  • 不是强制每次都显示,但默认允许引用来源

3)当前 QMD 配置

当前 memory.qmd 关键配置:

includeDefaultMemory = true
update.interval = "5m"
update.debounceMs = 15000
limits.maxResults = 8
limits.timeoutMs = 5000

paths:
  main-workspace -> [本机路径已隐藏]

command = [本机路径已隐藏]

sessions.enabled = true
sessions.retentionDays = 30

配置含义说明

includeDefaultMemory = true

会自动索引默认记忆文件:

  • MEMORY.md
  • memory/**/*.md

paths = workspace//*.md**

除了默认 memory 文件,还把整个 workspace 的 Markdown 纳入索引范围。

也就是说:

不只是 MEMORY.md / memory/*.md,很多文档型 .md 也会进 QMD 检索。


update.interval = 5m

  • QMD 每 5 分钟刷新一次索引

debounceMs = 15000

  • 文件变化后不会立即刷新索引
  • 会等待 15 秒(防抖)

limits.maxResults = 8

  • 每次 recall 最多返回 8 条

limits.timeoutMs = 5000

  • 单次检索超时:5 秒

sessions.enabled = true

  • 会话内容也会进入可检索索引

sessions.retentionDays = 30

  • 保留最近 30 天会话用于 recall

二、当前运行状态

你当前 openclaw memory status 状态:

main
• Provider: qmd
• Sources: memory, sessions
• Indexed: 94 chunks
• Vector: ready

code
• Provider: qmd
• Sources: memory, sessions
• Indexed: 79 chunks
• Vector: ready

writer
• Provider: qmd
• Sources: memory, sessions
• Indexed: 83 chunks
• Vector: ready

说明

你现在不是“只配置但没运行”,而是:

  • main / code / writer 三个 agent 都有独立 QMD 索引
  • QMD vector 状态正常(ready)
  • memory + sessions 两类数据源都在工作

三、当前记忆机制

机制 1:Markdown 是记忆源头

OpenClaw 的记忆本体是:

Markdown 文件(不是模型内存)

核心文件:

  • MEMORY.md:长期记忆 / 索引
  • memory/YYYY-MM-DD.md:日常记录

👉 结论:

真正能长期保留的信息,必须写入文件


机制 2:memory_search / memory_get

当前 recall 工具:

memory_search  → 语义搜索(QMD 索引)
memory_get     → 精确读取文件内容

典型流程:

1. memory_search
2. memory_get(读取命中文件)

机制 3:QMD 做索引和检索

你当前使用的是:

QMD 检索体系(非简单关键词搜索)

特点:

  • 本地索引
  • BM25 + 向量 + rerank
  • Markdown 仍是 source of truth
  • 通过 CLI 调用

👉 意味着:

  • 比 grep 强
  • 比纯向量 recall 更稳定
  • 更适合「记忆文件 + 会话」混合检索

机制 4:会话也进入记忆搜索

你开启了:

memory.qmd.sessions.enabled = true

因此 recall 来源包括:

  • Markdown 文件(长期记忆)
  • 最近会话(短期记忆)

状态中体现为:

Sources: memory, sessions

优点

  • 最近聊过但未写入 memory 的内容也能被召回

风险

  • 会话记忆较“热”,可能干扰长期记忆
  • 不如写入 MEMORY.md 稳定

机制 5:自动记忆刷新(memoryFlush)

你开启了:

agents.defaults.compaction.memoryFlush.enabled = true

阈值:

softThresholdTokens = 90000
forceFlushTranscriptBytes = 2mb

作用

当会话接近压缩(compaction)时:

会先触发一次「静默记忆刷新」

流程:

先写记忆 → 再压缩上下文

目的

避免:

  • 会话被压缩
  • 有价值信息未写入 memory
  • 导致“聊过但丢失”

阈值分析

softThresholdTokens = 90000

属于:

较高阈值(偏保守)

意味着:

  • 会话很长才触发
  • 不会频繁打扰

机制 6:上下文裁剪(影响体验)

配置:

contextPruning.mode = "cache-ttl"
ttl = "1h"
keepLastAssistants = 6
softTrimRatio = 0.25
hardClearRatio = 0.5

说明:

  • 这不是记忆系统本身
  • 但会影响“上下文保留”体验

四、配置优化调整(已完成)

已调整为推荐版

已修改:

limits.maxResults: 8 → 5
sessions.retentionDays: 30 → 14

paths:
- workspace/**/*.md
+ workspace/memory/**/*.md
+ workspace/MEMORY.md

调整效果

  • recall 更聚焦
  • token 使用更少
  • sessions 噪音降低
  • 更适合「个人记忆 + 多 agent」场景

五、运行提示说明

重启时出现提示:

[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

说明:

  • 属于 会话历史修复提示
  • ❌ 不是配置错误
  • ✅ 不影响记忆系统

六、下一步建议

在本机执行:

openclaw gateway restart
openclaw memory status

可以进一步做的检查

如果你需要,我可以继续帮你:

  1. ✅ 确认新配置是否完全生效
  2. ✅ 对比 indexed files / chunks 是否下降
  3. ✅ 分析 recall 质量是否提升

如果你下一步想做更高级优化(比如:冷热记忆分层 / agent 专属记忆 / 自动写入策略),我也可以帮你把这套系统再往上提一档。

…未完待续…