背景
2026 年初,一家欧洲中型投资银行决定让 OpenAI Codex 和 Cognition{.smallcaps} Devin 处理其运行 30 年的 COBOL/C++ /清算系统。技术负责人认为,AI 已经可以通过 MCP 协议接管复杂工作流,清理冗余代码应该是“体力活”。
AI 清理的过程
- 扫描与删减:Devin 用三天时间扫描代码库,标记出重复逻辑、过时变量和冗长分支。随后 Codex 把 50 行嵌套
if‑else改写为 5 行函数调用。 - 隐藏的业务规则:金融系统中很多看似冗余的判断实际上是 90 年代特定结算规则或极端边界条件的兼容实现。例如,一段位运算被 AI 误判为“过时优化”,删除后跨时区大额交易出现 0.0001% 的精度截断。
事故后果
- 财务缺口:单笔误差难以察觉,但日交易量上千万笔,累计缺口快速达到 数百万欧元。
- 安全漏洞:删除校验逻辑后出现两个缓冲区溢出风险。
- 恢复成本:监控报警后,团队紧急调动 5 位架构师、10 位核心开发,花费 约 120 人工时 完成回滚、补丁和审计。
经验教训
- AI 能删,不能懂:Codex、Devin 基于大规模开源数据的模式匹配,擅长生成“好看”代码,却不具备对业务历史的理解。技术债往往是“防御性代码”,不是“代码异味”。
- 半自动审计是必须:
- 先写回归测试:覆盖率 95% 以上,任何测试失败即回滚。
- 业务约束标注:把关键业务规则(如历年税法、交易协议)转化为机器可识别的约束,禁止 AI 随意删除。
- 小步拆解:把大规模改动拆成几百个 100 行左右的 PR,逐个人工 Code Review。
- 合规风险:欧盟 AI 法案对高风险领域的算法透明度有明确要求,核心结算逻辑若无法解释,可能触及法律红线。
结语
AI 可以帮助开发者摆脱重复的语法劳动,但在处理深度嵌入业务历史的技术债时,仍需人工把关。面对金融等高风险系统,快速删代码的冲动必须被审慎的审计流程所制衡。