小米版Claude Code正式发布,这次开源给到夯。
大家好我是二哥呀。MiMo Code 0.1 板正式发布并采用 MIT 许可协议正式开源。支持MiMo Auto限时免费想薅 token 的小伙伴请抓紧小米 MiMo 平台 OAuth 登录从 Claude Code 导入一键迁移已有认证自定义 Provider可添加任意 OpenAI 兼容的 API安装方式非常简单一行命令搞定curl -fsSL https://mimo.xiaomi.com/install | bash。这个安装界面的颜值整的还挺高不得不说兄弟姐妹们小米在外观这方面确实有一套。内部集成了https://ai-sdk.dev/的 SDK支持多种模型和平台的无缝对接。还有https://models.dev/的模型库提供丰富的预训练模型选择。01、安装和上手官方说启动方式非常简单直接mimo就行但实际体验下来这块是没有做好的我河边直接报错了。好在Warp提供了默认的Agent服务按照提示修复一下就好。给大家也看一下解决方案。就是重新执行一下source让环境变量生效。或者新开一个终端。好家伙开屏还有流星划过。输入/connect我们连一下服务商。为了方便我们就选择auto这样可以免登录。顺带再配一下DeepSeek V4吧同样执行/connect选择 DeepSeek 供应商然后输入 API Key再选择要接入的模型即可。02、Harness 架构总览整体的Harness做的还是很全面的在 计算、记忆、进化上下了大功夫。主要解决了两个问题。第一由于上下文窗口终将会被耗尽所以除了要做必要的摘要压缩还要能在检索和存储方面做得更好让Agent能够更智能的持久化写入和召回关键信息。第二由于模型的指令遵循会随着输入长度的增加而变差所以需要通过必要的机制来提升 Agent 的指令遵循能力保证它在长对话中的表现。03、给 PaiCLI 做宣传页我们的第一个任务是为我们的PaiCLI做一个宣传页参考https://mimo.xiaomi.com/mimocode来看看MiMo Code的表现。很可惜先用了Web fetch没拿到结果然后又准备用 CDP结果还是没拿到。那我们必须上点家法了。让MiMo Code先安装一下web-access这个Skill。安装一下https://github.com/eze-is/web-access 这个Skills然后你就能获得到网页了。从输出上能看到用了 Claude Code的默认目录。按理说我之前在Claude Code中安装过的但不知道为什么还需要重新安装。不管了。给权限。能看到这次 CDP 代理已经启动了。继续给权限。这次能获取页面内容了。搞清楚了网站的设计风格浅色暖调背景、极简排版、PingFang SC 字体、终端安装命令。开始重新设计 PaiCLI 宣传页。等一下看看MiMo Code的表现。搞定了我们来打开看看效果整体风格确实还很不错。MiMo Code 还支持运行时新指令排队。完工后我们直接配置个子域名大家可以直接访问体验一下。https://paicli.paicoding.com/04、用算力换可靠性前面提到了 MiMo Code 围绕计算、记忆、进化三个主题设计 Harness接下来逐个拆解。先看计算。一个编程 Agent 的基本结构是把语言模型放进一个运行时中循环调用模型负责推理和决策运行时负责管理工具、持久化状态、组装每一轮的输入。模型本身是无状态的每次调用都从空白开始所有连续性由运行时提供。对于短任务10 轮以内这个结构没问题把完整对话历史传给模型就行。但当任务规模达到几十步甚至上百步时每一步的错误率会被累积放大Agent 在长程运行中又缺乏外部纠正信号。MiMo Code 的思路是在不同粒度上投入额外的计算来换取可靠性。Max ModeMax Mode 是 MiMo Code 最有意思的一个设计。每一轮决策时它并行生成 N 个候选方案默认 N5每个候选独立完成推理和工具调用规划但不实际执行。然后由同一个模型作为 judge对比所有候选的推理过程和行动计划选出最优的一个执行。默认使用 temperature1 进行 5 次独立采样几乎不会产出相同结果。如果多个候选方案恰好指向同一个方向这本身就表明该方向的置信度高而当候选之间差异较大时由低温度的 judge 从中选出最稳健的方案比依赖单次采样更可靠。在 SWE-Bench Pro 上Max Mode 相比单次采样提升了 10-20%代价是约 4 到 5 倍的 token 消耗。这个代价不小但对于那些一步走错全盘皆输的长任务来说值得。目前 Max Mode 仅为实验性功能需要手动配置开启。MiMo Code 的配置文件路径是项目级.mimocode/mimocode.json或全局~/.config/mimocode/mimocode.json在其中设置experimental.maxMode为true即可。GoalMax Mode 解决的是做对Goal 解决的是做完。长任务中有一种非常常见的失败模式Agent 在后续轮次看到之前已有的进展就倾向于提前宣称完成了或者反过来向用户提问。Goal 的机制是。用户设定一个自然语言描述的停止条件比如所有测试通过且代码已提交。Agent 每次尝试终止时系统自动发起一次独立的模型调用来审查完整对话历史判断条件是否真正满足。如果未满足把具体差距反馈给 Agent让它继续干如果确认无法完成则判定为不可能并退出。这个验证者不参与实际工作因此不会对 Agent 已完成的部分产生认同偏差。它每次获得与 Agent 完全相同的上下文包括工具的实际输出。实际运行中误拦比漏放更常见整体死循环概率小于 0.5%到达上限后会自动退出。Max Mode 是并行维度同一步花 N 倍算力选最优Goal 是串行维度在同一个任务上做更长的自我检查和执行。两者可以同时启用。Dynamic Workflow当任务规模足够大时比如将整个项目从一种语言迁移到另一种语言需要同时协调几十甚至上百个并行工作单元逐轮的工具调用就不够用了。传统的做法是把流程写进 Skill 文件用自然语言告诉模型先做 A再做 B如果 C 就做 D。这在简单场景下能用但在复杂流程中会系统性失效上下文压缩可能吞掉步骤、模型可能跳过某些环节、分支和重试逻辑靠模型判断而非代码保证、同一流程两次执行路径不同。问题的本质在于编排逻辑以自然语言存在而自然语言是模糊的、可遗忘的、不可验证的。Dynamic Workflow 把编排逻辑变成了代码。主 Agent 会生成一段 JavaScript 脚本在隔离沙箱中确定性执行。脚本通过agent()派出 Sub-agent通过parallel()和pipeline()控制并发。MiMo Code 的实现兼容了 Anthropic Dynamic Workflow 的核心语义在此基础上做了几项扩展。workflow()允许脚本调用其他脚本使编排逻辑可以复用和组合每个agent()调用的结果同步落盘进程中断后可从日志恢复而非从头重跑沙箱内可直接读写文件。换个角度来看Skill 是用自然语言写的 SOPWorkflow 是用代码写的 SOP。05、让上下文无限延伸把会话想象成一串从左到右排开的对话轮次。窗口是有上限的轮次在不断累积窗口最终会被填满。如果不干预的话会话到达上限时要么结束要么悄悄退化。MiMo Code 的做法是在窗口到达上限之前的几个固定位置介入这些位置被称为 checkpoint。每个 checkpoint 处派出一个独立的 writer Sub-agent读取所有对话将结构化状态写入磁盘。主 Agent 继续工作writer 并发执行互不干扰。当窗口接近上限的时候执行一次 rebuild切断当前窗口开启新窗口用已持久化的文件作为种子重建上下文。主 Agent 在新窗口中醒来后可以继续工作。一段被 checkpoint 打过点、最终以 rebuild 收尾的对话轮次序列就是一个 cycle。Cycle 没有数量上限每一个 cycle 受限于物理窗口大小但逻辑会话是 cycle 的链而那条链没有最大长度。四层记忆Writer 不只写一个文件它维护一个分层的记忆体系每一层有不同的生命周期。Session 记忆checkpoint.md只在当前逻辑会话内存活记录这次会话的完整工作状态Project 记忆MEMORY.md项目级持久知识库保存架构决定、用户规则、反复验证过的技术事实。Global 记忆用户级偏好跨项目生效History每个会话的完整 SQLite 轨迹每条消息、每次工具调用原文存储不做索引。当结构化记忆中找不到某个细节时Agent 通过 history 工具回溯到原始记录主 Agent 可以随时往里追加零散发现writer 在每次 checkpoint 时读取它、将内容路由到对应的结构化字段然后清空。相当于给主 Agent 一个便签本主 Agent 不需要操心信息该放在哪个结构化字段里只管随手记下来交给 writer 去分拣。ending这里必须夸一下 OpenCode。MiMoCode 正是基于 OpenCode 构建的保留了几乎全部核心能力多 Provider、TUI、LSP、MCP、插件。并在此基础上构建了持久化记忆、智能上下文管理、子智能体编排、目标驱动的自主循环、Compose 工作流以及通过 dream/distill 实现的自我进化。这或许就是开源的意义站在巨人的肩膀上做出更有价值的东西来。我们下期见。nding这里必须夸一下 OpenCode。MiMoCode 正是基于 OpenCode 构建的保留了几乎全部核心能力多 Provider、TUI、LSP、MCP、插件。并在此基础上构建了持久化记忆、智能上下文管理、子智能体编排、目标驱动的自主循环、Compose 工作流以及通过 dream/distill 实现的自我进化。[外链图片转存中…(img-UfCDsePn-1781344524364)]这或许就是开源的意义站在巨人的肩膀上做出更有价值的东西来。我们下期见。