跳转到正文
返回快讯

快讯

Uber 的 AutoClean 如何用 AI 清理旧代码

图解

共 6 张

  1. 封面:Uber用AI清理死代码,显示AutoClean累计100万多行及1.6万多个开关,原卡日期标签为2026年10月21日
    01 06
  2. 功能上线后开关却留了下来:逐步放量与实验结束后,残留分支、参数和测试会形成技术债
    02 06
  3. 清理不只是搜索删除,可能涉及几十个文件,需要核对调用方、配置字段及测试应该删除还是改写
    03 06
  4. 三步流程:AI与PolyglotPiranha改写、限定范围修复自动检查失败、静态检查和多个AI审查后交工程师
    04 06
  5. CodeCourt的四项示例检查:只删或简化、行为不变、只处理目标开关、不留下推理注释;任何一项失败即放弃修改
    05 06
  6. 点评:确定步骤交给工具、需要判断的交给AI,最终由人决定;数字为Uber自述的过去几年累计结果
    06 06

Uber 在日期标注为 2026 年 10 月 20 日的工程博客中介绍了 AutoClean。官方称,该系统在过去几年累计清理了超过 1.6 万个过期功能开关和超过 100 万行代码。这是整个系统的多年累计自述,不能理解为一次 AI 任务的成果,也未单独披露当前 AI 流程贡献的数量。Uber 官方博文

功能开关用于逐步开放新功能、做实验或快速回退;功能稳定上线后,旧分支、参数和测试可能继续留在代码里。AutoClean 结合 AI 对调用关系的判断与 PolyglotPiranha 的规则化改写,再通过自动构建和测试(CI)检查修改。官方流程说明

CI 通过后还要做静态检查和 CodeCourt 审查。博客列举了四项要求:只删除或简化、保持程序行为、只处理目标开关、不留下 AI 推理注释;由不同审查 Agent 分别检查,全部通过才交工程师作最终决定。检查通过不能被理解为绝无错误的保证。官方验证说明

图中使用 10 月 21 日的日期标签;本文以官方页面标注的 10 月 20 日为报告日期,具体发布时刻未核实。

点评

确定的步骤交给工具,需要判断的交给 AI,删不删仍由人拍板。代码越写越快,清理旧代码同样需要持续的工程流程。

参考资料