小米开源 MiMo Code:把 "长期记忆 + 自进化" 还给终端 AI 编码 Agent

昨天半夜,我在给一个新项目写 README。Claude Code 一路顺畅地帮我把 README 草稿写完了,但关掉终端、第二天早上重新打开同一个项目的时候,它已经完全不记得昨天我们讨论过哪些字段、为什么选了这种命名风格、那条 lint 规则是为了绕开哪个库的 bug。

我盯着空白上下文想了十秒钟:为什么一个号称” 智能” 的工具,连昨天自己说过的话都记不住?

早上刷 GitHub Trending,第 3 个仓库让我精神一振:

XiaomiMiMo/MiMo-CodeMiMo Code: Where Models and Agents Co-Evolve. Terminal-native AI coding assistant. Cross-session memory, intelligent context, goal-driven loops, self-evolving.

11k stars,单日涨粉爆炸,仓库还在剧烈迭代。我点进去看 README,第一句话就把我钉住了:

MiMoCode is a terminal-native AI coding assistant. It can read and write code, run commands, manage Git, and use a persistent memory system to keep a deep understanding of your project across sessions while continuously improving itself.

就这一句,解决了我昨晚碰壁的痛点 ——“它记得,而且它会越用越好”。

项目背景:编码 Agent 为什么总是” 金鱼记忆”

过去一年我几乎把所有主流编码 Agent 都用了一遍:Cursor、Claude Code、Codex、Cline、Aider。它们的共性问题是 ——

  1. 会话结束 = 记忆清零。每个新会话都要把项目背景讲一遍,token 没花在真正的工作上。
  2. 上下文窗口是死的。写到一半开始丢历史,要么手动 /compact,要么祈祷模型自己记得。
  3. 没有” 目标驱动”。你让它” 重构 auth 模块”,它可能改了一半觉得差不多了就停下,不会判断” 真的完成了吗”。
  4. 没有自进化。今天踩的坑,明天再踩一遍,没有任何” 经验沉淀”。

小米这次开源的 MiMo Code,把这四件事一次性打包解决了。

更关键的是它的定位 ——Where Models and Agents Co-Evolve。模型不是一成不变的,Agent 也不是一成不变的;它们彼此观察、彼此迭代。换句话说,MiMo Code 不只是” 接一个 LLM”,它是” 训练和被训练的循环”。

核心功能:六个让人想把终端重装一遍的特性

1. 三种主代理模式,按 Tab 切换

Agent 模式 说明
build 默认 全权限开发模式,能读写、能跑命令
plan 只读 纯分析和方案设计,不能改文件
compose 编排 规范驱动开发,调用 skill 编排完整生命周期

这个设计干净得有点过分 —— 你不需要给同一个 Agent 加一堆 --mode flag,直接 Tab 切。需要它老老实实只读分析?切到 plan;需要它直接动手?切回 build。

2. 持久内存:SQLite FTS5 全文检索打底

这是 MiMo Code 最让我兴奋的卖点。它不是把记忆塞到一堆 .json 里,而是用 SQLite FTS5 做全文检索,分四层:

  • 项目级内存MEMORY.md):持久化的项目知识、规则、架构决策
  • 会话快照checkpoint.md):自动维护的结构化状态快照
  • 草稿区notes.md):临时笔记
  • 任务进度tasks/<id>/progress.md):每个任务的独立日志

下次打开同一个项目,MiMo Code 自动把 MEMORY.md 和最近的 checkpoint 注入到上下文。你不需要重新讲一遍” 这个项目用 pnpm + monorepo”—— 它记得。

3. 智能上下文管理:自动 checkpoint + 按 token 预算注入

上下文快撑爆了怎么办?MiMo Code 的解法是:

  • 自动判断时机:根据当前模型的上下文窗口,决定什么时候该存档
  • 上下文重建:当 context 接近上限,从最新的 checkpoint + 项目内存 + 任务进度 + 保留的近期消息重建,让 Agent 能接着干当前任务
  • 预算注入:用 token 预算控制 checkpoint、memory、notes 进上下文的量,按重要性排序

这比单纯 “压缩” 强太多 —— 它重建的是” 项目的当前状态”,而不是” 聊天记录的摘要”。

4. 树形任务系统:T1、T1.1、T1.2

它把任务做成树形结构,自动和 checkpoint 系统打通。这意味着:

  • 子任务的进度会被持久化
  • 会话断了重开,任务进度还在
  • 父子任务关系清晰可见

对长程任务(” 把整个支付模块迁移到新 SDK”)来说,这是救命特性。

5. 目标驱动自主循环(/goal

这是我最爱的功能。

1
/goal 把 src/auth/ 全部迁移到新 JWT 库,所有测试通过

之后 Agent 不会” 觉得自己干完了”。每到想停的时候,一个独立的 judge 模型会审视当前对话,判断” 这个 goal 真完成了吗?”—— 是就停,不是就继续。

这意味着:你可以下班挂个 goal 让它跑,第二天早上来看结果。这是真正的” 自主工作”,不是” 半自动帮你按回车”。

6. Compose 工作流:把 spec 一路推到 merge

MiMo Code 内置了三个 deterministic JavaScript 工作流:

  • compose:Brainstorm → Design → Implement → Verify → Review → Report → Merge。完整的开发流水线,自动把独立任务并行到隔离的 git worktree,每个任务跑 TDD,phase 之间链式传结构化输出。
  • deep-research:Brief → Plan → Research → Reflect → Write → Review。多源深度调研报告生成器,可通过文件 checkpoint 中途恢复。
  • fact-check:Plan → Search → Extract → Group → Crosscheck → Report。对抗式事实核查 —— 并行 web 搜索 → 抽取可核查事实 → 去重 → 3 陪审员对抗投票。

这三个工作流的设计哲学是:当任务分解清晰时,用确定性的 phase 序列而不是 agent 对话。这跟 Anthropic 的 “skills + subagents + workflows” 思路一脉相承,但 MiMo Code 把它做成了 first-class 概念。

实战示例:五分钟跑通第一个 workflow

假设你想验证一个开放问题 ——“Claude 4.5 到底支不支持 tool_use 的并行调用?”。直接用 fact-check 工作流:

1
2
3
4
5
# 一行安装(macOS / Linux)
curl -fsSL https://mimo.xiaomi.com/install | bash

# 启动
mimo

第一次启动会自动引导你选择:

  1. MiMo Auto(限时免费)—— 匿名通道,零配置
  2. Xiaomi MiMo Platform —— OAuth 登录
  3. Import from Claude Code —— 一键迁移现有认证
  4. Custom Provider —— 加任意 OpenAI 兼容 API

选完登录之后:

1
2
3
/goal 用 fact-check 工作流验证:
"Claude 4.5 是否原生支持 tool_use 的并行调用?"
要求 3 个独立信源交叉验证,每个事实必须可链接回原始来源。

MiMo Code 会:

  1. Plan:拆成” 官方文档 /changelog/ 社区报告” 三条独立线索
  2. Search:并行调用 web 搜索
  3. Extract:从每条结果里抽出可核查的事实
  4. Group:去重
  5. Crosscheck:3 个陪审员对抗投票
  6. Report:生成可点击引用的 Markdown 报告

你不需要写任何代码。这就是 “agent + workflow + memory” 的真正威力 ——Spec 进去,Verified 报告出来

适用场景和限制

适合

  • 跨会话长期项目:今天写一半,明天接着干,Agent 不需要重新学
  • 长程重构:一晚上挂个 goal,第二天来看结果
  • 团队规范驱动开发:compose workflow 让 PR 流程标准化
  • 需要对抗式核查的事实研究:fact-check 工作流是杀手锏
  • 已经在用 OpenCode / Claude Code 的用户:迁移成本极低,一键导入

限制

  • 还在早期:11k stars 但 release 节奏快,breaking change 不会少
  • 部分高级功能需要登录 MiMo Platform:比如 mimo-v2.5-asr 语音输入、MiMo Auto 限时免费通道
  • 自定义 workflow 要写 JavaScript:不像 plain YAML 那么轻量
  • 依赖较多:Windows 上需要 PowerShell + UTF-8 系统区域,WSL 上要装 xselsoxpulseaudio 才能跑完整功能

与同类项目的差异

项目 定位 与 MiMo Code 的关键差异
Claude Code Anthropic 官方 没有内置 workflow 概念,记忆机制比较朴素
Codex CLI OpenAI 官方 上下文管理更简单,没有 goal-driven 自主循环
Cursor GUI 编辑器 不在终端原生,跟 git/CI 集成弱
OpenCode MiMo Code 的上游 fork 没有持久内存、智能上下文、goal 机制
Aider 终端编码 Agent 偏 PR 导向,没有 subagent 编排
Cline / Roo Code VS Code 扩展 强依赖 IDE,没有” 跨会话长期记忆” 概念

MiMo Code 的真正差异化在于:它把” 持久内存 + 智能上下文 + 目标驱动 + workflow 编排 + 自进化” 打包成了一个开箱即用的终端工具。这不是某个特性的领先,而是系统设计的领先。

总结

编码 Agent 这两年的进化路线,从 “我会写代码” 到 “我能理解整个项目” 到 “我能跨越会话工作”。MiMo Code 把这条线推到了下一站 ——“我能自己判断什么时候算做完,而且我能从自己的工作中学习”

如果你跟我一样被 “金鱼记忆” 折磨过,强烈建议花五分钟跑一下:

1
curl -fsSL https://mimo.xiaomi.com/install | bash

然后在你的项目里 mimo 起来,对它说一句 “记住这个项目用 pnpm + Turborepo,lint 规则是为了绕开 lodash 4.x 的 tree-shaking bug”—— 下次开会话,它会主动告诉你这件事。

GitHub: https://github.com/XiaomiMiMo/MiMo-Code