Skip to content
文档首页

L3 长期记忆 ​

Mogick 的 L3 长期记忆系统能够在多次会话之间自动保留你的编码偏好、项目约定和关键决策。每次运行前后,系统会从本地 SQLite 数据库中检索相关记忆并注入模型上下文,运行结束后再从对话中自动抽取新的知识点。你可以随时通过 /memory 命令开关这一功能。

生命周期 ​

记忆系统遵循"检索 -- 注入 -- 抽取"的完整闭环,确保每次对话都能受益于历史积累,同时不断更新知识库。

阶段时机说明
检索每次运行前从四个范围混合召回候选记忆
重排序检索之后按相关性排序,经指令矛盾过滤后保留最多 10 条
注入重排序之后注入模型上下文,总量不超过 8% 上下文窗口(最终数量可能少于 10 条)
抽取每次运行后LLM 异步提取新知,串行逐条保存

整个流程对用户透明。你只需正常与 Mogick 交互,记忆的存取完全在后台自动完成,无需手动干预。

检索范围与策略 ​

记忆按归属范围分为四个层级,检索时从所有范围中混合召回。

全局范围存储跨项目通用的偏好,例如代码风格、工具链选择、语言偏好等,适用于你所有的项目。工作区范围与当前 Git 仓库或项目目录绑定,用于记录项目特定的约定,如分支策略、部署流程。包路径范围关联到具体的语言包或模块,适合记录库级别的使用习惯。会话范围仅在当前会话生命周期内有效,用于临时性的上下文传递。

检索采用语义向量与全文关键词混合排序策略。向量相似度捕捉语义层面的关联,全文搜索保证精确关键词匹配。如果当前环境没有可用的嵌入模型,系统会自动降级为纯全文搜索,功能不受影响但语义召回精度可能略有下降。

自动抽取 ​

每次运行结束后,Mogick 会异步分析对话内容,自动识别并抽取以下类型的信息:

  • 编码偏好:缩进风格、命名规范、格式化规则等个人编码习惯。
  • 决策记录:错误处理方式、架构设计取舍、技术选型理由等关键判断。
  • 项目约定:分支策略、部署流程、测试规范等团队级规则。
  • 显式指令:用户明确说出的"记住"、"以后都这样"等直接指示,优先级最高。

抽取过程串行执行、逐条保存,避免并发写入导致的数据冲突。

去重与合并 ​

新抽取的记忆可能与已有记忆产生冲突或重叠,系统按下表规则自动处理:

规则行为
扩展 / 细化合并为一条更新后的记忆,保留更丰富的信息
内容矛盾以新知为准,覆盖旧记录
完全相同跳过写入,避免冗余
用户主动创建不被自动覆盖,手动记忆优先级高于自动抽取

这套规则确保记忆库在持续更新的同时,不会因自动抽取而丢失用户明确设定的偏好。

命令与配置 ​

/memory 命令用于在 TUI 中切换记忆功能的开关状态。当你在处理敏感项目或希望临时关闭记忆时,直接输入 /memory 即可;再次执行会重新开启。

mogick doctor 可用于诊断记忆系统的健康状态,包括检查 SQLite schema 完整性和嵌入模型是否可用。

记忆系统默认处于开启状态。注入上限为 10 条记忆,且总内容不超过模型上下文窗口的 8%,防止记忆占用过多推理空间。所有数据存储在 <db-path> 中,检索方式为向量语义与全文搜索混合,无嵌入模型时自动降级。

路径占位符 <config-dir>、<db-path> 指当前 profile/通道实际生效的路径,见数据目录。