最近把 Aima Service 重构了一遍。花了一周多,过程里冒出不少想法,记一下。
急诊室
Aima Service 不是那种天天打开的工具。更像是设备的急诊室,平时想不起它,出了问题才来。
这就导致一个很别扭的局面:成功的时候用户没感觉。问题解决了,"嗯,还行",走了。因为没经历过痛苦嘛,自然不觉得解决了多大的事。
反倒是失败的时候有意思。
失败分几种。智能体认真干了但搞不定,告诉你任务失败,这算一种。声称搞定了你一试发现没有,假成功,这也算一种。但最要命的是通道本身坏了。崩溃、卡死、跑着跑着断了。
前面两种还好。就像去急诊,医生看了半天没治好,你换一家就是了。最后那种不行。你打了 120,车来了,到了急诊室门口发现关门了。或者进了门,挂号系统崩了,医生看了一半人不见了,有人出来跟你说"不好意思,今天打烊了"。
这个才是真的让人崩溃。
装修没用,医生得在
想明白这件事,优先级就清楚了。
急诊室,装修再豪华没用,沙发再舒服没用。就看两样:门开不开,医生能不能看病。
之前的版本功能上够用,但稳定性不行。跑任务经常 bug 一堆,动不动崩溃,各种莫名其妙的卡死。急诊室的门开着,医生不在。
所以做了一次彻底重构。不加新功能,就是把地基重打。
两个模型轮着上
重构用了 Claude Code 和 Codex 两个模型,轮流做。
先把文档体系设计好,让两个模型各自读一遍文档和代码,列出要做的事。然后 Claude Code 先跑一轮重构,做完交给 Codex 再来一轮。来回交替。
为什么不只用一个?试过,容易跑偏。Claude Code 架构感强,能看到结构层面的问题,但有时候太保守。Codex 推进速度快,更敢动手,还会回头扫一些细节,但偶尔太粗放。只让一个做,缺陷会被放大。交替着来反而节奏最好,一个发现的问题另一个经常能补上。
后来查了一下,NeurIPS 2025 有一篇 "Lessons Learned",专门分析不同 LLM 怎么互相补位,结论是大概 3 个 agent 效果最好,再多就递减了。跟实际感受对得上。
每轮让模型自己拉 agent team 并行跑,一个任务三四个小时很正常。反正异步的,人该干嘛干嘛,偶尔看一眼提几个问题就行。
CI/CD 吃掉的时间比想象中多
功能重构大概一周就七七八八了。真正耗时间的是后面。
代码改了一大片,上线之前靠什么兜底?自动化测试、构建检查、集成验证,一个都跑不掉。流水线跑一次几十分钟过去了,有问题改完再跑,又几十分钟。后面反反复复调测试用例、优化流水线,光测试代码就写了好几万行。
大家聊 AI 写代码,关注的都是"多快"。但真要上生产,CI/CD 和测试占掉的工程量可能超过一半。这部分 AI 也能做,但轮次多、调试多,急不来。
130 万行
重构完生成了一份报告,看了一下数字。
功能上没加新东西,看起来平平无奇。但架构从之前"跑个任务 bug 一堆"的状态变成了能扛 10 万级用户的设计,模块拆分干净了很多,分布式 worker、海外联邦都做进去了。
代码量让我有点意外:抛开文档约 130 万行,加上文档 170 万行。八九天,一个非专业的人,两个 AI 模型。
然后我想起来一件事。
护城河干了
前几年有个说法挺流行的:代码量就是软件公司的壁垒。几百万行代码堆在那里,别人想抄也抄不了。
我记得以前读过相关的东西,当时觉得有道理。思科 IOS XE 有 1.9 亿行代码,3000 多人在维护,每年出 700 多个新功能。SAP 的 ABAP 代码超过 2.5 亿行,能看懂的人越来越少。这些公司确实是靠"这坨东西太复杂了,没人能替代"撑着的。
不过仔细想想,代码量从来不是壁垒的全部。思科的护城河是 1.9 亿行代码加上生态系统和切换成本,还有品牌。SAP 的壁垒不是 ABAP 难写,是 42.5 万客户里只有 5% 在七年内迁到了 S/4HANA。Lidl 试过,烧了 5 亿欧元放弃了。Revlon 亏了 6400 万美元销售额。复杂度制造的锁定效应,比代码本身顽固得多。
但现在有意思了。今年初 Marek Kowalkiewicz 写过一篇 "Drying the Moat",里面提到 Anthropic 演示 AI 能读懂和现代化 COBOL 系统之后,IBM 一天市值蒸发了 400 亿美元。代码复杂度制造的其实是一种"理解不对称":你看不懂我的代码,所以你离不开我。AI 把这层不对称给抹掉了。
回头看我自己这次:八九天,一个人带两个模型交替跑,130 万行代码的系统已经在线上跑着了。有分布式架构,有 CI/CD 流水线。
130 万行当然不等于思科那 1.9 亿行,差两个数量级。生态和客户锁定也不是代码能替代的。但"代码复杂度"这条腿,已经在被抽掉了。剩下几条腿能撑多久,不好说。
想到就做
回头看整个过程,有几点感受。
AI 做产品级的软件,能做。这次出来的东西已经在线上跑了,有用户在用,不是 demo。难的地方在 CI/CD 和测试,这些费时间,但 AI 也能做,就是得多跑几轮。
重构这件事也没那么可怕了。以前接手一坨屎山代码,光搞清楚它在干嘛就得好几周。现在模型读进去几分钟就能画出架构图来。一周从屎山到新架构,技术债清得比人工还干净。
最大的变化可能是心态上的。以前重构是个大决策,要算投多少人、花多长时间、风险大不大。现在觉得代码库撑不住了就重来一个。有新技术出来也一样,直接用新的重新构建。代码这个东西,越来越像耗材了。
当然代码还是产品的骨架,这个没变。但生产骨架的成本,跟以前已经不在一个量级。
