首页 > 教程攻略 > ai教程 >小米 MiMo Code:开源 AI 编程助手深度评测以及安装教程

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

来源:互联网 时间:2026-06-14 07:28:18
2026年6月10日,小米MiMo团队正式发布并开源了MiMo Code——一款面向长程自动化编程任务的终端AI Agent,基于OpenCode构建,采用MIT协议。它的核心命题很明确:在几十甚至上百步的持续执行中,如何让Agent保持决策质量和状态连续性,而不是中途“失忆”或“跑偏”。

2026 年 6 月 10 日 · 小米 MiMo 团队发布并开源 · MIT 协议


一、MiMo Code 是什么?

一言以蔽之,MiMo Code 是小米团队在Coding Agent领域的一次系统性探索,目标是把编程Agent从“短跑选手”变成“马拉松选手”。整个设计围绕三个核心主题展开:**计算(Compute)**——提升单步决策质量,防止错误累积;**记忆(Memory)**——让上下文窗口有界但对话无限延伸;**进化(Evolution)**——跨session的经验能真正沉淀下来。技术栈方面,选择了现代、高效的工具组合:Bun + TypeScript + Effect(运行时)+ SolidJS(TUI界面)+ Tauri(桌面端)。
主题要解决的问题关键机制
计算 (Compute)长程任务中每一步错误累积放大Max Mode、Goal 停止条件、Dynamic Workflow
记忆 (Memory)上下文窗口有界,会话无法无限延伸Checkpoint/Rebuild、Writer subagent、四层记忆体系
进化 (Evolution)跨 session 经验无法积累Dream、Distill、项目记忆

二、核心技术设计

任何一个编程Agent的基本结构,都是把语言模型放进一个循环中反复调用:模型负责推理和决策,运行时负责工具管理、状态持久化和输入组装。模型本身是无状态的——每次调用从空白开始,所有连续性都由运行时提供。短任务(10轮以内)通常工作良好,把完整对话历史传给模型就够用;但一旦轮次增加,两个麻烦就冒出来了:一是计算量成倍放大,二是上下文窗口迟早撑满。

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… 层级任务状态
当前工作正在处理的文件/代码
涉及文件本轮涉及的文件列表
跨任务发现与当前任务无关但值得记录的发现
错误与修复已遇到的错误和修复方式
运行时状态环境状态(分支、测试结果等)
设计决策架构选择的理由
杂项笔记其他需要记录的信息
还有个关键约束:对每个结构化文件,**只有恰好一个 actor 被允许写入**——single-writer 是防止并发写入产生不一致状态的最简不变量。
四层记忆体系
Writer维护的是一个分层记忆体系,每一层有不同的生命周期:
层级文件生命周期内容
Session 记忆checkpoint.md当前逻辑会话会话完整工作状态快照
Project 记忆MEMORY.md跨 session架构决定、规则、技术事实
Scratchpadnotes.md会话级自由写入主Agent唯一写入通道,writer消费后清空
Global 记忆SQLite 轨迹永久存档每条消息、每次工具调用原文存储
主Agent对结构化文件只有读权限,但有一个例外:notes.md,一个会话级的自由格式 scratchpad。主Agent可以随时 append 零散发现,writer 在每次 checkpoint 时读取它、将内容路由到对应结构化字段,然后清空。 Rebuild 时,持久化文件会被组装为分层 prompt 注入新窗口,每段有独立的 token 上限。大致顺序是:任务清单 → session checkpoint → 最近用户消息逐字切片 → 项目记忆 → 全局记忆索引 → notes → 文件路径索引 → tail reminder。即使每段都顶满上限,注入总量控制在约 65K token 以内。Agent 从这些信息中恢复状态后直接继续工作,不需要重新确认目标,不需要重读已处理的文件。

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

用户和同一项目交互几十次甚至上百次,如果每次 session 结束后所有经验都丢失,Agent永远无法从过去的工作中积累。所以需要一套“进化”机制。
项目记忆
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头脑风暴、计划、执行、并行派发、审查反馈
GitWorktree、FinishGit 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 撤销与重做

  • /undoctrl+x u)— 撤销最后一条消息及所有文件更改(需要 Git 仓库)
  • /redoctrl+x r)— 重做之前撤销的操作
  • 可多次 /undo 回退多步

六、会话管理

6.1 会话存储

每次对话被持久化为一个会话,数据保存在 $MIMOCODE_HOME/ 目录:

$MIMOCODE_HOME/
├── config/   ← 全局配置文件
├── data/     ← auth.json、会话数据库
├── state/
└── cache/

6.2 启动与恢复

mimo                     # 创建新会话
mimo --continue          # 继续上一个会话
mimo --session       # 恢复指定会话

6.3 切换与分叉

  • /newctrl+x n — 开启新会话
  • /sessionsctrl+x l — 列出并切换会话
  • 支持分叉会话(fork),在不中断原会话的前提下探索其他路径

6.4 上下文压缩

对话变长时,MiMo Code 会自动压缩历史消息释放 token 空间。可手动触发 /compactctrl+x c),由隐藏的 Compaction 袋里将长上下文压缩为摘要。

选项说明默认值
auto上下文满时自动压缩true
prune删除旧工具输出节省 tokentrue
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添加模型提供商
/compactctrl+x c压缩会话
/detailsctrl+x d切换工具执行详情
/editorctrl+x e外部编辑器写消息
/exitctrl+x q退出
/exportctrl+x x导出对话为 Markdown
/helpctrl+x h帮助对话框
/initctrl+x i创建/更新 AGENTS.md
/modelsctrl+x m列出模型
/newctrl+x n新会话
/redoctrl+x r重做撤销
/sessionsctrl+x l切换会话
/sharectrl+x s分享会话
/themesctrl+x t切换主题
/thinking切换推理过程显示
/undoctrl+x u撤销
/unshare取消分享

九、Benchmark 表现

在相同模型条件下,MiMo Code 的 Agent 框架在主流编程评测中的表现如下:
测试集MiMo Code + MiMo-V2.5-ProClaude Code + Sonnet 4.6
SWE-Bench Pro V262%57%
Terminal Bench 273%68%
SWE-bench Verified82%76%
需要说明的是,这些 Benchmark 衡量的仍是对单个仓库级问题的一次性解决能力。MiMo Code 的多数核心设计目标——多轮记忆、后台状态维护、完成度验证、跨 session 进化——主要体现在持续几十轮的真实开发场景中,这些优势在离线基准测试中不太容易体现出来。为了弥补这个缺口,团队还构建了真人在环的双盲 AB 评测:在开发者自己的真实项目中,针对同一任务并行启动两个匿名编码 Agent,独立完成后由开发者打分,并辅以自动轨迹打分与 diff 量化进行三角互证。

十、总结

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

相关下载