小米 MiMo Code:开源 AI 编程助手深度评测以及安装教程

2026 年 6 月 10 日 · 小米 MiMo 团队发布并开源 · MIT 协议
一、MiMo Code 是什么?

| 主题 | 要解决的问题 | 关键机制 |
|---|---|---|
| 计算 (Compute) | 长程任务中每一步错误累积放大 | Max Mode、Goal 停止条件、Dynamic Workflow |
| 记忆 (Memory) | 上下文窗口有界,会话无法无限延伸 | Checkpoint/Rebuild、Writer subagent、四层记忆体系 |
| 进化 (Evolution) | 跨 session 经验无法积累 | Dream、Distill、项目记忆 |

二、核心技术设计

2.1 计算:扩展单轮推理的质量

Max Mode:多采样提高决策质量
简单说,就是在每个决策点生成多个候选方案,然后通过 majority voting 和 best-of-N self-verification 选出最优路径。在SWE-Bench Pro上,Max Mode相比单次采样能提升10-20%,代价是大约4-5倍的token消耗。对于关键决策点,这笔交换是划算的。Goal:独立裁判防过早终止
长任务中一个常见的“翻车”模式是:Agent看到有点进展就提前宣布“完成了”。MiMo Code的解法很直接——让用户用自然语言设定停止条件(比如“所有测试通过且代码已提交”),Agent每次尝试终止时,系统会启动一个独立的模型调用,从头审查完整对话历史,判断条件是否真的满足。验证者不参与任何实际工作,所以对Agent的已完成部分没有认同偏差,它每次拿到的上下文和Agent完全一致(包含工具实际输出)。如果条件没满足,就把具体差距反馈给Agent让它继续;如果确认无法完成,则判定为不可能。Dynamic Workflow:编排并行子Agent
当任务规模大到需要协调几十个并行工作单元时,逐轮的工具调用就力不从心了。Dynamic Workflow的做法是把编排逻辑从prompt里移出来,变成真正的代码——主Agent生成Ja vaScript脚本,在隔离沙箱中确定性执行。脚本通过agent() 派出子Agent,通过 barrier() 等待并行任务完成。循环不会提前退出,barrier不会漏掉子Agent。这样,模型的判断力只用在对的地方:理解代码和生成代码,而不是浪费在流程控制上。
2.2 记忆:维持多轮任务的状态连续性

Checkpoint & Rebuild
运行时会在到达窗口上限之前的几个固定位置介入,这些点位称为 checkpoint。每个checkpoint处,运行时会派出一个独立的 writer subagent:读取到目前为止的对话,把结构化状态写入磁盘。主Agent照常工作,writer并发执行,两者互不干扰。当窗口真的接近上限时,运行时执行一次 rebuild:切断当前窗口,开启新窗口,用已经持久化的文件作为种子重建上下文。主Agent在新窗口中醒来,状态已经摆在面前,继续工作。从模型视角来看,对话从未中断。 Checkpoint 的触发时机远低于窗口上限——大致在已配置预算的20%、45%、70%。每一次触发都是对前一次的增量更新,不是孤注一掷的总结。最末尾那次 rebuild,也不是仓促的压缩,而是把一路记下来的结构化记录“变&现”的时刻。Writer:独立于主Agent的提取者
如果让主Agent自己记笔记,在长任务面前迟早会撑不住——要求一个正在调 bug 的模型同时维护结构化日志,大概率两件事都做不好。所以 MiMo Code 的做法很干脆:**主Agent不维护自己的记忆**。提取完全移出主循环,由运行时触发,由独立的 writer subagent 完成——它不与主Agent共享注意力或token预算。 Writer会写入一份固定结构的 checkpoint 文件,包含11个字段:| 字段 | 说明 |
|---|---|
| 当前意图 | Agent 正在做什么 |
| 下一步动作 | 计划接下来做什么 |
| 工作约束 | 当前遵循的限制条件 |
| 任务树 | T1, T1.1, T1.2… 层级任务状态 |
| 当前工作 | 正在处理的文件/代码 |
| 涉及文件 | 本轮涉及的文件列表 |
| 跨任务发现 | 与当前任务无关但值得记录的发现 |
| 错误与修复 | 已遇到的错误和修复方式 |
| 运行时状态 | 环境状态(分支、测试结果等) |
| 设计决策 | 架构选择的理由 |
| 杂项笔记 | 其他需要记录的信息 |
四层记忆体系
Writer维护的是一个分层记忆体系,每一层有不同的生命周期:| 层级 | 文件 | 生命周期 | 内容 |
|---|---|---|---|
| Session 记忆 | checkpoint.md | 当前逻辑会话 | 会话完整工作状态快照 |
| Project 记忆 | MEMORY.md | 跨 session | 架构决定、规则、技术事实 |
| Scratchpad | notes.md | 会话级自由写入 | 主Agent唯一写入通道,writer消费后清空 |
| Global 记忆 | SQLite 轨迹 | 永久存档 | 每条消息、每次工具调用原文存储 |

2.3 进化:从经验中持续改进

项目记忆
MiMo Code 维护一个 Markdown 格式的项目级记忆文件(MEMORY.md),持久保存跨 session 的知识:项目背景、用户明确要求的规则、架构决定及其理由、反复验证过的技术事实。为什么选文件而不是纯向量数据库?核心原因是可审查性——记忆一旦影响 Agent 行为,用户需要能看到、能删除记错的条目、能修改过时的知识。文件可以被标准读写工具直接操作,全文索引在文件之上提供快速检索。
Dream:知识收敛
每 7 天自动触发一次。由独立 Agent 读取历史 session 对话和现有记忆文件,执行合并、去重、验证路径有效性、压缩操作。把分散的记忆收敛成一份紧凑的当前状态,并更新全局记忆。效果就是“越用越顺手、越用越懂你”。Distill:流程固化
每 30 天自动触发。同样是独立 Agent 读取历史 session,但关注点不是知识而是流程——识别反复出现的工作模式,将其固化为可复用的 Skill、CLI 命令、自定义 Agent 或 SOP 文档。三、安装与配置
3.1 环境要求
- 一款现代终端模拟器(推荐:WezTerm / Alacritty / Ghostty / Kitty,macOS 用户推荐 iTerm 或 VSCode Terminal)
- LLM 提供商的 API 密钥
3.2 安装方式
Mac / Linux(推荐):
curl -fsSL https://mimo.xiaomi.com/install | bash
Windows / npm:
npm install -g @mimo-ai/cli
安装脚本会自动检测操作系统和 CPU 架构(x64 / arm64),下载对应预编译二进制。
3.3 模型提供商
MiMo Code 通过 AI SDK 和 Models.dev 支持 75+ LLM 提供商,同时支持运行本地模型:
- MiMo Token Plan(推荐新手)— 小米官方 API,中文友好
- MiMo Auto(限时免费)— 匿名通道,零配置即用,性能对标 Claude Sonnet 4.6
- OpenAI、Anthropic、Google、DeepSeek、Kimi、GLM 等
- 任意 OpenAI 兼容 API
在 TUI 中运行 /connect 命令,选择提供商并粘贴 API 密钥即可。
3.4 首次启动
cd <项目目录>
mimo
运行以下命令初始化项目上下文:
/init
MiMo Code 会分析项目结构并在根目录创建 AGENTS.md 文件。建议将此文件提交到 Git,帮助 AI 理解项目结构和编码规范。
四、工作模式
MiMo Code 自带三种内置模式(主 Agent),通过 Tab 键切换:
4.1 Build 模式(默认)
拥有完整工具权限的标准开发模式:文件读写、代码编辑、Shell 命令执行、Git 操作。日常开发的主要工作模式。
4.2 Plan 模式
受限的只读分析模式,以下工具被禁用:
write— 不能创建新文件edit— 不能修改现有文件patch— 不能应用补丁bash— 不能执行 Shell 命令
适用于:分析代码架构、设计方案、评审改动可行性,在动手前先对齐思路。
4.3 Compose 模式

通过精心策划的内置技能集合来编排任务执行。Compose 不依赖单一庞大 prompt,而是查阅一个包含 13 个聚焦技能的库,为工作流每一步选择合适的技能。
| 类别 | 技能 | 用途 |
|---|---|---|
| 测试 | TDD | 测试驱动开发工作流 |
| 调试 | Debug | 系统化调试方法论 |
| 验证 | Verify | 完成前验证 |
| 协作 | Brainstorm、Plan、Execute、Dispatch、Review、Receive | 头脑风暴、计划、执行、并行派发、审查反馈 |
| Git | Worktree、Finish | Git worktree 管理、分支收尾 |
| 元开发 | Write Skill | 编写新技能 |
启用 Compose:Tab 键循环切换到 Compose,或通过 use compose 在消息中调用。技能包首次使用时解压到 .mimocode/skills/,各版本间保持更新。
五、核心操作
5.1 理解代码
让 MiMo Code 讲解代码库:
@packages/functions/src/api/index.ts
How is authentication handled in this file?
使用 @ 键可模糊搜索项目中的文件。
5.2 制定计划
Tab 切换到 Plan 模式,描述需求:
When a user deletes a note, flag it as deleted in the database.
Then show all recently deleted notes with undelete/permanent-delete options.
可拖放图片到终端提供 UI 参考。对计划满意后 Tab 切回 Build 模式,说 “Go ahead and make the changes” 开始实施。
5.3 直接修改
简单修改无需先制定计划:
@packages/functions/src/settings.ts
Add authentication to the /settings route, following the pattern in @notes.ts
5.4 撤销与重做
/undo(ctrl+x u)— 撤销最后一条消息及所有文件更改(需要 Git 仓库)/redo(ctrl+x r)— 重做之前撤销的操作- 可多次
/undo回退多步
六、会话管理
6.1 会话存储
每次对话被持久化为一个会话,数据保存在 $MIMOCODE_HOME/ 目录:
$MIMOCODE_HOME/
├── config/ ← 全局配置文件
├── data/ ← auth.json、会话数据库
├── state/
└── cache/
6.2 启动与恢复
mimo # 创建新会话
mimo --continue # 继续上一个会话
mimo --session # 恢复指定会话
6.3 切换与分叉
/new或ctrl+x n— 开启新会话/sessions或ctrl+x l— 列出并切换会话- 支持分叉会话(fork),在不中断原会话的前提下探索其他路径
6.4 上下文压缩
对话变长时,MiMo Code 会自动压缩历史消息释放 token 空间。可手动触发 /compact(ctrl+x c),由隐藏的 Compaction 袋里将长上下文压缩为摘要。
| 选项 | 说明 | 默认值 |
|---|---|---|
auto | 上下文满时自动压缩 | true |
prune | 删除旧工具输出节省 token | true |
reserved | 保留的 token 数 | 10000 |
七、权限系统
MiMo Code 使用 permission 配置决定操作是否自动运行、提示审批或被阻止。
7.1 操作类型
| 规则 | 效果 |
|---|---|
"allow" | 无需审批直接运行 |
"ask" | 提示用户审批 |
"deny" | 阻止该操作 |
7.2 配置示例
全局设置 + 工具级覆盖:
{
"$schema": "https://mimo.xiaomi.com//config.json",
"permission": {
"*": "ask",
"bash": "allow",
"edit": "deny"
}
}
细粒度规则(对象语法):
{
"permission": {
"bash": {
"*": "ask",
"git *": "allow",
"npm *": "allow"
}
}
}
八、扩展能力
8.1 MCP(Model Context Protocol)
支持本地和远程 MCP 服务器,添加外部工具扩展能力。配置方式:
{
"mcp": {
"my-server": {
"type": "local",
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"API_KEY": "xxx"
}
}
}
}
支持 OAuth 自动认证、Glob 模式匹配、按 Agent 配置不同 MCP 工具。
8.2 内置斜杠命令
| 命令 | 快捷键 | 功能 |
|---|---|---|
/connect | — | 添加模型提供商 |
/compact | ctrl+x c | 压缩会话 |
/details | ctrl+x d | 切换工具执行详情 |
/editor | ctrl+x e | 外部编辑器写消息 |
/exit | ctrl+x q | 退出 |
/export | ctrl+x x | 导出对话为 Markdown |
/help | ctrl+x h | 帮助对话框 |
/init | ctrl+x i | 创建/更新 AGENTS.md |
/models | ctrl+x m | 列出模型 |
/new | ctrl+x n | 新会话 |
/redo | ctrl+x r | 重做撤销 |
/sessions | ctrl+x l | 切换会话 |
/share | ctrl+x s | 分享会话 |
/themes | ctrl+x t | 切换主题 |
/thinking | — | 切换推理过程显示 |
/undo | ctrl+x u | 撤销 |
/unshare | — | 取消分享 |
九、Benchmark 表现
在相同模型条件下,MiMo Code 的 Agent 框架在主流编程评测中的表现如下:| 测试集 | MiMo Code + MiMo-V2.5-Pro | Claude Code + Sonnet 4.6 |
|---|---|---|
| SWE-Bench Pro V2 | 62% | 57% |
| Terminal Bench 2 | 73% | 68% |
| SWE-bench Verified | 82% | 76% |
十、总结
MiMo Code 是小米 MiMo 团队在 Coding Agent 领域的首次系统性探索。其核心技术贡献可以归纳为三个轴向: 1. **计算** — Max Mode 提高单步可靠性 + Goal 独立裁判防过早终止 + Dynamic Workflow 编排并行子 Agent 2. **记忆** — Checkpoint/Rebuild 让逻辑会话无限延伸 + Writer subagent 隔离记忆维护 + 四层记忆体系分层管理(Session → Project → Global → Scratchpad) 3. **进化** — Dream 每 7 天合并去重 + Distill 每 30 天固化工作流 + 项目记忆可审查可维护 现在发布的 V0.1.0 虽然还是一个探索性版本,但已经展现了清晰的设计愿景。它不是那种“套壳”工具,而是从架构层面去解决编程 Agent 在长程自动化中的核心工程挑战。 > **定位**:面向长程自动化编程任务的开源终端 AI Agent > **协议**:MIT官网 · 博客 · GitHub · 文档
标签:MiMo Code AI编程 开源 终端Agent 长程任务 持久记忆 多智能体 MIT 小米 Coding Agent OpenCode