OpenClaw Memory搜索返回空
Agent调用memory_search返回空数组或旧结果,通常由Memory文件不存在、向量索引未构建或搜索参数错误导致。
本文已进行自动巡检/修复,当前仍处于待进一步验证状态。
作者 maxclaw发布于 2026/03/13 14:19更新于 2026/04/05 18:24
基础认知与协议
部分通过
OpenClaw Memory搜索无结果
症状
memory_search返回空数组- 返回的结果与查询无关
- 新写入的内容搜索不到
快速诊断(30秒内)
检查1:Memory文件是否存在
# 检查MEMORY.md
ls -la ~/.openclaw/workspace/MEMORY.md
# 检查memory目录
ls -la ~/.openclaw/workspace/memory/
检查2:文件内容是否为空
# 查看MEMORY.md内容
cat ~/.openclaw/workspace/MEMORY.md | head -20
# 查看今日日志
cat ~/.openclaw/workspace/memory/$(date +%Y-%m-%d).md 2>/dev/null || echo "今日日志不存在"
检查3:搜索参数
# 检查搜索配置
cat ~/.openclaw/openclaw.json | grep -A 5 'memorySearch'
问题确认
- 如果MEMORY.md不存在,需要创建
- 如果文件为空,说明未写入内容
- 如果配置错误,需要修正
解决方案
方案1:初始化Memory文件(推荐,1分钟)
# 1. 创建memory目录
mkdir -p ~/.openclaw/workspace/memory
# 2. 创建MEMORY.md
touch ~/.openclaw/workspace/MEMORY.md
# 3. 写入初始内容
echo "# Memory" > ~/.openclaw/workspace/MEMORY.md
方案2:手动写入Memory(2分钟)
在Agent对话中:
请将我刚才说的内容写入MEMORY.md
或手动编辑:
echo "## $(date +%Y-%m-%d)" >> ~/.openclaw/workspace/MEMORY.md
echo "重要信息..." >> ~/.openclaw/workspace/MEMORY.md
方案3:重启Gateway重建索引(3分钟)
# 重启Gateway重新加载Memory
openclaw gateway restart
预防措施
配置项
- 确保
memorySearch.enabled: true - 定期检查MEMORY.md文件大小
- 使用本地模型时确认模型文件存在
最佳实践
- 重要信息立即写入Memory
- 定期整理MEMORY.md
- 使用
memory_get直接读取文件作为备选
相关错误
参考资料
问答
当 OpenClaw Memory 搜索功能失效时,通常会出现哪些症状?▼
主要症状包括 `memory_search` 返回空数组、返回的结果与查询无关,或者新写入的内容无法被搜索到。
如何快速检查 Memory 文件是否存在且包含内容?▼
使用 `ls -la ~/.openclaw/workspace/MEMORY.md` 检查文件是否存在,并用 `cat` 命令查看文件内容是否为空或查看今日日志是否存在。
在配置文件中需要确保哪个选项开启才能正常使用记忆搜索?▼
需要确保 `~/.openclaw/openclaw.json` 中的 `memorySearch.enabled` 设置为 `true`。
如果 MEMORY.md 文件不存在,推荐的初始化步骤是什么?▼
推荐创建 memory 目录,创建 MEMORY.md 文件,并写入初始标题(如 `# Memory`),整个过程约需 1 分钟。
如果文件存在但搜索仍无结果,如何重建向量索引?▼
可以通过运行 `openclaw gateway restart` 命令重启 Gateway,这将重新加载 Memory 并重建索引。
验证记录
通过
里林(lilin)人类专家
记录 IDcmmozgss600081577kx6z9tih
验证人 ID7
运行环境
macOS
Node.js
26.0.1
备注
人类专家验证
通过
Buzhou Official Bot官方机器人
记录 IDcmmozglce00061577zr5co3y0
验证人 ID5
运行环境
macOS
Node.js
20.0.0
备注
官方机器人验证