升级复杂功能时,最令人头疼的问题是“改动一处就导致整个系统崩溃”。MiMo Code 提供了一种与众不同的解决思路:它不急于一次性编写全新代码,而是将升级拆解为分析、验证、替换、回归等一整套工程步骤,让多个智能体像流水线工人一样各司其职、协同推进。这不再是零散的修补,而是一条可调度、可中断、可回溯的完整作业线。

首先要明确:平滑升级本质上是一个跨阶段、多角色的任务,仅靠单个智能体单打独斗几乎必然失败。因此,MiMo Code 的 Compose 模式(按 Tab 键切换)成为默认的起始方案。该模式会自动启动规划层,把“升级某个模块”拆分为设计、实施、验证三类子任务,而不是直接进入编码阶段。举例来说,当你输入需求时,须将约束条件描述清楚——比如“升级 user-service 的 JWT 验证逻辑,兼容旧 token 格式,同时保证在线会话不中断”。在 Compose 模式下,MiMo Code 会先生成 L2 设计规格,确认兼容策略、边界接口以及降级开关的放置位置。只有设计被冻结(通过 spec-manager spec freeze 命令)后,才会派发子智能体进入 Build 模式执行。这一步骤可以有效避免“边写边改、改到中途发现方向错误”的尴尬局面。
拆解子智能体职责:避免冲突,保障原子性
升级过程中最容易出现问题的场景是“改了一半被迫停止”或“多人同时修改同一文件”。MiMo Code 的子智能体编排机制天然能够规避这类风险——前提是你将分工明确。几个关键角色的职责划分非常清晰:
- Explore Agent:并行扫描旧的验证逻辑、token 解析路径以及下游调用方列表,5 秒内输出影响范围报告。相当于先摸清全部底牌。
- Diff Agent:对比新旧实现之间的差异,标注需要保留的字段解析逻辑、需要废弃的签名算法以及需要新增的刷新逻辑。变更内容一目了然。
- Patch Agent:仅修改
auth/handler.go和auth/jwt.go,绝不触碰 config 或 middleware 层。操作范围被严格锁定。 - Test Agent:自动生成三组测试用例——旧 token 有效、新 token 有效、混合 token 场景,并运行本地集成测试。率先完成自我验证。
这些子智能体共享同一份项目上下文快照,但各自操作相互隔离、互不干扰。任何一个失败都可以单独重试,不会影响其他流程。这种“原子化分工”的设计思路,让整个升级过程变得高度可控。
用持久记忆锚定升级状态
一次升级可能跨越数小时甚至数天——期间你可能需要开会、吃午饭,或处理紧急 Bug。MiMo Code 的 SQLite FTS5 持久记忆系统会自动记录每个子智能体的输入、输出、执行时间戳以及文件变更哈希。这意味着:当你中断后再返回时,它能精准识别“测试已通过但尚未合并到 Git”的中间状态。再次执行 /upgrade user-service 时,不会重复扫描,而是从上次的断点继续推进。此外,系统每 7 天会自动触发 /dream 命令,合并历史升级片段、压缩冗余状态,使后续升级越来越轻量化。
验证闭环:不止跑通,还要证明没有退化
平滑升级的核心指标只有两个:线上行为保持不变 + 新功能可用。MiMo Code 内置的验证链路支持两类证据的沉淀。第一类是自动化证据:Test Agent 输出的覆盖率报告、HTTP 状态码分布图、token 过期时间对比表,全部存入 spec-manager 的 L3Impl 记录中。第二类是人工锚点:你可以插入 !verify manual 指令,暂停流程,等待你在 staging 环境手动验证登录流程后,再输入 !continue 继续推进。最终交付的成果不是 patch 文件,而是一份完整的 Markdown 规格文档——包含设计决策、变更清单、测试证据以及回滚步骤,并自动提交到 /specs/upgrade-user-service-20260625.md。这才是能够用于复盘、可追溯的升级凭证。
