MiMo-Code开源16天11K星:小米AI编码Agent的持久记忆和自进化机制
MiMo-Code开源16天11K星:小米AI编码Agent的持久记忆和自进化机制
小米开源了MiMo-Code,一个终端AI编程Agent,16天11K星。相比Claude Code和Kimi Code,MiMo-Code的核心差异在于持久记忆系统——Agent跨会话记住项目上下文,并在使用过程中自我改进。
一、MiMo-Code是什么
MiMo-Code是小米在2026年6月10日开源的终端AI编程Agent,TypeScript编写。开源协议未标明,安装方式:
curl -fsSL https://mimo.xiaomi.com/install | bash # 或 npm install -g @mimo-ai/cli # 启动 mimo
首次启动会引导配置。支持四种认证方式:MiMo Auto(限时免费通道)、小米MiMo平台OAuth登录、从Claude Code导入已有认证、自定义OpenAI兼容API。
MiMo-Code的定位和Claude Code、Kimi Code相同——终端里的AI编码Agent。但它的差异化在于两个功能:持久记忆和自进化。
二、持久记忆系统的工作原理
MiMo-Code的持久记忆系统是其最核心的技术差异。
多数AI编码Agent的记忆模型
大多数AI编码Agent的记忆是会话级的:
会话1:分析项目 → 了解架构 → 修改代码 ↓ 会话结束,记忆清除 会话2:重新分析项目 → 重新理解架构 → 重新修改代码 ↓ 会话结束,记忆清除 会话3:再次重新分析...
每次新会话都是从头开始。Agent需要重新理解项目结构、重新了解之前的修改、重新记住你的偏好。
如果你的项目有50个文件、10万行代码,每次新会话Agent都要花时间重新"学习"这些信息。这不是Agent的能力问题,是会话模型的问题。
MiMo-Code的记忆模型
MiMo-Code的设计是跨会话持久化的:
会话1:分析项目 → 理解架构 → 修改代码 ↓ 关键信息存入持久记忆 会话2:加载记忆 → 直接在上次基础上继续 ↓ 新信息继续存入 会话3:加载记忆 → 持续积累
持久记忆系统存储的信息包括:
项目结构记忆:项目的目录结构、技术栈、框架版本、关键配置文件的位置和内容摘要。这些信息在一次会话中获取后,后续会话直接复用,不需要重新分析。
架构决策记忆:会话中做出的架构决策(为什么选这个方案、放弃了哪些方案、选型的依据)被记录下来。后续会话中Agent知道之前做了什么决策,不会重复讨论已经决定过的问题。
用户偏好记忆:你在交互中显示出的偏好被Agent记住——喜欢用函数组件还是类组件、偏好单引号还是双引号、测试用Jest还是Vitest。不需要在每次新会话中重复告诉Agent这些偏好。
问题修复记录:之前解决过的Bug和修复方案被记录下来。当类似问题再次出现时,Agent可以直接引用之前的修复方案,而不是重新排查。
记忆的存储方式
MiMo-Code的记忆存储在本地文件系统中,位置在项目目录下的.mimo/目录中:
.mimo/ ├── memory/ │ ├── project-structure.json # 项目结构摘要 │ ├── architecture-decisions.md # 架构决策记录 │ ├── user-preferences.json # 用户偏好 │ └── fix-records.json # 问题修复记录 ├── sessions/ │ └── ... # 会话历史 └── config.json # 配置
这些文件是文本格式,可以直接查看和编辑。如果你发现Agent记住了一些不准确的信息,可以直接修改对应的记忆文件。
三、自进化机制
MiMo-Code的另一个差异化功能是自进化——Agent在使用过程中自我改进。
改进什么
MiMo-Code在每次会话结束后,会对自己在会话中的表现做评估:
响应质量评估:用户的反馈信号(用户是否接受了生成的代码、是否要求修改、是否自己手动改写了)被用来评估Agent的响应质量。如果用户频繁修改Agent生成的代码,说明生成质量不够。
代码风格适配:Agent观察用户对自己生成代码的修改模式。如果用户总是把双引号改成单引号、总是把函数声明改成箭头函数、总是把4空格改成2空格,Agent会逐步调整自己的生成风格,匹配用户的习惯。
工具使用优化:Agent记录哪些工具被频繁调用、哪些工具很少使用。不常用的工具在后续会话中优先级降低,常用的工具优先调用。
和记忆中用户偏好的区别
用户偏好是用户主动告诉Agent的信息("我用双引号")。自进化是Agent从用户行为中被动推断的信息("用户每次都把双引号改成单引号,下次直接用单引号")。
前者是显式配置,后者是隐式学习。两者结合,覆盖了用户明确说出偏好和用户没有说出但行为显示偏好的情况。
自进化的频率
MiMo-Code的自进化不是实时的,而是在会话结束后异步执行。每次会话完成后,Agent花几秒时间分析本次会话的交互数据,更新记忆和模型偏好。
这意味着自进化不会增加用户对话时的等待时间,而是利用会话间隙完成。
四、基准测试位置
MiMo-Code的README没有直接提供SWE-bench或HumanEval的基准测试分数。它的定位不是"在某个benchmark上排名第几",而是"在持续使用中的体验提升"。
这和Claude Code、Codex等Agent的定位差异是一个值得注意的点——MiMo-Code强调的不是单次任务的完成质量,而是长期使用中的一致性提升。
如果你看重的是每次对话的单次表现,Claude Code或Codex的基准测试数据更有参考价值。如果你看重的是Agent在持续使用中是否越来越了解你的项目和习惯,MiMo-Code的持久记忆和自进化机制更有实际意义。
五、安装和配置
基础安装
curl -fsSL https://mimo.xiaomi.com/install | bash
安装完成后,运行mimo首次启动,会引导配置认证方式。
从Claude Code迁移
MiMo-Code支持直接从Claude Code导入认证:
mimo # 在配置引导中选择"Import from Claude Code" # 自动读取 ~/.claude/ 中的认证信息
这个功能对同时使用或切换到MiMo-Code的用户比较方便,不需要重新申请API Key。
自定义API配置
如果你不想用小米的模型通道,可以配置自己的API:
mimo config set provider openai mimo config set base_url https://your-endpoint.com/v1 mimo config set api_key your-key mimo config set model gpt-4o
兼容所有OpenAI格式的API。
六、和同类的差异对比
| 维度 | MiMo-Code | Claude Code | Kimi Code |
|---|---|---|---|
| 记忆模型 | 跨会话持久记忆 | 会话级(无持久记忆) | 会话级(无持久记忆) |
| 自进化 | ✅ 从用户行为学习 | ❌ | ❌ |
| 代码风格适配 | ✅ 自动适配 | 需手动写CLAUDE.md | 需手动写Skill |
| 项目结构缓存 | ✅ 跨会话复用 | 每次重新分析 | 每次重新分析 |
| 基准测试 | 未公开 | SWE-bench/HumanEval | 未公开 |
| 开源协议 | 未标明 | 未开源 | MIT |
| 安装方式 | curl/npm | npm | curl/brew/npm |
| 模型通道 | 小米MiMo Auto(限时免费) | Claude API | Kimi API |
| 自定义API | ✅ OpenAI兼容 | ✅ Anthropic兼容 | ✅ OpenAI兼容 |
| 安装依赖 | 无(curl一键) | 需Node.js | 无(curl一键) |
MiMo-Core有的而另外两个没有的功能:持久记忆和自进化。这两个功能的方向是对的——同一个项目的多次会话之间应该有连续性,Agent应该逐步了解用户的习惯。但这是一个长期的体验优化,一次会话的完成质量不一定会因此高于Claude Code。
七、实际使用体验
基于持久记忆的实际效果,以一个新项目首次使用为例:
会话1(首次分析):
mimo > 分析这个项目 # MiMo-Code扫描项目结构 # 记录:目录结构、技术栈、框架版本 # 记录:关键配置文件位置和内容摘要 # 耗时:和Claude Code首次分析一样
会话2(间隔一天后):
mimo > 在上次的修改基础上,继续优化用户模块 # MiMo-Code加载会话1的记忆 # 不需要重新分析项目 # 直接知道项目的架构和技术栈 # 直接知道上次修改到哪里
会话N(使用一段时间后):
mimo > 加一个新接口 # MiMo-Code加载所有历史记忆 # 知道你的代码风格偏好 # 知道之前做过的架构决策 # 知道之前解决过的问题 # 生成的代码风格更接近你的习惯
持久记忆的效果在第一次使用时显现不出来,但在第5次、第10次会话后开始明显。项目结构不需要重新分析,偏好不需要重新解释,历史决策不会重复讨论。
八、局限性
基准测试数据缺失:MiMo-Code没有公开SWE-bench或HumanEval的分数。单次任务的完成质量缺少量化指标,只能通过实际使用判断。
记忆的准确性依赖使用频率:持久记忆的准确性和项目分析的频率相关。如果项目发生了重大架构变更(比如从Flask迁移到FastAPI),旧记忆需要主动更新或清除。Agent不会自动知道项目结构发生了变化。
自进化可能导致错误固化:如果用户在某段时间内因为调试需要写了不规范的代码(比如用print代替logger),自进化机制可能学习到这个暂时的行为,导致后续生成的代码也使用不规范的方式。
开源协议不明确:MiMo-Code的README没有明确标注开源协议。虽然代码可以访问和使用,但商业使用的法律边界不清晰。
小米服务依赖:MiMo Auto免费通道是限时的,未来可能会收费或关闭。自定义API配置可以绕过这个限制,但需要自己管理API Key。
九、总结
MiMo-Code是小米开源的终端AI编程Agent,16天11K星
核心差异化:持久记忆(跨会话复用项目上下文)和自进化(从用户行为学习)
持久记忆存储:项目结构、架构决策、用户偏好、问题修复记录
自进化机制:会话结束后异步分析交互数据,更新偏好
支持MiMo Auto免费通道、自定义API、从Claude Code导入认证
没有基准测试数据,侧重长期使用体验而非单次完成质量
适合:同一个项目长期使用、希望Agent逐步了解自己习惯的用户
不适合:一次性任务、对单次完成质量有明确量化要求的场景
持久记忆的效果在使用5-10次会话后开始明显
标签:#MiMo-Code #小米 #AI编程 #持久记忆 #自进化 #ClaudeCode #KimiCode