深度教程:MiMo Code 的持久化记忆存储原理与应用

2026-07-01AI261476

MiMo Code的持久化记忆是工程化状态维持系统,基于SQLite FTS5构建本地记忆底座,通过项目记忆、会话检查点、动态简报压缩三层协同,并支持/dream自我进化与人工干预。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

MiMo Code 的持久化记忆不是“把聊天记录存下来”那么简单,而是围绕真实开发场景设计的一套工程化状态维持系统。它解决的核心问题是:当一个编程任务需要跨天、跨会话、跨上百轮交互时,AI 怎么还能记得你上周定的接口规范、昨天改过的配置路径、甚至临时放弃的某个分支策略?答案不在模型里,而在它的记忆架构中。

SQLite FTS5 驱动的本地记忆底座

所有记忆数据默认写入项目根目录下的 memory.db 文件,基于 SQLite 的 FTS5(Full-Text Search)扩展构建。这不是普通数据库表,而是专为语义检索优化的索引结构——支持模糊匹配、词干提取、权重排序,比如搜 “暗色模式组件” 能命中 “dark mode toggle” 或 “theme switcher”。

  • 每次会话结束时,主 Agent 不保存原始对话流,而是由 Writer 子 Agent 提取关键实体(文件路径、函数名、决策结论、错误日志)生成结构化条目
  • MEMORY.md 是可读摘要,checkpoint.md 是二进制快照,二者都由 FTS5 索引同步维护,保证搜索响应在毫秒级
  • 数据库自动按项目隔离,不同仓库各自独立记忆,不混用也不泄露

三重记忆机制协同工作

单一存储无法应对长程任务的复杂性,MiMo Code 把记忆拆成三个层次,各司其职:

  • 项目记忆:长期沉淀。自动生成 MEMORY.md,记录架构选型、编码规范、已知坑点、第三方依赖约束。例如你第一次问“这个服务要不要加 JWT 验证”,回答会被提炼为一条规则写入项目记忆,后续所有鉴权相关操作自动参考
  • 会话检查点:中断续写保障。每 15 轮交互或检测到 Git 提交/文件保存时,自动创建 checkpoint.md。下次用 mimo --resume 启动,直接加载最新检查点,跳过重复解释
  • 动态简报压缩:上下文守门员。当对话接近模型窗口上限时,独立子 Agent 启动压缩流程:合并同类操作(如连续三次修改同一 config.ts)、剔除中间调试输出、保留最终状态和失败原因,生成精简版上下文供主 Agent 继续使用

/dream 命令:让记忆自我进化

记忆不是静态归档,而是持续演化的知识体。/dream 是 MiMo Code 内置的记忆治理命令,每 7 天自动触发(也可手动执行),它调用专用 Distill Agent 完成四件事:

圆弧形进度条插件arc-progress.js

下载

  • 扫描全部历史会话与当前 MEMORY.md,识别重复描述(如多次提到“API 返回 401 时要刷新 token”)并去重合并
  • 验证所有引用的文件路径是否仍存在,失效路径自动标记为 obsolete 并降权
  • 将分散的同类决策(比如五次重构某模块的尝试)聚类,生成“该模块重构建议”新条目
  • 输出一份 human-readable 的 dream-summary.md,告诉你这周项目认知有哪些更新

开发者可干预的记忆控制点

记忆系统默认全自动,但关键节点留出人工干预入口:

  • /forget file:src/utils/api.ts 主动清除某文件相关记忆,适合重构后清理旧上下文
  • 编辑 MEMORY.md 可直接增删项目规则,保存后立即生效(FTS5 索引自动重建)
  • 设置 MIMO_MEMORY_RETENTION=30d 环境变量,控制历史会话在数据库中的保留天数
  • 启用 --no-memory 启动参数可完全关闭持久化,适合敏感代码仓临时调试

这套机制不依赖大模型自身记性,而是用确定性工程手段兜住不确定性。它不承诺“永远不忘”,但确保“该记住的,一定记得住;该遗忘的,干净利落。”

《深度教程:MiMo Code 的持久化记忆存储原理与应用.doc》

下载本文的Word格式文档,以方便收藏与打印。