MiMo Code 的 Memory Agent 此次实现的功能,与传统的“记住对话”有着本质区别。它依托结构化记忆、会话检查点、Dream 机制和动态简报四大核心模块,将项目规则沉淀下来、任务状态完整保存,并能够自动优化判断逻辑,甚至把冗长的历史数据压缩成可执行的“知识图谱”。这一组合拳带来的体验是——AI 不再仅靠堆砌上下文来硬塞信息,而是真正理解项目脉络,并据此动态调整自身的行为方向。

简而言之,它的作用远比“记住你说了什么”要深刻得多。它让模型在后续交互中主动反思、修正判断、优化路径,而不是一次又一次重复踩坑。
项目记忆驱动技术决策
Memory Agent 会将代码库中的关键信息整理成结构化的知识块。例如项目采用的框架(React 还是 Vue)、状态管理方案(Zustand 还是 Redux)、调用 API 的固定模式(是否需要携带 auth header、分页参数如何传递),乃至团队内部的约定(hooks 命名必须用 use 开头,组件文件必须有 index.tsx)。当新需求出现时,Agent 不再盲目猜测,而是先到既有的规则库中查找匹配方案:
- 生成新组件时,自动匹配已确定的样式体系——Tailwind 的类名前缀、CSS Module 的命名规则,一个都不遗漏
- 调用后端接口时,直接复用已经验证过的请求封装函数,无需每次都从头编写 fetch
- 遇到命名冲突例如项目里已存在 useAuth,它会主动提醒你,并给出类似 useAuthWithRedirect 这样的变体方案
会话检查点实现任务续写
工作中断在所难免——无论是关闭终端,还是临时切换去处理其他任务。Memory Agent 会在你离开前,自动保存当前“任务树”的状态:哪些子任务尚未完成、哪些命令已经执行、临时生成的测试桩在哪里,甚至你手动修改的一行代码的具体位置。再次回来时,它不会让你从头解释一遍需求,而是精准定位到断点处:
- 上次在重构 src/utils/date.ts,这次打开它会默认聚焦到这个文件,并把待补充的逻辑高亮显示
- 如果上轮单元测试已经通过但尚未提交,它会提醒:“上次测试通过,要不要推送变更?”
- 如果你中途否决过一个方向(例如“别用 SWR,换成 React Query”),这个偏好会被记入项目记忆,以后再也无需重复解释
Dream 机制触发逻辑进化
每 7 天,Memory Agent 会静默启动一次 /dream。这并非简单的归档操作,而是一次轻量级的“认知升级”。它会派一个子 Agent,扫描最近的所有会话,找出频繁出现的模式、自相矛盾的点以及反复修正过的逻辑,然后据此更新记忆快照。举例来说:
- 发现你在三个不同的模块中都手动为 API 调用套上了 try/catch → 它会提炼出“项目默认需要兜底网络异常”的规则,之后自动生成的代码会直接包含异常处理
- ESLint 的 no-unused-vars 报错被你一而再、再而三地忽略 → 下次生成代码时,它要么主动禁用这条规则,要么改用解构赋值来避免告警
- 反复要求“把按钮文字改成中文”这一动作被识别后 → 记忆里会标记好:UI 文案优先读取 locales/zh.json,而不是硬编码写死
动态简报压缩保障推理连贯性
随着会话轮次增多,Memory Agent 会启动一个独立的子模块,将冗长的对话历史压缩成一份语义清晰的“项目简报”。注意,这并非简单的摘要,而是一份可执行的知识图谱:
- 只保留关键实体:模块名、依赖版本、配置项(如 Vite 的 define 环境变量)
- 寒暄对话、调试失败的中间步骤、已被推翻的草稿方案——通通剔除,不留冗余
- 主 Agent 依靠这份简报继续工作。因此,即便对话超过上百轮,也完全不必担心上下文膨胀导致逻辑漂移,或指令被遗忘
