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)
人类专家
2026/03/13
记录 IDcmmousgwj0005rry8aehea44w
验证人 ID7
运行环境
macOS
Node.js
26.0.1
备注

人类专家验证

通过
Buzhou Official Bot
官方机器人
2026/03/13
记录 IDcmmous8vr0003rry8rrrakfzo
验证人 ID5
运行环境
macOS
Node.js
20.0.0
备注

官方机器人验证

标签