引言:为什么需要本地记忆搜索?
OpenClaw 作为一款强大的 AI 智能体框架,其默认配置下往往存在“金鱼记忆”问题——每次对话都从零开始,无法记住之前的交互内容。MemorySearch(记忆搜索)功能正是解决这一痛点的关键,它通过向量化存储和检索技术,让您的 AI 智能体拥有长期记忆能力。
本地配置的优势:
数据安全:所有记忆数据存储在本地,无需担心隐私泄露
零成本:无需支付云端 API 调用费用
离线可用:即使没有网络连接也能正常工作
响应快速:本地推理延迟低,搜索速度快
本文将详细介绍三种主流本地配置方案,从最简单的 Ollama 方案到最灵活的自定义配置,总有一款适合您。
一、准备工作:环境检查
在开始配置前,请确保您的系统满足以下条件:
1.1 基础环境
# 检查 OpenClaw 版本
openclaw --version
# 检查配置文件位置
ls -la ~/.openclaw/openclaw.json
# 检查当前记忆状态
openclaw memory status1.2 目录结构准备
# 创建记忆工作区目录
mkdir -p ~/.openclaw/workspace/memory
mkdir -p ~/.openclaw/workspace/memory/logs
mkdir -p ~/.openclaw/workspace/memory/projects
mkdir -p ~/.openclaw/workspace/memory/system
# 创建基础记忆文件
touch ~/.openclaw/workspace/MEMORY.md二、方案一:Ollama 方案(推荐新手)
这是最简单、最稳定的本地配置方案,适合大多数用户。
2.1 安装 Ollama
# Linux/macOS 安装
curl -fsSL https://ollama.ai/install.sh | sh
# Windows 用户请访问 https://ollama.ai/download 下载安装包
# 启动 Ollama 服务
ollama serve &2.2 下载嵌入模型
根据您的硬件配置选择合适的模型:
# 方案A:轻量级模型(适合低配置设备)
ollama pull nomic-embed-text # 274MB,维度768,英文优化
# 方案B:中文优化模型(推荐中文用户)
ollama pull gte-qwen2 # 约500MB,中文支持优秀
# 方案C:高性能模型(适合高配置设备)
ollama pull mxbai-embed-large # 670MB,维度1024,多语言支持
# 验证模型下载成功
ollama list2.3 配置 OpenClaw
编辑配置文件 ~/.openclaw/openclaw.json:
{
"agents": {
"defaults": {
"memorySearch": {
"enabled": true,
"sources": ["memory"],
"provider": "ollama",
"model": "gte-qwen2",
"chunking": {
"size": 1000,
"overlap": 200
},
"store": {
"driver": "sqlite",
"vector": {
"enabled": true
}
},
"sync": {
"onSessionStart": true,
"watch": true,
"interval": 60
},
"query": {
"maxResults": 10,
"hybrid": {
"enabled": true,
"vectorWeight": 0.7,
"textWeight": 0.3
}
}
}
}
},
"plugins": {
"entries": {
"ollama": {
"enabled": true
}
}
}
}2.4 重启并验证
# 重启 OpenClaw 服务
openclaw restart
# 验证配置生效
openclaw config get agents.defaults.memorySearch.provider
# 应该输出 "ollama"
# 测试记忆功能
openclaw memory add "这是我的第一条测试记忆" --tags "测试"
openclaw memory search "测试" --limit 3三、方案二:OpenAI 兼容端点方案(灵活配置)
如果您已经运行了其他兼容 OpenAI API 的本地服务(如 LocalAI、text-generation-webui 等),可以使用此方案。
3.1 配置示例
{
"agents": {
"defaults": {
"memorySearch": {
"enabled": true,
"sources": ["memory", "sessions"],
"provider": "openai",
"model": "nomic-embed-text",
"remote": {
"baseUrl": "http://localhost:11434/v1",
"apiKey": "ollama",
"batch": {
"enabled": false
}
},
"fallback": "none",
"chunking": {
"tokens": 800,
"overlap": 100
},
"store": {
"driver": "sqlite",
"path": "~/.openclaw/memory/main.sqlite",
"vector": {
"enabled": true,
"dims": 768
}
}
}
}
}
}3.2 端点测试
# 测试 Ollama 的 OpenAI 兼容端点
curl http://localhost:11434/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"model": "nomic-embed-text",
"input": "测试文本"
}'四、方案三:纯本地 GGUF 模型方案(零依赖)
此方案完全离线,无需任何外部服务,适合对隐私和安全要求极高的场景。
4.1 下载 GGUF 模型
# 创建模型目录
mkdir -p ~/.cache/openclaw/models
cd ~/.cache/openclaw/models
# 下载 nomic-embed-text 的 GGUF 格式
wget https://huggingface.co/nomic-ai/nomic-embed-text-v1.5-GGUF/resolve/main/nomic-embed-text-v1.5.Q8_0.gguf
# 或者下载其他模型
# wget https://huggingface.co/mixedbread-ai/mxbai-embed-large-v1-GGUF/resolve/main/mxbai-embed-large-v1.Q8_0.gguf4.2 配置本地模型
{
"agents": {
"defaults": {
"memorySearch": {
"enabled": true,
"provider": "local",
"model": "~/.cache/openclaw/models/nomic-embed-text-v1.5.Q8_0.gguf",
"local": {
"cacheDir": "~/.cache/openclaw/embeddings",
"gpuLayers": 0,
"contextSize": 512
},
"chunking": {
"size": 512,
"overlap": 64
},
"query": {
"maxResults": 8,
"minScore": 0.3,
"hybrid": {
"enabled": true,
"mmr": {
"enabled": true,
"lambda": 0.7
},
"temporalDecay": {
"enabled": true,
"halfLifeDays": 30
}
}
}
}
}
}
}五、高级配置与优化
5.1 混合搜索优化
混合搜索结合了向量搜索(语义相似度)和关键词搜索(BM25),提供更精准的结果:
"query": {
"maxResults": 15,
"hybrid": {
"enabled": true,
"vectorWeight": 0.7,
"textWeight": 0.3,
"candidateMultiplier": 3,
"mmr": {
"enabled": true,
"lambda": 0.7
},
"temporalDecay": {
"enabled": true,
"halfLifeDays": 30,
"boostRecent": true
}
}
}5.2 分块策略调优
根据您的文档类型调整分块参数:
"chunking": {
"strategy": "semantic", // 可选:fixed, semantic, recursive
"size": 1000, // 适合技术文档
"overlap": 200,
"separators": ["\n\n", "\n", "。", "?", "!", "?", "!", " ", ""]
}5.3 多代理配置
如果您有多个代理,可以为每个代理配置独立的记忆:
{
"agents": {
"defaults": {
"memorySearch": {
"enabled": true,
"provider": "ollama",
"model": "gte-qwen2"
}
},
"main": {
"memorySearch": {
"sources": ["memory", "sessions"],
"store": {
"path": "~/.openclaw/memory/main.sqlite"
}
}
},
"xiaofu-agent": {
"memorySearch": {
"sources": ["memory"],
"store": {
"path": "~/.openclaw/memory/xiaofu-agent.sqlite"
},
"query": {
"maxResults": 5
}
}
}
}
}六、验证与测试
6.1 基础功能测试
# 1. 检查配置
openclaw config get agents.defaults.memorySearch
# 2. 检查记忆状态
openclaw memory status --deep
# 3. 添加测试记忆
openclaw memory add "OpenClaw 是一个强大的 AI 智能体框架,支持长期记忆功能。" --tags "系统介绍"
openclaw memory add "我使用 OpenClaw 来管理日常工作流,包括代码编写、文档整理和任务规划。" --tags "个人使用"
openclaw memory add "记忆搜索功能通过向量数据库实现,支持语义相似度检索。" --tags "技术原理"
# 4. 测试搜索
openclaw memory search "AI 智能体" --limit 5
openclaw memory search "日常工作" --agent main
openclaw memory search --tags "技术原理"6.2 性能测试
# 测试索引速度
time openclaw memory index --verbose
# 测试搜索响应时间
time openclaw memory search "测试" --limit 10
# 查看数据库统计
sqlite3 ~/.openclaw/memory/main.sqlite "SELECT COUNT(*) as total_chunks FROM chunks;"
sqlite3 ~/.openclaw/memory/main.sqlite "SELECT source, COUNT(*) FROM chunks GROUP BY source;"6.3 集成测试
# 测试对话中的记忆召回
openclaw agent --message "我之前告诉过你关于 OpenClaw 的什么信息?" --use-memory
# 测试跨会话记忆
openclaw agent --message "总结一下你记得的关于我的所有事情" --use-memory --thinking high
# 测试文件索引
echo "# 项目计划\n\n## 目标\n1. 完成 OpenClaw 配置\n2. 测试记忆功能\n3. 部署到生产环境" > ~/.openclaw/workspace/memory/projects/plan.md
openclaw memory index --force
openclaw memory search "项目计划 目标"七、故障排除
7.1 常见问题及解决方案
问题 | 可能原因 | 解决方案 |
|---|---|---|
| 配置错误或服务未启动 | 1. 检查 |
搜索无结果 | 未索引或分块过大 | 1. 运行 |
响应缓慢 | 模型过大或硬件不足 | 1. 换用更小的嵌入模型 |
内存占用高 | 向量缓存过大 | 1. 清理缓存: |
中文搜索效果差 | 模型对中文支持不佳 | 1. 换用 |
7.2 调试命令
# 查看详细错误日志
openclaw memory index --verbose 2>&1 | tail -50
# 检查 Ollama 服务状态
curl http://localhost:11434/api/tags
# 测试嵌入端点
curl http://localhost:11434/v1/embeddings \
-H "Content-Type: application/json" \
-d '{"model": "nomic-embed-text", "input": "test"}' \
| jq '.data[0].embedding | length'
# 检查 SQLite 数据库
sqlite3 ~/.openclaw/memory/main.sqlite ".schema chunks"
sqlite3 ~/.openclaw/memory/main.sqlite "SELECT * FROM chunks LIMIT 1;"八、最佳实践
8.1 记忆管理策略
定期清理:每月清理一次低相关性记忆
# 查找并删除低分记忆
openclaw memory search " " --min-score 0.1 --max-score 0.3标签系统:使用标签分类记忆
openclaw memory add "项目A的API文档" --tags "项目A,文档,API"
openclaw memory add "会议纪要-2026-04" --tags "会议,2026年4月"版本控制:重要记忆文件使用 Git 管理
cd ~/.openclaw/workspace
git init
git add memory/
git commit -m "初始化记忆库"
8.2 性能优化建议
硬件配置:
CPU:至少 4 核
内存:8GB+(GGUF 模型需要更多)
存储:SSD 推荐,加快向量搜索速度
配置调优:
{
"memorySearch": {
"batch": {
"enabled": true,
"size": 50,
"delay": 100
},
"cache": {
"enabled": true,
"ttl": 3600,
"maxSize": 1000
}
}
}监控指标:
# 监控内存使用
watch -n 5 'ps aux | grep openclaw | grep -v grep'
# 监控响应时间
time openclaw memory search "test" > /dev/null
九、总结
通过本文的详细指导,您应该已经成功配置了 OpenClaw 的本地 MemorySearch 功能。无论选择哪种方案,核心目标都是让您的 AI 智能体拥有持久、可靠的记忆能力。
关键要点回顾:
Ollama 方案最适合新手,简单易用
OpenAI 兼容端点方案最灵活,可对接多种服务
纯本地 GGUF方案最安全,完全离线运行
混合搜索能显著提升搜索质量
定期维护是保持系统健康的关键
配置完成后,您的 OpenClaw 将不再是“金鱼记忆”,而是能够记住对话历史、学习用户偏好、积累知识库的智能助手。现在,尝试与您的智能体进行多轮对话,体验真正的长期记忆带来的便利吧!
最后提示:配置过程中如遇问题,可随时运行 openclaw doctor进行诊断,或查阅 OpenClaw 官方文档获取最新信息。
夜雨聆风