万档代码转换:在机械式代码迁移中运行智能体集群
每一个框架迁移的模式都大同小异。你编写一个 codemod,在代码库中运行它,它能干净利落地转换 80% 的文件 —— 也就是那些符合 codemod 作者预期的模式的文件。然后你会遇到长尾问题:某些测试文件中有人对渲染器进行了猴子补丁(monkey-patched),某些组件触及了框架内部机制,或者某个模块是 2017 年由一位早已离职的工程师编写的,使用的是没人再采用的惯用法。Codemod 可以正常解析这些文件,只是没有适用的规则。因此,最后 20% 的迁移工作消耗了 80% 的日程,只能由那些宁愿做任何其他事情也不愿干这活的工程师们手工逐个文件完成。
编程 Agent 颠覆了这种经济效益。难倒确定性 AST 转换的手写怪癖,恰恰是模型擅长处理的 —— 它阅读文件,理解意图,并像人类一样重写代码,而不需要为每种变体制定明确的规则。Airbnb 在大规模实践中证明了这一点:在短短六周内,将近 3,500 个 Enzyme 测试文件迁移到了 React Testing Library,而最初估计的人工工作量是 1.5 年。但头条新闻中被忽略的一点是:难点并不在于提示词(prompting)。一旦你让 Agent 集群处理一万个文件,工程问题就不再是 AI 问题,而变成了批处理操作问题 —— 分片、验证、隔离和合并策略。正确的心理模型是一个 Mapper 具有随机性的 MapReduce 作业。
