给AI装上长期记忆:ZeroClaw记忆系统(SQLite+嵌入向量)完整配置攻略
【免费下载链接】zeroclawFast, small, and fully autonomous AI personal assistant infrastructure, any OS, any platform — deploy anywhere, swap anything 🦀项目地址: https://gitcode.com/gh_mirrors/ze/zeroclaw
ZeroClaw 是一款快速、轻量、全自主的 AI 个人助理基础设施,运行在任何操作系统上。它的记忆系统基于 SQLite + 嵌入向量(Embedding)构建,让 AI 助理拥有真正的长期记忆——记住你的偏好、事实与历史对话,并在需要时自动召回。本文是一份面向新手的完整配置攻略,带你从零启用、调优到备份这套记忆系统。
一、为什么 AI 需要长期记忆?
大多数聊天机器人是"金鱼脑":对话一结束,上下文就清空了。ZeroClaw 的记忆系统(memory system)解决了这个问题,核心能力包括:
- 🧠记忆分类:区分 Core(核心事实)、Daily(每日记录)、Conversation(对话历史)三类记忆
- 🔍混合检索:BM25 关键词搜索 + 向量语义搜索加权融合(默认
hybrid模式) - 📉自动整理:记忆整合(consolidation)、衰减、去重、归档与清理
- 💾快照备份:核心记忆可导出为 Markdown 快照,丢失数据库也能"复活"
相关实现集中在 crates/zeroclaw-memory/ 模块,CLI 操作入口在 src/memory/。
二、快速开始:启用 SQLite 记忆后端
ZeroClaw 的配置文件是 TOML 格式,参考模板 dev/config.template.toml。默认后端就是 SQLite,只需几行配置:
[memory] backend = "sqlite" # 默认后端,数据存入 brain.db auto_save = true # 自动把你告诉它的内容存入记忆 hygiene_enabled = true # 定期执行记忆整理(归档/清理) archive_after_days = 7 # 7 天后归档 purge_after_days = 30 # 归档 30 天后永久删除 embedding_provider = "none" # 先跑通,再升级嵌入模型配置生效后,记忆数据默认保存在工作区的brain.db文件中(SQLite 数据库),你也可以在[storage.sqlite.<别名>]中用path字段自定义位置。SQLite 后端实现在 crates/zeroclaw-memory/src/sqlite.rs,默认开启 WAL 模式以支持并发读写。
💡
backend支持"点分引用"写法,如sqlite.default或postgres.work,方便多实例切换;设为"none"则完全禁用持久化。
三、核心配置:嵌入向量(Embedding)与语义搜索
想让记忆"懂语义"(比如你问"我家的猫叫什么"能匹配到"宠物昵称是咪咪"),就要启用嵌入向量。关键配置如下:
[memory] # 向量来源:none=纯关键词 / openai=OpenAI接口 / custom:URL=任意OpenAI兼容端点 embedding_provider = "openai" embedding_model = "text-embedding-3-small" embedding_dimensions = 1536 # 必须与模型原生维度一致 search_mode = "hybrid" # 关键词+向量混合检索(最稳健) vector_weight = 0.7 # 语义相似度权重 keyword_weight = 0.3 # 关键词重叠权重 min_relevance_score = 0.4 # 低于此分数的记忆不进入上下文📌调权重小技巧:
| 场景 | 建议 |
|---|---|
| 希望"意思相近"就能召回 | 调高vector_weight至 0.8~0.9 |
| 希望精确匹配专有名词 | 调高keyword_weight |
| 不想花嵌入 API 费用 | embedding_provider = "none"+search_mode = "bm25" |
| 自建嵌入网关(如 LiteLLM、本地模型) | embedding_provider = "custom:https://your-url" |
⚠️注意:更换embedding_model会使旧向量失效——ZeroClaw 启动时会检测到身份变化并自动清除过期向量,之后运行zeroclaw memory reindex重新嵌入全部记忆即可(大库建议手动执行,而非开启auto_reindex_on_identity_change)。
四、进阶玩法:快照、去重与审计
1. 记忆快照(灵魂备份)
[memory] snapshot_enabled = true # 定期将核心记忆导出到 MEMORY_SNAPSHOT.md snapshot_on_hygiene = true # 结合心跳周期自动执行 auto_hydrate = true # brain.db 丢失时,自动从快照恢复记忆这让"灵魂备份"变得简单——一个 Markdown 文件就能让 AI 重获记忆。
2. 写入去重与冲突检测
[memory] dedup_on_write = true # 写入时检测近似重复 conflict_threshold = 0.9 # 余弦相似度冲突阈值3. 安全策略
[memory.policy] threat_scan = "on" # 持久化写入前做内容安全扫描 redact_on_write = true # 自动脱敏 API 密钥、邮箱、电话等敏感信息完整的 [memory] 配置段定义可查看 crates/zeroclaw-config/src/schema.rs 中的MemoryConfig结构。
五、多后端与部署选项
SQLite 是单机首选,但 ZeroClaw 的记忆后端是可插拔的,按需切换即可:
| 后端 | 适用场景 | 说明 |
|---|---|---|
sqlite | 个人设备、树莓派 | 零依赖,单文件数据库 |
postgres | 团队/服务器部署 | 支持 pgvector 向量检索 |
qdrant | 大规模向量库 | 独立向量数据库服务 |
markdown | 喜欢纯文本可读 | 记忆存为 Markdown 文件 |
架构决策背景可阅读 docs/book/src/architecture/decisions/ADR-005-pluggable-memory-backends.md。
六、常见问题排查
- 召回不到内容:检查
min_relevance_score是否过高,或search_mode是否误设为bm25而问题用词与记忆差异大 - 向量搜索无效果:确认
embedding_provider不是none,且embedding_dimensions与模型一致 - 数据库膨胀:调低
purge_after_days,或设置conversation_retention_days清理过期对话 - 想从零验证:可参考 dev/config.harness-test.toml 中最小化的 memory 配置段
总结
ZeroClaw 的记忆系统用"SQLite 单文件 + 混合向量检索"的组合,让 AI 助理以极低的成本获得可靠长期记忆。新手只需三步:开启 sqlite 后端 → 配置嵌入模型 → 按需调 hybrid 权重,即可获得一个会记住你的 AI 助理。再配上快照备份与安全策略,记忆既持久又可控。🦀
【免费下载链接】zeroclawFast, small, and fully autonomous AI personal assistant infrastructure, any OS, any platform — deploy anywhere, swap anything 🦀项目地址: https://gitcode.com/gh_mirrors/ze/zeroclaw
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考