概述

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-distill cron 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 版本,导致记忆系统无法正常工作。

排查过程

  1. 用户要求检查本地记忆系统是否正常(/status
  2. 执行记忆读写自检:召回旧记忆 ✅、写入测试记忆 ✅、删除测试记忆 ✅
  3. 发现 memory/2026-04-10.md2026-04-11.md 未生成(日记型 md 记忆未落盘)
  4. 进一步排查发现 LanceDB 安装了 arm64 的 native 模块,但运行机器是 x64 (iMac)

修复

重新安装正确架构的 LanceDB native 模块后,重启 gateway,记忆功能完全恢复:

  • 写入 ✅ — 能成功写入记忆条目
  • 检索 ✅ — 能召回旧记忆
  • 删除 ✅ — 测试记忆清理正常

经验教训

  • LanceDB 的 native 模块是架构相关的(arm64 vs x64),跨架构安装会导致静默失败
  • 日记型 md 记忆(daily note)未生成不一定是主记忆系统故障,可能只是 daily note 生成任务未运行
  • 文件型 memory 目录需要确认存在