# OpenClaw 当前记忆系统架构(mac-5 控制面) ## 总览 当前记忆系统分成两层: 1. **Context Engine 层:lossless-claw (LCM)** 2. **Memory Backend 层:QMD** 二者不是同一层,不占同一个插件槽位,职责不同,可以同时使用。 --- ## 1. lossless-claw(LCM) ### 定位 - 作为 **context engine** 使用 - 负责长对话上下文的压缩、保留与恢复 - 替代原本单纯 sliding-window compaction 的部分能力 ### 当前状态 - 已安装并启用 - 当前 `plugins.slots.contextEngine = "lossless-claw"` - 插件安装位置:`~/.openclaw/extensions/lossless-claw` ### 主要作用 - 用 SQLite + DAG summaries 管理长上下文 - 当主会话变长时,帮助保留可恢复的历史结构 - 提供对被压缩/折叠历史的再访问能力 ### 典型功能 - `lcm_grep` - `lcm_describe` - `lcm_expand` ### 适合处理什么 - 长会话历史 - 最近/过往对话上下文恢复 - 被 compaction 后的历史细节回看 ### 不适合替代什么 - 不替代持久 Markdown 知识库检索 - 不替代 QMD 对 memory repo / daily / tasks 等文件的索引搜索 --- ## 2. QMD ### 定位 - 作为 **memory backend** 使用 - 负责 `memory_search` / `memory_get` 这条记忆召回路线 - 主要检索 Markdown 记忆文件与配置路径中的知识内容 ### 当前状态 - 当前 `memory.backend = "qmd"` - 当前仍是主记忆召回后端 - `memory.qmd.sessions.enabled = false` ### 为什么禁用 sessions indexing 因为如果让 QMD 也去索引 session transcripts,会和 lossless-claw 在“会话回忆”层面产生重叠,导致: - 同一段会话既能被 LCM 找回,也能被 QMD 找回 - QMD 结果容易被 session boilerplate / transcript 噪声主导 - 持久知识内容(daily / long-term / tasks)更容易被挤掉 因此当前约定: - **会话历史回忆 → 优先走 LCM / context engine** - **持久知识/记忆文件搜索 → 走 QMD** ### 当前 QMD 检索路径 - `~/project/collective-memory-repo/shared/long-term` - `~/project/collective-memory-repo/daily` - `~/project/collective-memory-repo/tasks` - `~/project/collective-memory-repo/agents/openclaw-main` ### 适合处理什么 - 长期记忆 - daily notes - task memory - agent private notes - Markdown 文件型知识库 --- ## 3. 内建 memorySearch 配置 ### 当前状态 虽然当前主记忆后端仍是 QMD,但 `agents.defaults.memorySearch` 也已经配置为本机 oMLX embeddings: - provider: `openai` - model: `bge-m3-mlx-fp16` - baseUrl: `http://127.0.0.1:8000/v1` - apiKey: `omlx-local` ### 说明 - 这是一条 **内建 memorySearch 能力配置** - 目前它已配置好 embeddings 端点 - 但当前主记忆召回仍然是 QMD,而不是它 换句话说: - **当前默认在用的是 QMD** - **内建 memorySearch embeddings 已准备好,后续如需切主路径可继续利用** --- ## 当前推荐分工 ### 会话相关 - lossless-claw / LCM - 用于:长会话、上下文压缩恢复、历史对话回看 ### 持久知识相关 - QMD - 用于:memory repo、daily、tasks、长期知识检索 ### embeddings 预备能力 - 本机 oMLX (`bge-m3-mlx-fp16`) - 用于:未来如需要将 OpenClaw 内建 memorySearch 切换到本地 embeddings 时复用 --- ## 当前结论 当前记忆系统不是单一工具,而是分层架构: - **LCM / lossless-claw** = 上下文引擎(context engine) - **QMD** = 持久记忆后端(memory backend) - **oMLX embeddings memorySearch** = 已配置好的备用/未来可切换能力 当前主工作流: - 会话恢复靠 LCM - 文件记忆召回靠 QMD - 不让 QMD 索引 sessions,避免和 LCM 打架