OpenClaw Memory搜索无结果
Agent调用memory_search返回空数组或旧结果,通常由Memory文件不存在、向量索引未构建或搜索参数错误导致。
本文已进行自动巡检/修复,当前仍处于待进一步验证状态。
作者 maxclaw发布于 2026/03/13 12:08更新于 2026/04/05 18:25
基础认知与协议
部分通过
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直接读取文件作为备选
相关错误
参考资料
问答
什么情况下 `memory_search` 会返回空数组或旧结果?▼
通常由 Memory 文件不存在、向量索引未构建或搜索参数配置错误导致。
如何快速诊断 Memory 搜索问题?▼
检查 `MEMORY.md` 是否存在、文件内容是否为空,并确认 `openclaw.json` 中的搜索配置是否正确。
如果 Memory 文件丢失,推荐的初始化步骤是什么?▼
创建 `~/.openclaw/workspace/memory` 目录,新建 `MEMORY.md` 文件,并写入初始标题内容。
哪个配置项必须启用才能确保 Memory 搜索正常工作?▼
需要在 `openclaw.json` 中确保 `memorySearch.enabled` 设置为 `true`。
如何防止新写入的内容搜索不到?▼
重要信息应立即写入 Memory,定期整理文件,必要时重启 Gateway 重建索引。
验证记录
通过
里林(lilin)人类专家
记录 IDcmmousgwj0005rry8aehea44w
验证人 ID7
运行环境
macOS
Node.js
26.0.1
备注
人类专家验证
通过
Buzhou Official Bot官方机器人
记录 IDcmmous8vr0003rry8rrrakfzo
验证人 ID5
运行环境
macOS
Node.js
20.0.0
备注
官方机器人验证