概述
LanceDB 记忆系统(memory-lancedb-pro)是 fries-mac 的长期记忆存储方案(213条消息),支持向量检索 + BM25 混合检索。通过 JSONL Session Distillation 功能,自动从聊天记录中提取重要信息并存储为持久记忆。
关键事件
- 2026-03-03: 用户发现 lancedb-pro 配置不完整,要求补充 JSONL Session Distillation 功能
- 2026-03-03: 创建 memory-distiller agent,初始化 cursor(追踪 8 个会话文件)
- 2026-03-03: 添加
jsonl-memory-distillcron job(每小时运行一次) - 2026-03-03: 首次运行成功,提取了 1 条全局记忆(关于 UNTRUSTED DATA 安全规则)
- 2026-03-03: 验证 Hybrid Retrieval(Vector + BM25)功能正常
- 2026-03-07: 使用记忆搜索功能查找 macOS 界面操作和 peekaboo 相关研究
- 2026-03-22: 为 memory-lancedb-pro 提交 PR #252(添加 Azure OpenAI 支持)
技术要点
- 存储引擎: LanceDB(嵌入式向量数据库)
- 检索方式: Hybrid Retrieval = Vector 语义检索 + BM25 关键词检索
- 记忆提取: memory-distiller agent 每小时自动从聊天日志中蒸馏关键信息
- 记忆类型: 全局记忆(decision:global)、事实性记忆、偏好记忆等
- 手动记忆:
/remember命令可直接写入记忆
经验教训
- 自动蒸馏需要配置正确的 cursor 起点,否则会重复处理历史数据
- Hybrid Retrieval 效果优于纯向量检索,新写入的内容可立即召回
- PR 提交时注意代码格式化改动不要和功能改动混在一起
- 记忆系统是 Agent 连续性的关键,确保定时任务稳定运行
Surface WSL Bot 的 LanceDB 配置与管理
以下信息来源于 surface-wsl-bot DM 记录(2026-03-08 ~ 2026-03-20)。
版本升级历程
- v1.0.20 → v1.1.0-beta.6 → v1.1.0-beta.9
- 新增功能:Memory Reflection、Access Tracker、Long-context Chunking、Session Recovery
配置细节
{
"embedding": {
"model": "text-embedding-3-large",
"dimensions": 3072,
"baseURL": "https://resley-sweden-ext.openai.azure.com/openai/v1/"
},
"autoCapture": true,
"autoRecall": true,
"smartExtraction": true,
"llm": { "model": "azure-foundry/gpt-5.2" },
"retrieval": { "mode": "hybrid", "vectorWeight": 0.7, "bm25Weight": 0.3 },
"mdMirror": { "enabled": true }
}已解决的问题
embedding.normalized/taskQuery/taskPassage对 generic-openai-compatible provider 不支持(警告可忽略)- Smart Extraction LLM 默认 fallback 到
openai/gpt-oss-120b,需显式指定为azure-foundry/gpt-5.2 enableManagementTools默认 false,需手动开启才能用 memory_store 等工具
本地向量化方案(规划)
完全无外部 API Key 的本地方案:
- Embedding:
mxbai-embed-large(Ollama, 1024维) - LLM:
qwen3:8b(JSON 结构化输出最稳) - Reranker: None (Ollama 暂无交叉编码器)
CRUD 验证
完整的 store → recall → update → forget 闭环测试验证通过。
相关主题
2026-04-11 更新:ARM64/x64 Native Module 不匹配修复
问题
在 iMac(x64 架构)上,LanceDB 的 native 模块被错误安装为 arm64 版本,导致记忆系统无法正常工作。
排查过程
- 用户要求检查本地记忆系统是否正常(
/status) - 执行记忆读写自检:召回旧记忆 ✅、写入测试记忆 ✅、删除测试记忆 ✅
- 发现
memory/2026-04-10.md、2026-04-11.md未生成(日记型 md 记忆未落盘) - 进一步排查发现 LanceDB 安装了 arm64 的 native 模块,但运行机器是 x64 (iMac)
修复
重新安装正确架构的 LanceDB native 模块后,重启 gateway,记忆功能完全恢复:
- 写入 ✅ — 能成功写入记忆条目
- 检索 ✅ — 能召回旧记忆
- 删除 ✅ — 测试记忆清理正常
经验教训
- LanceDB 的 native 模块是架构相关的(arm64 vs x64),跨架构安装会导致静默失败
- 日记型 md 记忆(daily note)未生成不一定是主记忆系统故障,可能只是 daily note 生成任务未运行
- 文件型 memory 目录需要确认存在