AI 编程助手 · 持久记忆 · 上下文管理 · 子智能体编排 · 自我进化 —— XiaomiMiMo/MiMo-Code 是一个终端原生 AI 编程助手,在 fork 自 OpenCode 的基础上构建了 跨会话记忆、智能上下文重建、子智能体并行编排和 目标驱动的自主循环能力。
AI 编程助手为何需要"记忆"
用过 Claude Code 或 Cursor 的人都有一种体会: 每次新开一个会话,AI 就"失忆"了。项目架构、 已完成的上下文、之前讨论过的决策——全都要重新 交代一遍。大模型上下文窗口再长,也只是单次会话 内的能力,跨会话始终是一道坎。
另一个痛点是"乐观停止":AI 执行长任务时经常 过早宣称"做完了",实际上还有大量未完成细节。 人得逐条检查、反复提示才能把它拉回正轨。
更深层的需求是规模化复用:当团队在同一个 代码库上多次使用 AI 助手,最佳实践、技术决策和 常见的操作模式如果能沉淀下来,每次开工不必从零 解释——这将显著提升开发效率。
MiMo-Code 的设计目标正是解决这组问题。它的项目 描述是"Where Models and Agents Co-Evolve"—— 模型与智能体共同进化。这不是一句口号,它在代码 层面用四套机制实现了这个目标:持久化记忆、智能 上下文压缩、子智能体编排和自主进化(Dream / Distill)。
目前项目在 GitHub 上线仅 8 天即获得近万星, 由小米 MiMo 团队开源(MIT 协议),内置限时免费 的 MiMo Auto 通道,也支持接入任意 OpenAI 兼容 API。
零配置启动到高级使用
安装极其简单,两条路径都可以:
curl -fsSL https://mimo.xiaomi.com/install | bash
# 或 npm 全局安装
npm install -g @mimo-ai/cli
首次在项目目录中运行 mimo,TUI 界面会引导你
选择认证方式。默认的 MiMo Auto 通道限时免费,
无需注册即可使用,上手完全没有门槛。
场景一:日常开发中的持久上下文
假设你正在重构一个中型后端服务,涉及数据库迁移、 API 层调整和测试更新。传统 AI 助手每次新会话都 需要重新解释项目结构和当前进展。使用 MiMo-Code 时:
• 项目记忆自动保存在 .mimocode/memory/,跨会话
持续存在
• 任务以树状结构记录(T1、T1.1、T1.2...),
进度在会话恢复时自动加载
• 运行 /checkpoint save 或在上下文接近上限时,
系统自动压缩当前状态为检查点文件
(checkpoint.md)
• 下次运行 mimo,Agent 自动读取最新检查点和
项目记忆,直接接续上次的工作
场景二:用 /goal 防止乐观停止
当需要 AI 完成一个明确的长期任务(如"重构整个
认证模块并更新所有调用方"),在会话开始时用
/goal 设置停止条件:
/goal 所有认证相关的文件已经迁移到新目录,
所有 import 路径已更新,原有 export 接口保持兼容,
测试全部通过。
Agent 执行过程中认为做完时,会调用一个独立的 裁判模型阅读完整会话记录,判断是否真的满足条件。 裁判模型不参与执行,判断结果更客观——避免了 AI 常见的"以为做完了其实还没"的问题。
场景三:让 AI 学会你的工作流
一个团队可能每周重复同样的操作:部署前跑 lint、
更新 changelog、打 tag、推送到 staging。这种重复
工作流可以用 /distill 自动发现:
/distill
系统扫描近期会话轨迹,识别高频重复操作,将置信度 高的模式打包成可复用的 skill、subagent 或 command。 下次只需一条命令即可完成端到端流程。
记忆系统与上下文重建的设计创新
MiMo-Code 的架构围绕一个核心矛盾展开:模型上下文 窗口有限,但开发项目的知识总量无限。它的解法不是 扩窗口,而是分层存储 + 按预算注入。
三层存储体系:
| 层级 | 存储位置 | 生命周期 | 用途 |
|---|---|---|---|
| 项目记忆 | MEMORY.md |
永久 | 架构决策、编码规范 |
| 检查点 | checkpoint.md |
单次任务 | 当前进度、待做事项 |
| 笔记 | notes.md |
临时 | Agent 随手记录 |
底层用 SQLite FTS5(全文搜索第 5 代)做索引。
每次搜索时先做 reconcile——把磁盘上的 .md 文件
用 stat(文件大小 + 修改时间)做指纹比对,只
更新有变化的文件,写入 FTS 索引,再执行 BM25
排序检索。BM25 分数叠加相对阈值过滤:只有达到
最高分一定比例的文档才返回,避免常见词噪音。
预算化注入:最精巧的设计
当上下文接近窗口上限(由 max_tokens 决定),
系统不简单地截断最近消息——它从最新检查点、项目
记忆和保留的近期消息中,按重要性排序、按 token
预算注入上下文。注入内容包括:
• 最新的检查点状态
• 项目记忆的高分匹配段落
• 最近 N 条未过时的消息
这保证了重建的上下文优先携带"当前任务状态 + 相关项目知识",而不是从零开始。
子智能体编排:Actor 模式
代码库中 packages/opencode/src/actor/ 实现了
完整的子智能体系统。主 Agent 可以按需 spawn
子 Agent,共享当前会话上下文并行工作,支持生命
周期追踪和取消。子 Agent 使用相同的工具集,但
可以在独立上下文中执行子任务——比如主 Agent
分析架构时,子 Agent 同时搜索依赖项。返回结果后
主 Agent 合并结论。
这种设计的创新性在于:它不是简单的链式调用
(Chain-of-Thought),而是真正的并行 Actor
模型——每个子 Agent 是一个独立的 Effect 类型,
通过 actor/registry.ts 统一管理生命周期。
这在 AI 编程助手领域中相对少见,更接近
Erlang/Elixir 的 Actor 模式。
Dream / Distill:自进化环路
• /dream:扫描近期会话轨迹,提取经验性知识写入
项目记忆,同时清理过时条目。本质上是"做总结 ->
写记忆 -> 去冗余"的知识管理流程。
• /distill:识别重复的手动工作流,打包为 skill。
系统默认 7 天自动触发一次 Dream,30 天一次
Distill。
这构成了一个闭环:使用 -> 沉淀 -> 复用 -> 更高效 地使用。
在哪用、怎么用收益最高
团队级代码库的长期维护是最容易体现价值的场景。 想象一个微服务项目,5 个开发者每天各自用 MiMo-Code 工作:每个人的会话轨迹中沉淀的知识 通过 Dream 自动写入项目记忆。新人加入时 AI 已经 理解全部架构决策,无需人工写 Wiki。
大型重构任务也是强项。结合树状任务系统
(T1->T1.1->T1.1.1)和 /goal 的裁判
机制,AI 可以持续数小时自主完成依赖分析、代码
迁移和测试更新,每次上下文重建都能记住任务进度。
未来演进方向:MiMo-Code 的 Compose 模式已经 内置了从 spec 到交付的完整流水线(规划 -> 编码 -> 审查 -> 测试 -> 合并)。如果加上 CI/CD 集成和 更细粒度的权限控制,它可能演变成"AI 驱动的开发 平台"——而不仅仅是一个助手。这也是小米 MiMo 团队 的长期意图:文档中已将 Max Mode(并行 best-of-N 推理 + 裁判选优)列为实验特性,暗示架构还有更多 值得期待的能力上线。
如果你受够了每次重新教 AI 你的项目长什么样,或者 长任务被 AI"乐观地提前结束",MiMo-Code 值得一试。
夜雨聆风