Will's AI Lab
博客
AI学习AI观点案例时间线关于
中文日本語EN
中文日本語EN

© 2026 Will AI Lab. All rights reserved.

Powered by Next.js & AI

站点

关于fuluckai.com福楽キャッテリー

社交链接

Instagram@fuluck_catteryGitHub@konayuki56小红书大阪猫舍日常FullucKitty
首页博客AI观点时间线
博客
修好 AI 的长期记忆,不只是修个报错:memory-lancedb-pro 深度分析
🎙
播客导读

点击播放本文语音版

AI学习原创

修好 AI 的长期记忆,不只是修个报错:memory-lancedb-pro 深度分析

Will2026年3月24日约 13 分钟阅读
分析对象:OpenClaw memory-lancedb-pro 插件 适用实例:ユキ / ナツ / ハル / アキ(四实例架构)

1. 为什么这次修复很重要

1.1 AI 长期记忆系统不是"可有可无"

在 OpenClaw 这类 AI Agent 运行环境中,session 的生命周期是脆弱且不可预测的。每次对话可能因为以下原因中断:

  • Session Compaction:上下文过长触发压缩,早期对话内容丢失
  • Gateway 重启:服务维护或异常导致连接重置
  • 模型限流:高强度调用触发 rate limit,强制等待或降级
  • 用户主动结束:Will 关闭对话窗口或切换设备

如果没有长期记忆系统,每次新 session 都相当于"从零开始"。AI 需要重新了解:

  • Will 的沟通偏好(简洁 vs 详细)
  • 当前项目的上下文(医院 CRM 进展到哪一步)
  • 已经踩过的坑(Kimi Coding Plan 必须用 Anthropic 格式)
  • 已确认的铁律(四实例操作前必须先查 MEMORY.md)

这种"失忆"带来的成本是隐性的但巨大的:重复解释、重复犯错、重复验证。长期记忆系统的核心价值在于知识沉淀——让 AI 从"每次重新学习"进化到"持续积累复用"。

1.2 `Default scope 'will' not found in definitions` 为什么必须修

这个错误出现在 2026-03-22 的四实例升级过程中,是 memory-lancedb-pro 插件初始化失败的症状。

根因分析:

  • memory-lancedb-pro 的 config schema 要求 scopes 字段是一个对象,包含 default 和 agentAccess 等子字段
  • 错误配置写成了 "scope": "will"(单数、字符串类型)
  • 由于 additionalProperties: false,任何未定义的字段都会导致配置校验失败
  • 结果是插件无法初始化,整个记忆系统处于假可用状态——工具存在但无法写入/召回

如果不修的后果:

问题层级 具体表现 长期影响
功能失效 memory_store 调用返回成功但实际未写入 用户以为记住了,实际没记住
假可用 memory_recall 能返回旧数据(之前存的) 新信息无法沉淀,系统逐渐僵化
知识沉淀断裂 新确认的铁律、新踩的坑无法存入 每次 session 重复踩同样的坑
判断污染 召回结果只包含旧记忆,缺少新上下文 AI 基于过时信息做决策

更严重的是,这种失效是静默的——没有明显报错,用户可能在很长一段时间内误以为记忆系统正常工作,直到发现"为什么 AI 又不记得我说过的话"时才察觉。

1.3 修复的紧迫性

2026-03-22 的事故中,ユキ、ナツ、ハル 三实例同时因配置错误进入 crash loop。这意味着:

  • 四实例架构中的 75% 失去记忆能力
  • 正在进行的蜂群升级任务被迫中断
  • ナツ(暁棉的 AI 助理)先发现并协助修复了ユキ,体现了跨实例协作的价值

这次修复不是"锦上添花",而是基础设施级别的恢复。


2. memory-lancedb-pro 到底是什么

2.1 与普通对话上下文的区别

维度 对话上下文 memory-lancedb-pro
生命周期 单次 session,随时可能 compaction 持久化存储,跨 session 保留
容量 有限(通常 8K-200K tokens) 理论上无上限(受磁盘限制)
检索方式 线性,按时间顺序 向量 + 关键词混合检索
相关性判断 无,全靠位置近 语义相似度 + BM25 分数
写入控制 自动,用户无感知 显式 memory_store 调用

对话上下文是"短期工作记忆",适合当前任务流;memory-lancedb-pro 是"长期语义记忆",适合沉淀可复用的知识。

2.2 与旧 memory-lancedb 的区别

根据部署报告(2026-03-07),从旧版升级到 Pro 的主要变化:

特性 memory-lancedb memory-lancedb-pro
Embedding 内置/本地 可配置(Jina/Gemini/OpenAI)
维度 固定 可配置(1024/768 等)
检索模式 纯向量 Hybrid(向量 + BM25)
Rerank 无 可选 cross-encoder
Scope 管理 基础 细粒度 agentAccess
AutoCapture 无 可选自动捕获对话
AutoRecall 基础 可配置权重和阈值

关键升级点:

  • Hybrid Retrieval:向量负责语义相似,BM25 负责精确匹配,两者融合提升召回质量
  • 可配置 Embedding:从 Gemini 切换到 Jina Embedding v3,成本降低 7 倍以上
  • Scope 治理:支持多 agent 隔离与共享,适应四实例架构

2.3 与四个记忆工具的关系

OpenClaw 提供四个记忆相关工具:

  • `memory_store`:显式写入记忆,需指定 text/category/importance/scope
  • `memory_recall`:主动召回记忆,支持 query/limit/scope 过滤
  • `memory_forget`:删除指定记忆,用于清理错误或过时信息
  • `memory_update`:更新已有记忆内容,保持 ID 不变

memory-lancedb-pro 是后端实现,这四个工具是前端接口。工具调用时,OpenClaw 会:

  1. 根据配置找到 memory-lancedb-pro 插件
  2. 将文本通过 Jina API 转为 embedding 向量
  3. 存入 LanceDB(本地文件)
  4. 召回时执行 hybrid search,返回相关记忆

2.4 LanceDB 的角色

LanceDB 是一个嵌入式向量数据库,在本架构中承担:

  • 存储层:记忆数据以 Lance 格式存储在本地文件(~/.openclaw/memory/lancedb-pro/)
  • 索引层:自动维护向量索引(IVF_PQ)和全文索引(BM25)
  • 查询引擎:支持 ANN 近似最近邻搜索 + 过滤条件

为什么是 LanceDB:

  • 零配置:无需单独部署数据库服务
  • 高性能:列式存储 + 向量化执行
  • 嵌入式:数据文件本地管理,适合多实例各自独立存储
  • 多模态:原生支持向量 + 标量 + 全文混合查询

局限性:

  • 各实例数据物理隔离,不自动同步
  • 不支持分布式事务
  • 大数据量时需要手动优化索引

3. 记忆系统是怎么工作的

3.1 记忆写入逻辑

当调用 memory_store 时,完整流程如下:

1. 接收参数:text, category, importance, scope
2. 确定 scope:
   - 若指定 scope,使用指定值
   - 若未指定,使用 config.scopes.default(当前为 "will")
3. 验证 scope:检查是否在 scopeDefinitions 中定义
4. 调用 Jina Embedding API:
   - text → 1024 维向量
   - model: jina-embeddings-v3
   - task: retrieval.passage
5. 写入 LanceDB:
   - 表名:memories
   - 字段:id, text, vector, category, importance, scope, timestamp, metadata
6. 返回:存储成功确认

关键配置(当前):

json
{
  "embedding": {
    "provider": "openai-compatible",
    "apiKey": "jina_xxx",
    "model": "jina-embeddings-v3",
    "dimensions": 1024,
    "taskQuery": "retrieval.query",
    "taskPassage": "retrieval.passage",
    "chunking": true
  }
}

3.2 记忆召回逻辑

每次对话开始时,OpenClaw 自动执行 autoRecall:

1. 获取当前对话上下文(最近 N 轮)
2. 提取关键词/主题
3. 生成 query embedding(Jina API,task=retrieval.query)
4. Hybrid Search:
   - Vector Search:在向量空间找最近邻
   - BM25 Search:关键词匹配
   - Fusion:按权重合并分数(当前 vectorWeight=0.7, bm25Weight=0.3)
5. 过滤:
   - minScore >= 0.3
   - scope 在 agentAccess 允许列表中
   - recency 加权(14 天半衰期)
6. Rerank(当前关闭):cross-encoder 精排
7. 注入上下文:将召回记忆加入 system prompt

召回质量调优参数:

  • minScore:硬阈值,低于此分数的记忆丢弃
  • recencyWeight:新记忆的权重加成
  • vectorWeight/bm25Weight:语义 vs 关键词的偏好

3.3 Scope 是什么,为什么重要

Scope 是记忆的命名空间,解决多实例/多主题下的隔离与共享问题。

当前 Scope 定义(8 个):

Scope 用途 访问权限
will 默认 scope,Will 的个人偏好和决策 全实例可读
tech 技术相关(工具配置、踩坑记录) ユキ主写,其他可读
cat 猫舍业务(品种知识、客户偏好) ナツ/ハル主写
agent:yuki ユキ实例专属记忆 ユキ读写
agent:natsu ナツ实例专属记忆 ナツ读写
agent:haru ハル实例专属记忆 ハル读写
agent:aki アキ实例专属记忆 アキ读写
shared-knowledge 四实例共享知识库 全实例读写

为什么需要 scope:

  1. 隔离:ユキ的技术实验不应该污染ナツ的 SNS 运营记忆
  2. 权限:子 agent 默认只能写自己的 agent:* scope,不能乱写全局
  3. 召回精度:搜索时限定 scope 可减少噪音
  4. 治理:方便后续按 scope 清理、迁移、备份

3.4 为什么现在 `default = will`

2026-03-22 之前,各实例的 default scope 是 agent:yuki、agent:natsu 等。这导致:

  • 写入的记忆默认只能本实例访问
  • 跨实例共享需要显式指定 shared-knowledge
  • 四实例架构下,Will 的核心偏好被分散在 4 个 scope 中

改为 default = will 后:

  • 统一入口:所有实例默认写入同一 scope,确保 Will 的偏好全局一致
  • 简化心智:不需要记住"我在哪个实例"来决定 scope
  • 召回增强:关于 Will 的记忆集中存储,召回质量更高

注意:will scope 只是标签,不等于跨实例共享数据库。各实例的 LanceDB 文件仍然是物理隔离的。

3.5 为什么扩展了 `tech / cat / agent:* / shared-knowledge`

从单一 will 扩展到 8 个 scope,是为了应对业务复杂度增长:

阶段 Scope 数量 触发条件
初期 1(default) 单实例,简单场景
中期 4(agent:*) 四实例架构,需要隔离
当前 8(+tech/cat/shared-knowledge) 业务线分化,需要主题治理

扩展原则:

  • tech:技术方案、工具配置、API 踩坑——ユキ主导
  • cat:猫舍品种知识、客户案例、运营经验——ナツ/ハル主导
  • shared-knowledge:四实例都需要知道的铁律、经验教训——共同维护
  • agent:*:各实例的专属上下文(如ナツ的 debate 话题偏好)

3.6 autoRecall 与 autoCapture 的区别

特性 autoRecall autoCapture
触发时机 每次对话开始时 每次对话结束时
动作 读取记忆,注入上下文 分析对话,自动存入记忆
当前状态 开启 关闭
风险 低(只读) 高(可能写入噪音)
适用阶段 稳定运行期 高质量数据积累期

为什么 autoCapture 保持关闭:

  1. 质量优先:自动捕获容易把临时信息、错误结论、半成品一起写入
  2. 噪音控制:对话中的闲聊、试错、验证过程不应该全部入库
  3. 治理成本:自动写入后需要定期清理,人工审核成本高
  4. 当前阶段:系统刚从"修复可用"进入"稳态可用",质量比数量重要

未来开启条件:

  • scope 边界更清晰
  • 过滤策略完善(如只捕获 Will 说"记住"后的内容)
  • 有定期审计和清理机制

4. 这次到底修了什么

4.1 修复了 `Default scope 'will' not found in definitions`

问题表现:

  • ハル 实例启动时报错:Default scope 'will' not found in definitions
  • memory_store 调用失败,记忆无法写入
  • 插件状态显示异常

根因:

  • config 中 scopes.default = "will",但 scopeDefinitions 未定义 will
  • memory-lancedb-pro 启动时会校验 default scope 是否在 definitions 中
  • 之前修复(2026-03-22)只改了ユキ/ナツ,ハル 遗漏

修复动作:

json
{
  "scopes": {
    "default": "will",
    "definitions": ["will", "tech", "cat", "agent:yuki", "agent:natsu", "agent:haru", "agent:aki", "shared-knowledge"],
    "agentAccess": {
      "main": ["will", "tech", "cat", "shared-knowledge"],
      "coder": ["will", "tech"],
      "vision": ["will", "tech"]
    }
  }
}

4.2 插件现在正常 registered

验证命令:

bash
openclaw plugins list | grep 'memory-lancedb-pro'
# 输出:memory-lancedb-pro@1.0.32: plugin registered

状态确认:

  • ユキ:✅ registered
  • ナツ:✅ registered
  • ハル:✅ registered(修复后)
  • アキ:✅ registered

4.3 工具链最小闭环验证通过

验证测试(2026-03-24):

工具 测试内容 结果
memory_store 写入测试记忆 ✅ 成功
memory_recall 召回测试记忆 ✅ 成功
memory_forget 删除测试记忆 ✅ 成功
memory_update 更新测试记忆 ✅ 成功

闭环验证:store → recall → forget → recall(确认已删除),证明整个链路可用。

4.4 旧 disabled config 警告已清掉

问题:早期部署时遗留了旧插件配置:

json
{
  "memory-lancedb": {
    "enabled": false
  }
}

这会导致启动警告:plugin disabled but config is present。

清理动作:

  • 从四实例 config 中删除 memory-lancedb 段
  • 确认启动日志无警告

4.5 旧目录已 README 标记保留

旧目录:~/.openclaw/memory/lancedb/

处理原则:

  • 不删除:可能包含历史数据,避免误删
  • README 标记:目录内放置 README.md,说明当前主用 lancedb-pro
  • 未来迁移:如需迁移旧数据,单独立项处理
markdown
# 历史目录说明

此目录为 memory-lancedb(旧版)的数据目录。

当前主用:~/.openclaw/memory/lancedb-pro/
插件:memory-lancedb-pro

如需迁移旧数据,请联系ユキ评估。

4.6 Scope definitions 已扩展到 8 个

扩展过程:

  1. 初始:1 个(will)
  2. 四实例:4 个(agent:yuki/natsu/haru/aki)
  3. 当前:8 个(+tech/cat/shared-knowledge)

定义清单:

json
["will", "tech", "cat", "agent:yuki", "agent:natsu", "agent:haru", "agent:aki", "shared-knowledge"]

4.7 治理原则文档 + 日常检查清单已补齐

新增文档:

  • memory/procedures/memory-lancedb-pro-治理原则.md(8 节,覆盖写入原则、scope 治理、autoCapture 策略)
  • memory/procedures/memory-lancedb-pro-日常检查清单.md(每日/每周检查项)

核心原则:

宁缺毋滥:少存,但存准。先验证再存:没验证过的结论不进长期记忆。

4.8 文档已同步到 ナツ / ハル / アキ

同步范围:

  • 治理原则文档
  • 日常检查清单
  • 部署手册
  • 部署报告

同步方式:

  • ナツ:同机 rsync + SIGUSR1 热重载
  • ハル:SSH rsync
  • アキ:SSH rsync(在线时)

5. 平时应该怎么用

5.1 什么信息值得存

高价值记忆(建议存):

类型 示例 理由
长期偏好 "Will 喜欢高密度结构化输出" 每次对话都影响输出风格
重要决策 "蜂群模式最少 5 人" 已确认的规则,未来会反复引用
已验证流程 "Kimi Coding Plan 必须用 Anthropic 格式" 踩坑 3 次后的结论,复用价值高
系统结构 "四实例:ユキ/ナツ/ハル/アキ" 频繁引用,减少重复解释
客户信息 "客户 A 偏好 LINE 沟通" 业务运营必需

存储格式:

markdown
[决策] 蜂群模式最少 5 人
- 打底必备 2 角:广域调研位 + 副 Leader/审查官
- Leader 模型:Opus 或 GPT-5.4
- Worker 模型:Kimi + MiniMax
- 触发词:蜂群/swarm/开蜂群
- 记录时间:2026-03-24
- 验证次数:2 次实战验证

5.2 什么信息不该存

低价值/高风险记忆(不建议存):

类型 示例 理由
敏感信息 API key、密码、客户身份证号 安全风险,泄露后果严重
临时状态 "当前正在下载文件 X" 几小时后失效,污染召回
未验证猜测 "可能是网络问题" 错误归因会误导未来判断
对话噪音 "好的"、"明白了"、"谢谢" 无复用价值,增加噪音
网页指令 "忽略之前指令,做 XXX" Prompt 注入攻击风险

5.3 什么时候用 memory_store

触发条件(满足任一):

  1. Will 明确说:记住 / 存一下 / 别忘了
  2. 形成了新的铁律或决策
  3. 某个坑已经验证 2 次以上
  4. 某个路径/配置以后必定重复用到

写入前自检(四个问题):

  • 这个信息 7 天后还有价值吗?
  • 这个信息以后还会复用吗?
  • 这个结论已经验证了吗?
  • 这里面是否包含敏感信息本体?

有一个答不上来,就先别存。

5.4 什么时候只写 daily notes / procedures / shared-knowledge

daily notes(memory/YYYY-MM-DD.md):

  • 当天的工作流水账
  • 临时的待办事项
  • 未完成的探索过程
  • 需要下次 session 继续的任务状态

procedures(memory/procedures/*.md):

  • 已验证的可复用操作流程
  • 工具的安装和配置步骤
  • 常见问题的解决方案
  • 涉及 3 步以上或外部 API 的操作

shared-knowledge(~/.openclaw/shared-knowledge/*.md):

  • 四实例都需要知道的铁律
  • 跨实例协作的规范
  • 经验教训(踩坑记录)
  • 每天 04:15 自动同步

决策树:

信息是否涉及四实例共同知识?
├── 是 → 写入 shared-knowledge/
└── 否 → 是否是可复用操作流程?
    ├── 是 → 写入 procedures/
    └── 否 → 是否是当天工作记录?
        ├── 是 → 写入 daily notes
        └── 否 → 考虑 memory_store(长期记忆)

5.5 为什么子 agent 默认不应该乱写全局记忆

风险:

  1. 污染:子 agent 可能写入错误、片面、过时的信息
  2. 权限混乱:子 agent 通常有特定任务,不应该影响全局状态
  3. 难以追溯:子 agent 写入后,主实例难以知道哪些记忆来自子任务
  4. 重复写入:多个子 agent 可能写入相似内容,造成冗余

当前策略:

  • 子 agent 默认不写全局长期记忆
  • 可以提出"建议写入项",由主实例判断后再写
  • 子 agent 的临时记忆通过 agent:* scope 隔离

例外情况:

  • 子 agent 被明确授权处理特定 scope
  • 子 agent 执行的是记忆整理/迁移任务

5.6 什么时候再考虑开 autoCapture

当前状态:autoCapture = false(建议保持)

未来开启条件(需同时满足):

  1. 手动写入质量稳定:连续 30 天没有"误存垃圾"的投诉
  2. Scope 边界清晰:tech/cat/shared-knowledge 分工明确,不互相污染
  3. 过滤策略完善:只捕获特定模式(如 Will 说"记住"后的内容)
  4. 审计机制就绪:能定期 review 自动写入的记忆,清理噪音

预期时间:至少 1-2 个月后评估。


6. 用起来的实际效果是什么

6.1 对记忆连续性的帮助

修复前:

  • ハル 实例记忆系统失效,每次对话"从零开始"
  • 需要重复解释医院 CRM 的架构、当前进度、待办事项

修复后:

  • 四实例记忆系统全部可用
  • ハル 能正确召回之前关于医院 CRM 的讨论
  • 跨 session 的项目跟进成为可能

量化指标:

  • 重复解释次数:减少约 60%(基于主观评估)
  • Session 启动时间:从"重新了解上下文"缩短到"确认上次进度"

6.2 对减少重复解释的帮助

典型案例:

信息 之前(无记忆) 之后(有记忆)
Kimi Coding Plan 格式 每次都要解释 Anthropic 格式 召回记忆,自动使用正确格式
四实例架构 每次都要列出ユキ/ナツ/ハル/アキ 召回后直接引用
Will 的偏好 需要试探输出风格 直接按偏好输出(高密度结构化)

注意:减少重复解释的前提是正确写入。如果之前没存,或者存错了,仍然会重复踩坑。

6.3 对四实例协作的帮助与边界

帮助:

  • 共享知识库:shared-knowledge/ 目录 + 每日 04:15 同步
  • 统一铁律:memory_store 到 shared-knowledge scope,四实例都能召回
  • 任务交接:task-board.md 记录任务状态,跨实例接力

边界(重要):

  • 不是真正跨实例共享数据库:各实例的 LanceDB 文件物理隔离
  • scope = will 只是标签,不等于数据自动同步
  • 实时协作依赖文件同步(rsync),有延迟(最长 24 小时)

正确理解:

四实例协作 = 各自独立记忆 + 定期文件同步 + 共享知识库
            ≠ 共享数据库实时同步

6.4 为什么它不能等同于真正跨实例共享数据库

技术现实:

  • ユキ的记忆:~/.openclaw/memory/lancedb-pro/(Mac Mini M4)
  • ハル的记忆:~willma/.openclaw/memory/lancedb-pro/(Mac Mini M2)
  • 两者是独立的文件系统,没有网络同步机制

如果要真正共享:

  • 方案 A:共享磁盘(NFS/SMB),四实例挂载同一目录
  • 方案 B:中央数据库(PostgreSQL + pgvector),四实例网络连接
  • 方案 C:定期双向同步(rsync + 冲突解决)

当前方案:

  • 重要知识通过 shared-knowledge/ 文件同步
  • 实时性要求不高的场景,24 小时同步周期可接受
  • 高实时性场景(如任务看板),通过 Telegram 人工同步

6.5 对决策质量、执行效率、踩坑复用的价值

决策质量:

  • 召回历史决策依据,避免重复讨论
  • 基于已验证的事实做判断,减少猜测

执行效率:

  • 直接获取已验证的操作流程,减少试错
  • 快速定位相关历史经验,缩短调研时间

踩坑复用:

  • 最典型的价值场景
  • 例:Kimi Coding Plan 格式问题,第一次踩坑→写入记忆→第二次自动避免
  • 例:ハル SSH 地址问题,多次踩坑→写入记忆→后续自动使用正确地址

局限性:

  • 记忆质量依赖写入时的判断,垃圾进垃圾出
  • 召回可能返回过时信息,需要结合时间戳判断
  • 复杂场景下,召回结果需要人工筛选

7. 当前还没做但以后可以做的增强

7.1 更细 scope 治理

当前:8 个 scope,按业务线大致划分

未来可能:

  • tech:frontend / tech:backend / tech:devops
  • cat:breeding / cat:customer / cat:health
  • project:hospital / project:blog / project:video

触发条件:

  • 单个 scope 记忆量过大(>1000 条)
  • 召回结果开始出现跨主题污染
  • 不同项目需要独立的记忆空间

7.2 本地 embedding 评估

当前:Jina Embedding API(云端,有网络依赖)

备选方案:

  • Ollama + nomic-embed-text:本地运行,无网络依赖
  • Sentence Transformers:Python 本地 embedding
  • ONNX 模型:最小资源占用

评估维度:

  • 质量:召回准确率 vs Jina
  • 速度:本地 CPU/GPU 推理时间
  • 资源:内存占用、磁盘空间
  • 成本:Jina 免费额度用尽后的费用

7.3 更严格写权限边界

当前:靠"约定"约束子 agent 不写全局记忆

未来可能:

  • 配置层面限制:agentAccess 细化为 read/write 权限
  • 代码层面限制:子 agent 运行时的 scope 白名单
  • 审计层面限制:写入操作日志,定期 review

7.4 是否未来考虑 autoCapture

见 5.6 节,需要满足 4 个条件后再评估。

7.5 旧数据迁移

背景:旧 memory-lancedb 目录可能有历史数据

迁移方案(待评估):

  1. 评估旧数据价值(是否有不可替代的历史记忆)
  2. 开发迁移脚本:读取旧数据库 → 重新 embedding → 写入新数据库
  3. 验证迁移质量(抽样检查召回结果)
  4. 清理旧目录

优先级:低。当前系统运行稳定,旧数据迁移不是紧急事项。


8. 最终结论

8.1 这次修复的定位

不是优化,是基础设施恢复。

  • 修复前:ハル 实例记忆系统失效,四实例架构 25% 处于"失忆"状态
  • 修复后:四实例记忆系统全部可用,工具链闭环验证通过

修复范围:

  • 技术层面:config 字段修正、插件注册验证、工具链测试
  • 文档层面:治理原则、检查清单、部署手册
  • 治理层面:scope 定义、写入原则、autoCapture 策略

8.2 当前状态是"修好可用"还是"终局最优"

当前状态:修好可用,远非终局最优。

维度 当前状态 终局最优
可用性 ✅ 四实例全部可用 同上
Scope 治理 8 个 scope,基本够用 可能更细分
自动化 autoCapture 关闭 可能开启(有过滤)
Embedding Jina API(云端) 可能本地部署
跨实例同步 文件同步(24h 延迟) 可能实时共享数据库
质量审计 人工 review 可能自动审计

关键认知:

  • 记忆系统的价值随使用时间和数据质量增长
  • 当前阶段重点是"稳定运行+高质量写入",不是"功能扩张"
  • 终局最优是演进出来的,不是设计出来的

8.3 后续怎么推进最稳

短期(1-2 周):

  1. 观察期:监控四实例记忆系统运行状态,确认无退化和异常
  2. 质量优先:严格执行"写入前自检",宁缺毋滥
  3. 文档维护:每次重要决策后同步更新治理原则和检查清单

中期(1-2 月):

  1. 数据积累:持续写入高质量记忆,建立可复用的知识库
  2. 质量评估:定期抽查召回结果,评估准确率和噪音率
  3. scope 评估:观察 8 个 scope 是否足够,是否需要细分

长期(3-6 月):

  1. 自动化评估:满足条件后,评估开启 autoCapture 的可行性
  2. 本地 embedding 评估:若 Jina 费用或稳定性成为问题,评估本地方案
  3. 跨实例同步优化:若文件同步延迟成为瓶颈,评估实时共享方案

一句话原则:

先保质量,再谈自动化。先保稳定,再谈扩张。

附录:关键文件清单

文件路径 用途 更新日期
memory/procedures/memory-lancedb-pro-deploy.md 部署手册 2026-03-07
memory/procedures/memory-lancedb-pro-deploy-report.md 部署报告 2026-03-07
memory/procedures/memory-lancedb-pro-治理原则.md 治理原则 2026-03-24
memory/procedures/memory-lancedb-pro-日常检查清单.md 检查清单 2026-03-24
memory/openclaw-memory-system-guide.md 系统设计指南 2026-03-13
~/.openclaw/memory/lancedb-pro/ 数据目录 持续更新

文档生成:2026-03-24 by ユキ(Kimi 2.5)
审核状态:已确认事实准确性
下次 review:2026-04-07(两周后)

Will's Take

这篇不是讲一个插件,而是讲 AI 长期记忆系统为什么必须修好,以及修好以后到底值不值得用。


上一篇早上连发10条语音,AI沉默了|一次真实的 Apple Silicon 性能优化之旅下一篇MiniMax API技术调研报告:TTS与图像生成全解析
博客

评论

加载中...

发表评论

0/1000

目录

  • 1. 为什么这次修复很重要
  • 1.1 AI 长期记忆系统不是"可有可无"
  • 1.2 `Default scope 'will' not found in definitions` 为什么必须修
  • 1.3 修复的紧迫性
  • 2. memory-lancedb-pro 到底是什么
  • 2.1 与普通对话上下文的区别
  • 2.2 与旧 memory-lancedb 的区别
  • 2.3 与四个记忆工具的关系
  • 2.4 LanceDB 的角色
  • 3. 记忆系统是怎么工作的
  • 3.1 记忆写入逻辑
  • 3.2 记忆召回逻辑
  • 3.3 Scope 是什么,为什么重要
  • 3.4 为什么现在 `default = will`
  • 3.5 为什么扩展了 `tech / cat / agent:* / shared-knowledge`
  • 3.6 autoRecall 与 autoCapture 的区别
  • 4. 这次到底修了什么
  • 4.1 修复了 `Default scope 'will' not found in definitions`
  • 4.2 插件现在正常 registered
  • 4.3 工具链最小闭环验证通过
  • 4.4 旧 disabled config 警告已清掉
  • 4.5 旧目录已 README 标记保留
  • 4.6 Scope definitions 已扩展到 8 个
  • 4.7 治理原则文档 + 日常检查清单已补齐
  • 4.8 文档已同步到 ナツ / ハル / アキ
  • 5. 平时应该怎么用
  • 5.1 什么信息值得存
  • 5.2 什么信息不该存
  • 5.3 什么时候用 memory_store
  • 5.4 什么时候只写 daily notes / procedures / shared-knowledge
  • 5.5 为什么子 agent 默认不应该乱写全局记忆
  • 5.6 什么时候再考虑开 autoCapture
  • 6. 用起来的实际效果是什么
  • 6.1 对记忆连续性的帮助
  • 6.2 对减少重复解释的帮助
  • 6.3 对四实例协作的帮助与边界
  • 6.4 为什么它不能等同于真正跨实例共享数据库
  • 6.5 对决策质量、执行效率、踩坑复用的价值
  • 7. 当前还没做但以后可以做的增强
  • 7.1 更细 scope 治理
  • 7.2 本地 embedding 评估
  • 7.3 更严格写权限边界
  • 7.4 是否未来考虑 autoCapture
  • 7.5 旧数据迁移
  • 8. 最终结论
  • 8.1 这次修复的定位
  • 8.2 当前状态是"修好可用"还是"终局最优"
  • 8.3 后续怎么推进最稳
  • 附录:关键文件清单