外部行业实践 ·
DoorDash落地多Agent大模型系统实现过期Feature Flag自动清理,降低研发运维成本
DoorDash为解决代码库中过期功能开关(Feature Flag)人工清理效率低、传统规则工具无法适配自研代码架构的问题,基于谷歌Agent开发套件搭建了分阶段运行的多Agent大语言模型清理系统,整合数据查询、人工审核、隔离执行、多环节校验等流程,可自动定位开关引用、修改相关代码并生成可提交的合并请求,测试验证显示该系统清理效率大幅优于人工,代码修改准确率高,未出现质量问题。
仅供行业学习与场景参考,不代表优秘交付、客户关系或效果承诺。
面临的问题
首先,企业Feature Flag存量大、新增速度快,当前已积累上千个待清理的过期开关,若长期未处理会持续推高代码维护成本,也容易在后续迭代中引发逻辑冲突等问题。其次,企业采用依赖注入式Wrapper的代码架构,单个开关的定义、调用和关联业务逻辑分散在多个文件内,哪怕是最简单的布尔型开关清理,也需要修改数个到数十个文件,还包含相关测试用例文件,人工清理单个开关平均要花费1到2小时,整体效率极低。另外,现有基于规则的开源清理工具仅能通过匹配语法结构识别关联代码,无法理解开关和业务逻辑之间的语义关联,完全不适配企业的依赖注入架构,无法落地使用。
AI 落地做法
DoorDash基于谷歌的Agent Development Kit搭建了由大语言模型驱动的多Agent过期Feature Flag全流程自动清理系统,整个流程分为信息采集审核、代码修改校验两个核心阶段,依托大语言模型的语义理解能力解决了传统工具无法识别语义关联的痛点,完美适配自身依赖注入的代码架构。系统还设置了人工审核节点、隔离运行环境以及多维度自动化校验机制,在大幅提升清理效率的同时,充分保障代码修改的准确性,避免出现代码质量问题。
实施路径
- 明确过期Feature Flag判定标准:连续90天无修改记录、仍被代码引用、未进入归档或退役状态、且未被标注为无需清理的开关,判定为过期,系统每日自动扫描识别符合条件的过期开关并生成对应Jira工单
- 基于谷歌Agent Development Kit构建双阶段多Agent处理流程,分别采用Claude Sonnet和Claude Opus两款大模型为不同阶段的Agent提供能力支撑
- 第一阶段处理流程中,搭载Claude Sonnet模型的编排类Agent首先拉取Jira内的过期开关工单,检索关联的代码仓库,再通过Model Context Protocol调用实验平台接口获取开关的发布比例、目标值等元数据,生成分析报告提交给工程师审核,待工程师确认目标值后再启动后续代码修改流程
- 第二阶段由搭载Claude Opus模型的清理类Agent执行操作,所有Agent均在相互隔离的Git Worktree环境中运行,单个代码仓库最多同时运行4个Agent,每个Agent设置1小时的运行超时时间,Gradle采用禁用Daemon的模式运行避免不同Worktree之间出现状态共享问题
- 清理Agent会全量定位目标开关的所有引用位置,敲定清理策略后修改对应源代码和测试文件,依次执行代码构建、用例测试、JaCoCo补丁覆盖率检查、Detekt静态分析多轮校验,所有校验全部通过后才会正式生成Pull Request
来源:InfoQ 中文(本站改写摘要,成效数据均取自原文)
项目背景
DoorDash的实验平台跨数百个代码仓管理数万个Feature Flag,伴随业务迭代每月新增上千个开关,长期运营下积累了大量已失效但未清理的过期开关,不仅拉高代码冗余度,也提升了后续业务迭代的潜在风险。传统人工清理耗时久、人力成本高,而市面上开源的基于语法规则的清理工具无法适配企业自身的依赖注入代码架构,只能识别语法层面关联无法匹配语义关联,无法满足实际清理需求,企业因此需要探索更适配自身场景的智能化清理方案。 本案例依据「InfoQ 中文」公开发布的信息整理,原文:https://www.infoq.cn/article/gk4rWsQg09PWTFTZlJE3?utm_source=rss&utm_medium=article
业务问题
首先,企业Feature Flag存量大、新增速度快,当前已积累上千个待清理的过期开关,若长期未处理会持续推高代码维护成本,也容易在后续迭代中引发逻辑冲突等问题。其次,企业采用依赖注入式Wrapper的代码架构,单个开关的定义、调用和关联业务逻辑分散在多个文件内,哪怕是最简单的布尔型开关清理,也需要修改数个到数十个文件,还包含相关测试用例文件,人工清理单个开关平均要花费1到2小时,整体效率极低。另外,现有基于规则的开源清理工具仅能通过匹配语法结构识别关联代码,无法理解开关和业务逻辑之间的语义关联,完全不适配企业的依赖注入架构,无法落地使用。
实践方案
DoorDash基于谷歌的Agent Development Kit搭建了由大语言模型驱动的多Agent过期Feature Flag全流程自动清理系统,整个流程分为信息采集审核、代码修改校验两个核心阶段,依托大语言模型的语义理解能力解决了传统工具无法识别语义关联的痛点,完美适配自身依赖注入的代码架构。系统还设置了人工审核节点、隔离运行环境以及多维度自动化校验机制,在大幅提升清理效率的同时,充分保障代码修改的准确性,避免出现代码质量问题。
原始来源:https://www.infoq.cn/article/gk4rWsQg09PWTFTZlJE3?utm_source=rss&utm_medium=article