百度网盘以Skills和多Agent控制存量代码迁移
概述
项目要把网盘主端积累的大量存量代码迁移到 KMP 以实现多端复用,一个页面的迁移涉及 UI 层、布局文件、业务逻辑与资源文件且依赖关系错综复杂。团队最早直接让 AI 协助迁移,发现三类规律性问题:同一类操作在不同对话结果不一致(AI 每次重新理解任务、上下文一变输出就漂移)。任务越复杂后期幻觉越多(迁移一个页面要加载几十个文件,后期早期细节被压缩,开始生成不存在的方法)。 并行处理没有机制支撑(UI、布局、业务逻辑本可同时处理但只有一个对话窗口)。对应落地三层结构:Skill 执行层把一类任务的执行方式写成可复用的无状态规范文件,其中最有效的约束是 Checklist(逐项打勾,遗漏率明显下降),并把核心规则放主文件、边界与细节放 references 目录避免注意力稀释。 在代码提取上把原本合一的步骤拆成 extractor(以调用语句为入口扫描依赖生成初始提取包)、validator(独立校验、关注还缺什么)、fixer(只处理 validator 指出的缺口)三个独立 Skill,避免 AI 自己审查自己,该结构在转化阶段沿用为 converter/validator/fixer。 SubAgent 调度层把转化阶段的按模块生成→资源转化→业务代码迁移→UI 转化拆成多个上下文完全隔离的步骤,通过 Agent-Memory 传递后续步骤真正需要消费的提炼信息(如资源 ID 映射表、模块结构配置、已确认的接口契约)而非对话记录备份,解决资源 ID 映射对不上等幻觉。Agent Team 协作层在提取阶段把 UI 组件、布局文件、业务逻辑、资源文件四路并行交给四个 Teammate,各自只盯一类文件,跨类型依赖(UI 发现动态创建 Dialog 需补布局、业务逻辑引用某字符串资源需补资源)通过 Mailbox 消息通道实时协调而不需重启一轮。 实际效果:相比串行,总耗时接近四类任务里最慢的那条路径而不是四段累加。作者指出并行带来的专注度提升使提取质量改善比速度收益更明显。