← 重要论文

论文解读 · 2026年10月26日

用多智能体 LLM 系统自动化大规模 Feature Flag 清理:DoorDash 的工业应用案例

Automating Feature Flag Cleanup at Scale with Multi-Agent LLM Systems: An Industrial Experience at DoorDash

智能体 中级 cs.SE

通过 Orchestrator 智能体和并行移除智能体自动清理过时的 Feature Flag,在 50 个中的 45 个(90%)上生成了工程师批准的 PR,每个平均耗费 4.79 美元、13.8 分钟。

问题

Feature Flag 用于功能的渐进式发布或实验,但发布完成后会变成技术债,还存在休眠代码被重新启用的风险。DoorDash 在 623 个代码仓库中有超过 5.6 万个 Flag(内部称为 DV),截至 2026 年 5 月有 1,659 个处于过时状态。手动清理每个需要 1~2 小时(内部估计)。Piranha 等基于 AST 的规则工具由于依赖注入包装器模式、非布尔型 Flag 以及跨多个文件的修改,无法应用于这一环境。

方法

这是用 Google ADK 构建的两阶段多智能体系统。在第一阶段,基于 Claude Sonnet 4.6 的 Orchestrator 读取 Jira 工单,通过 MCP 从实验平台查询实际生产环境的发布状态(发布比例、最终值),查找代码引用并生成清理报告。工程师确认目标值后,在第二阶段,基于 Claude Opus 4.6 的移除智能体为每个 Flag 在隔离的 git worktree 中并行工作(每个仓库最多 4 个)。移除智能体依次完成常量、包装器和调用处的删除,条件语句简化,测试修改,构建与测试通过,补丁覆盖率达到 95% 以上以及 Detekt lint 检查,然后创建 PR。每个智能体还设有 1 小时超时。

结果

局限

仅在一家公司的 Kotlin 代码仓库、特定 DV 访问模式(依赖注入包装器)上评估了 50 个案例。每个 Flag 只运行一次,未能考察 LLM 非确定性的影响。复杂度分类由作者事后确定,手动清理 1~2 小时是内部估计而非实测。开发者反馈是非正式收集的。没有在同一数据上与 Piranha 等基线进行直接对比的实验。推广到其他语言或 Flag 框架需要进一步验证。

意义

这是将编码智能体投入实际生产代码库中重复性清理工作的案例,以数字公开了成功率、成本、时间和失败原因。作者提出了实践中的前提条件:查询实际发布状态的数据源、用于并行工作的 worktree 隔离,以及创建 PR 之前的确定性验证关卡。对考虑类似自动化的团队具有直接参考价值。

关键术语

Feature Flag
一种无需重新部署代码、通过运行时配置开启或关闭功能的机制。用于渐进式发布、A/B 测试和紧急关停。
MCP(Model Context Protocol)
让 LLM 智能体以标准方式调用外部工具和数据源的协议。在该系统中用于查询实验平台的实际发布状态。
git worktree
允许在一个仓库中同时使用多个工作目录的 git 功能。用于隔离并行智能体,防止它们互相覆盖文件。
补丁覆盖率(Patch Coverage)
本次变更所修改的代码行中被测试执行的比例。该系统将 95% 以上作为创建 PR 的条件。

原文

作者: Atharv Chandratre, Jai Datar · 发布 2026-10-22 · 许可 arXiv 비독점 배포 라이선스 · 基于全文分析

本解读是 AI 阅读论文后撰写的摘要,请以论文原文为准。