Uber 用 AutoClean 清理 1.6 万个过期 Flag 和百万行代码的 Agent 工程实践
Uber Engineering 团队用 AutoClean 系统自动清理已全量上线的过期 feature flag,累计清理 1.6 万多个 flag、超过 100 万行代码。系统分三阶段:Agent 通过 MCP 调用确定性引擎 PolyglotPiranha 做条件化简改写,以 monorepo 全量 CI 为准并收窄修复器权限,最后交给由多个专门审查 Agent 并行检查的 CodeCourt 验证层。团队把约束从执行循环剥离到验收端,因为长任务 Agent 指令一多就容易遗漏约束、只追求 CI 通过。
行代码。核心思路是:确定性的事交给工具,需要判断的事交给 Agent,正确性交给 CI 加多层验证,最后的业务决策留给人。 https://t.co/uuk2oX8b8U 面对的问题:删代码比写代码难 Flag 全量上线后,残留的条件分支、参数、配置和测试就成了技术债。它不仅拖累工程师,也让 AI Agent 读更多死代码,会话更长、成本更高。清理看起来是"搜索加删除",其实是一条传播链:把 flag 内联成 true 只是第一步,接下来要判断函数参数能不能删(要查所有调用方)、旧分支是否已经不可达、配置字段还有没有别处依赖、测试该删还是该改写。Uber 团队的判断是:静态工具擅长确定性改写,AI 的价值在这些传播决策上。 三阶段架构 1. 改写:Agent 有文件搜索和编辑能力,布尔代数和条件化简则通过 MCP 调用 Uber 自己的确定性引擎 PolyglotPiranha 来做,因为条件化简一旦出错就会悄悄改变线上走哪个分支。Agent 循环执行,直到没有可清理的为止。 2. 修 CI:以 monorepo 的全量 CI 为准,而不是只看本地测试。失败先交给便宜的确定性修复器(未
匹配字段正文