小米开源 MiMo Code:把 "长期记忆 + 自进化" 还给终端 AI 编码 Agent
昨天半夜,我在给一个新项目写 README。Claude Code 一路顺畅地帮我把 README 草稿写完了,但关掉终端、第二天早上重新打开同一个项目的时候,它已经完全不记得昨天我们讨论过哪些字段、为什么选了这种命名风格、那条 lint 规则是为了绕开哪个库的 bug。
我盯着空白上下文想了十秒钟:为什么一个号称” 智能” 的工具,连昨天自己说过的话都记不住?
早上刷 GitHub Trending,第 3 个仓库让我精神一振:
XiaomiMiMo/MiMo-Code — MiMo 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。它们的共性问题是 ——
- 会话结束 = 记忆清零。每个新会话都要把项目背景讲一遍,token 没花在真正的工作上。
- 上下文窗口是死的。写到一半开始丢历史,要么手动
/compact,要么祈祷模型自己记得。 - 没有” 目标驱动”。你让它” 重构 auth 模块”,它可能改了一半觉得差不多了就停下,不会判断” 真的完成了吗”。
- 没有自进化。今天踩的坑,明天再踩一遍,没有任何” 经验沉淀”。
小米这次开源的 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 | # 一行安装(macOS / Linux) |
第一次启动会自动引导你选择:
- MiMo Auto(限时免费)—— 匿名通道,零配置
- Xiaomi MiMo Platform —— OAuth 登录
- Import from Claude Code —— 一键迁移现有认证
- Custom Provider —— 加任意 OpenAI 兼容 API
选完登录之后:
1 | /goal 用 fact-check 工作流验证: |
MiMo Code 会:
- Plan:拆成” 官方文档 /changelog/ 社区报告” 三条独立线索
- Search:并行调用 web 搜索
- Extract:从每条结果里抽出可核查的事实
- Group:去重
- Crosscheck:3 个陪审员对抗投票
- 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 上要装
xsel、sox、pulseaudio才能跑完整功能
与同类项目的差异
| 项目 | 定位 | 与 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”—— 下次开会话,它会主动告诉你这件事。