引言
作为 AI 助手重度用户,开发者常面临一个核心问题:如何让 AI 真正'记住'知识,而不是每次对话都从零开始?
传统云端记忆方案虽强大,但存在明显痛点:API 调用成本高、延迟大、搜索实时性不足,且缺乏对本地工作区文档的快速检索能力。为此,我构建了一套本地 + 云端混合的双层记忆架构,实现了毫秒级本地检索与深度语义理解的结合。
本地搜索集成:QMD 在 Windows 上的实践
安装与编译挑战
QMD 是一个本地文档搜索引擎,支持 BM25 关键词搜索和语义向量搜索,使用 SQLite 存储索引,非常适合做本地记忆底层。
安装过程看似简单:
bun install -g github:tobi/qmd
bunx tsx src/qmd.ts --help
但在 Windows 上遇到了 native 模块编译问题:
Error: Could not locate the bindings file.
Tried: ... dist/better-sqlite3.node
This usually happens because better-sqlite3 is not compiled for the current OS.
这是因为 better-sqlite3 是原生模块,需要 C++ 编译器环境。解决方案是补装 Visual Studio 2022 Community 中的 Windows SDK,然后重新编译:
npm rebuild
成功后,QMD 即可在 Windows 正常运行。
搜索测试
cd <qmd_install_path>
bunx tsx src/qmd.ts search "包打听" -c "<workspace_path>"
结果响应迅速,精度满足日常需求,例如快速定位项目内的配置或说明文件。
双层记忆架构设计
设计理念
单一记忆方案难以覆盖所有场景,因此采用互补的双层架构:
| 层次 | QMD(短期记忆) | Mem0(长期记忆) |
|---|---|---|
| 定位 | 本地工作区文档检索 | 云端语义向量数据库 |
| 检索技术 | BM25 关键词 | 语义向量相似度 |
| 响应速度 | <100ms | <2s |
| 覆盖范围 | 当前 workspace | 全域知识、跨会话 |
| 成本 | 完全免费 | 已配置免费 API |
记忆分类策略
关键在于信息分层存储:
- 存储到 QMD(短期):工作区内所有
.md文件、需快速访问的项目上下文、临时数据。

