研发提效案例:代码评审 Agent + 测试 Agent + 发布 Agent 的协作流程

张开发
2026/4/19 21:25:17 15 分钟阅读

分享文章

研发提效案例:代码评审 Agent + 测试 Agent + 发布 Agent 的协作流程
研发提效案例代码评审 Agent 测试 Agent 发布 Agent 的协作流程摘要/引言开门见山假设你现在是一家中型互联网 SaaS 公司的技术负责人周一上午刚开完业务会新功能「一键生成财务季度报表分析PDF」的交付Deadline被业务方从下周五提前到了本周四而你的前端开发组昨晚刚提交了30个Pull Request后端组加了15个微服务的代码变更测试用例库只有100条老功能冒烟用例200条新功能探索性需求还躺在需求池里没人拆解更糟的是负责代码评审的资深架构师张工今天上午请假陪孩子去小升初摇号负责全链路回归测试的QA团队组长李姐在赶上周上线遗留的Bug复盘报告。这时候你会不会想要是有个7*24小时待命、不会情绪化、不会请假、又能精准完成评审、测试、发布的「技术铁三角」就好了其实你想的这个「技术铁三角」已经不是科幻小说里的情节了——它就是由代码评审Agent、测试Agent、发布Agent组成的智能研发交付流水线协作系统。我在2023年下半年主导的一个电商工具SaaS项目里就是靠这套系统把原本平均12天的「需求提出→正式上线」全链路交付周期压缩到了平均2.8天代码缺陷率从上线前的每千行代码8.5个降到了1.2个资深开发人员的手动评审时间减少了92%QA团队的探索性测试以外的自动化相关工作时间减少了87%。问题陈述这套系统的背后是现在很多研发团队面临的四个核心痛点研发交付链路碎片化当前主流的CI/CD工具链比如GitLab CI/CD、Jenkins、SonarQube、Jira、Zephyr Scale虽然能覆盖「提交代码→静态扫描→单元测试→集成测试→打包→部署」的部分环节但工具之间是孤立的没有统一的决策和协作逻辑——比如SonarQube扫描出的「代码重复率过高」的警告会不会触发额外的单元测试补充单元测试覆盖度95%但都是覆盖公共工具类的情况下发布Agent会不会自动拒绝部署这些问题都需要人工介入判断严重拖慢了交付速度。专业人力投入不均衡资深架构师的时间被大量低价值的「命名不规范」「缺少注释」「空指针风险静态扫描能覆盖80%的」评审占用真正需要投入的「架构设计合理性」「性能瓶颈预判」「安全风险漏洞静态扫描覆盖不到的业务逻辑层面的」的评审时间不足30%QA团队的时间被大量重复的「UI自动化用例录制」「API自动化用例编写」「测试报告整理」「Bug关联到需求和PR」工作占用真正能发现隐藏问题的「探索性测试」「边界条件测试」「性能压力测试优化」的时间不足20%。决策延迟与主观偏差代码评审要等资深开发人员有空发布要等QA团队确认「全链路回归测试通过」「没有阻塞性Bug」这些等待时间往往占全链路交付周期的40%以上而且不同的资深开发人员对代码的评审标准不一样不同的QA团队成员对「阻塞性Bug」的定义不一样主观偏差会导致同样质量的代码有的很快上线有的被打回修改好几次。应急响应能力不足如果线上出现了一个阻塞性Bug需要快速修复并上线往往要走「紧急提交流程审批→资深架构师紧急评审可能还要临时调人→QA团队紧急全链路冒烟测试→打包→灰度部署→全量部署→线上监控→流程收尾」的流程最快也要2-4小时而如果由智能Agent协作系统处理最快可以压缩到15-30分钟。核心价值本文将通过我主导的**「优仓通」电商库存管理SaaS工具的提效项目**为你详细讲解如何定义和训练代码评审Agent、测试Agent、发布Agent让它们分别具备「静态动态业务逻辑架构设计」的四级代码评审能力、「需求拆解→自动化用例生成→用例执行→Bug自动关联→测试报告自动生成」的全流程测试能力、「前置质量门禁→自动决策发布策略→灰度部署→线上监控→自动回滚」的全流程发布能力如何设计这三个Agent之间的协作流程和交互协议让它们像一个真正的「技术铁三角」一样协同工作——比如代码评审Agent发现了架构设计上的潜在性能瓶颈会自动触发测试Agent生成对应的性能压力测试用例并提前执行测试Agent发现了阻塞性Bug会自动触发发布Agent拒绝当前PR的部署同时触发代码评审Agent重新评审修复后的代码如何将这套系统接入现有的CI/CD工具链不需要推翻现有工具链只需要做一些简单的接口开发和配置就能使用这套系统在优仓通项目中的实际应用效果包括交付周期、代码缺陷率、人力成本的具体数据这套系统的最佳实践和注意事项包括如何避免Agent的误判、如何平衡自动化和人工的关系、如何训练Agent的业务理解能力智能研发交付流水线协作系统的行业发展历史和未来趋势。文章概述本文的结构如下核心概念与问题背景先介绍什么是代码评审Agent、测试Agent、发布Agent什么是智能研发交付流水线协作系统然后梳理优仓通项目在引入这套系统之前的具体问题核心问题解决思路与系统架构设计先讲我们解决优仓通项目问题的核心思路然后详细介绍系统的整体架构、每个Agent的内部架构、三个Agent之间的交互协议核心概念的详细拆解与对比分析分别详细拆解代码评审Agent、测试Agent、发布Agent的概念结构、核心要素组成、数学模型、算法流程图然后用markdown表格对比这三个Agent的核心属性维度用mermaid架构图和交互关系图展示它们之间的ER实体关系和交互关系优仓通项目的环境安装与系统核心实现先讲优仓通项目的现有技术栈和需要安装的新工具/模型然后详细介绍每个Agent的核心实现源代码Python以及三个Agent之间的协作接口设计优仓通项目的实际场景应用与效果分析分别详细讲解这套系统在「常规功能开发上线」「紧急Bug修复上线」「新微服务上线」这三个典型场景中的应用流程然后用具体数据对比引入系统前后的效果最佳实践Tips与注意事项分享我们在优仓通项目中总结出来的10个最佳实践和5个注意事项行业发展历史与未来趋势用markdown表格梳理智能研发交付流水线协作系统的行业发展历史然后预测它的未来5年的发展趋势本章小结简要回顾本文的主要内容强调这套系统的核心价值提出一个开放性问题引发讨论邀请读者在评论区分享他们的想法或问题参考文献/延伸阅读提供相关的文章、书籍、文档、开源项目的链接作者简介简要介绍我自己以及我的专业背景。一、核心概念与问题背景1.1 核心概念1.1.1 什么是Agent在人工智能和软件工程领域Agent是指能够感知环境、自主做出决策、并采取行动来实现特定目标的软件或硬件实体。它具有以下四个核心特征自主性AutonomyAgent能够在没有人类或其他Agent直接干预的情况下自主地感知环境、做出决策、采取行动感知能力PerceptibilityAgent能够通过传感器在软件领域就是API调用、日志读取、事件监听等感知周围环境的变化行动能力ActuabilityAgent能够通过执行器在软件领域就是API调用、脚本执行、消息推送等对周围环境产生影响目标导向性Goal-OrientednessAgent的所有感知、决策、行动都是为了实现一个或多个特定的目标。根据Agent的智能程度和能力范围我们可以将Agent分为以下几类简单反射型AgentSimple Reflex Agent只根据当前的感知信息做出决策不考虑历史信息基于模型的反射型AgentModel-Based Reflex Agent会维护一个内部状态模型根据当前的感知信息和历史状态模型做出决策基于目标的AgentGoal-Based Agent除了内部状态模型之外还会维护一个目标集合根据当前的感知信息、历史状态模型和目标集合做出决策基于效用的AgentUtility-Based Agent除了目标集合之外还会维护一个效用函数用来评估不同行动方案的优劣选择效用最高的行动方案学习型AgentLearning Agent能够通过与环境的交互不断学习更新自己的内部状态模型、目标集合、效用函数从而提高自己的决策能力和行动能力。1.1.2 什么是代码评审Agent代码评审Agent是指专门用于代码评审的学习型基于效用的Agent。它的主要目标是在尽量不降低代码质量的前提下尽量减少资深开发人员的手动评审时间。它的主要功能包括感知GitLab/GitHub/Bitbucket等代码托管平台的PR提交、修改、评论、审批等事件对PR中的代码进行静态扫描命名规范、注释规范、代码重复率、空指针风险、死代码检测、安全风险漏洞OWASP Top 10静态层面的等、动态扫描通过单元测试、集成测试的结果评估代码的稳定性和可靠性、业务逻辑层面的评审通过学习项目的历史代码、历史需求文档、历史Bug报告评估代码是否符合业务需求、是否有隐藏的业务逻辑层面的缺陷、架构设计层面的评审通过学习项目的架构文档、历史架构变更记录评估代码是否符合项目的架构规范、是否有潜在的性能瓶颈、可扩展性问题、可维护性问题根据效用函数比如静态扫描警告的严重程度、动态扫描的通过率、业务逻辑层面评审的缺陷率、架构设计层面评审的问题严重程度、资深开发人员之前的评审历史等评估PR的质量给出「自动通过」「需要资深开发人员重点评审某些部分」「自动拒绝」的决策自动生成详细的代码评审报告包括发现的所有问题、问题的严重程度、问题的位置、问题的修复建议、需要资深开发人员重点评审的部分的具体原因自动将代码评审报告、决策结果、需要资深开发人员重点评审的部分推送到GitLab/GitHub/Bitbucket等代码托管平台的PR评论区同时推送到Jira等项目管理平台的对应需求或任务下如果PR被打回修改会自动重新评审修复后的代码如果资深开发人员对Agent的决策或修复建议有异议会自动学习资深开发人员的意见更新自己的内部状态模型、目标集合、效用函数。1.1.3 什么是测试Agent测试Agent是指专门用于软件测试的学习型基于效用的Agent。它的主要目标是在尽量提高测试覆盖度和缺陷发现率的前提下尽量减少QA团队的自动化相关工作时间。它的主要功能包括感知需求池比如Jira、Notion、Confluence等中的新需求、需求变更、Bug修复需求感知代码托管平台的PR提交、修改事件感知测试用例库比如Zephyr Scale、TestRail、TestLink等中的测试用例更新事件感知测试执行平台比如Selenium、Appium、Postman Newman、JMeter等中的测试执行结果事件对新需求、需求变更、Bug修复需求进行需求拆解将大的需求拆解成小的可测试的子需求、需求澄清如果需求描述不清楚会自动生成澄清问题列表推送给产品经理根据拆解后的子需求、项目的历史需求文档、历史测试用例库、历史Bug报告、PR中的代码变更自动生成UI自动化测试用例使用Selenium/Appium的Python/Java/JavaScript代码生成、**API自动化测试用例使用Postman Newman的集合文件生成或使用Requests/Pytest的Python代码生成、**单元测试用例使用JUnit/Pytest的Java/Python代码生成、**集成测试用例使用Testcontainers的Java/Python代码生成、**性能压力测试用例使用JMeter的JMX文件生成或使用Locust的Python代码生成、**边界条件测试用例、异常场景测试用例根据效用函数比如测试用例的覆盖度、缺陷发现率、执行时间、维护成本等选择合适的测试用例自动执行静态测试用例评审检查测试用例是否符合规范、是否覆盖了所有子需求、是否有冗余的测试用例、**单元测试、**集成测试、**API自动化测试、**UI自动化测试、性能压力测试自动分析测试执行结果识别出失败的测试用例自动生成Bug报告包括Bug的标题、描述、严重程度、优先级、复现步骤、预期结果、实际结果、截图/录屏、测试环境信息、代码变更信息、自动关联到对应的需求、PR、测试用例自动将测试执行报告、Bug报告推送到测试用例库、代码托管平台的PR评论区、Jira等项目管理平台的对应需求或任务下同时推送到Slack/钉钉/企业微信等即时通讯工具的对应群组或个人如果发现了阻塞性Bug会自动触发发布Agent拒绝当前PR的部署如果测试执行通过会自动触发发布Agent进入前置质量门禁检查阶段如果QA团队对自动生成的测试用例、自动生成的Bug报告、自动识别的Bug严重程度/优先级有异议会自动学习QA团队的意见更新自己的内部状态模型、目标集合、效用函数。1.1.4 什么是发布Agent发布Agent是指专门用于软件发布的学习型基于效用的Agent。它的主要目标是在尽量降低发布风险的前提下尽量缩短发布时间。它的主要功能包括感知代码托管平台的PR审批通过事件、测试Agent的测试执行通过事件、产品经理的发布确认事件、运维团队的资源准备事件根据效用函数比如PR中的代码变更的大小、代码变更的影响范围、历史发布的成功率、历史发布的回滚率、当前线上的负载情况、当前线上的监控数据、产品经理的发布优先级等评估发布风险自动选择合适的发布策略比如蓝绿部署、金丝雀发布灰度部署、滚动发布、A/B测试发布等执行前置质量门禁检查包括SonarQube的静态扫描质量门禁检查代码重复率、代码覆盖率、Bug数、漏洞数、代码异味数等、**测试Agent的测试执行质量门禁检查单元测试通过率、集成测试通过率、API自动化测试通过率、UI自动化测试通过率、性能压力测试通过率等、**安全扫描质量门禁检查比如OWASP ZAP的动态安全扫描质量门禁检查、Snyk的依赖安全扫描质量门禁检查、代码变更影响范围检查通过学习项目的历史代码、历史发布记录评估代码变更可能影响的功能模块、微服务、API接口自动执行发布流程包括代码合并到主分支、**触发CI/CD工具链的打包流程、**将打包好的镜像推送到镜像仓库比如Docker Hub、Harbor、阿里云镜像仓库等、**根据选择的发布策略执行部署流程比如蓝绿部署的切换、金丝雀发布的流量分配、滚动发布的分批部署、线上监控数据的实时采集和分析比如CPU使用率、内存使用率、磁盘使用率、网络带宽、API接口的响应时间、API接口的错误率、用户的访问量、用户的转化率等根据线上监控数据的分析结果自动判断发布是否成功如果发布成功会自动执行发布收尾工作比如更新版本号、更新发布日志、推送到即时通讯工具的对应群组或个人如果发布失败比如线上监控数据超过了预设的阈值、API接口的错误率超过了预设的阈值、用户的转化率下降了超过了预设的阈值会自动执行回滚流程比如蓝绿部署的回滚、金丝雀发布的流量全量切回老版本、滚动发布的回滚同时自动生成发布失败报告包括失败的原因、失败的时间、回滚的时间、推送到即时通讯工具的对应群组或个人同时推送到Jira等项目管理平台的对应任务下如果产品经理或运维团队对自动选择的发布策略、自动执行的回滚流程有异议会自动学习他们的意见更新自己的内部状态模型、目标集合、效用函数。1.1.5 什么是智能研发交付流水线协作系统智能研发交付流水线协作系统是指将代码评审Agent、测试Agent、发布Agent这三个专门的Agent以及现有的CI/CD工具链比如GitLab CI/CD、Jenkins、SonarQube、Jira、Zephyr Scale、Selenium、Appium、Postman Newman、JMeter、Docker、Kubernetes等集成在一起通过统一的协作协议和决策逻辑实现「需求提出→代码编写→PR提交→代码评审→测试用例生成→测试用例执行→Bug自动关联→前置质量门禁检查→发布策略选择→部署→线上监控→自动回滚→发布收尾」全链路自动化交付的系统。它的核心优势在于全链路自动化不需要人工介入除了「需求澄清」「资深开发人员重点评审某些部分」「探索性测试」「产品经理发布确认」之外的任何环节统一决策逻辑三个Agent之间使用统一的协作协议和决策逻辑不会出现工具之间的冲突持续学习能力三个Agent都是学习型基于效用的Agent能够通过与人类和环境的交互不断学习提高自己的决策能力和行动能力低风险发布发布Agent能够根据代码变更的大小、影响范围、历史发布的成功率、回滚率、当前线上的负载情况、监控数据自动选择合适的发布策略同时能够实时监控线上数据自动回滚失败的发布高人力效率能够将资深开发人员的手动评审时间减少80%-95%将QA团队的自动化相关工作时间减少70%-90%高交付效率能够将全链路交付周期压缩60%-80%高代码质量能够将上线前的代码缺陷率降低70%-90%。1.2 问题背景优仓通项目的现状1.2.1 优仓通项目简介优仓通是我在2022年初加入的一家中型互联网SaaS公司名为「智联云科」的核心产品它是一款面向中小电商卖家的库存管理SaaS工具主要功能包括多平台库存同步支持淘宝、天猫、京东、拼多多、抖音电商、快手电商等10主流电商平台的库存实时同步多仓库管理支持创建多个仓库支持仓库之间的库存调拨、盘点采购管理支持采购订单的创建、审批、收货、入库、付款销售管理支持销售订单的自动同步、审核、发货、出库、退款库存预警支持设置库存下限、库存上限当库存低于下限或高于上限时会自动发送预警消息给卖家数据分析支持生成库存周转率、销售排行榜、采购成本分析等多种数据分析报表API接口开放支持开放API接口供卖家的第三方系统比如ERP系统、CRM系统、财务系统对接。优仓通项目的技术栈如下前端技术栈React 18、TypeScript 4.9、Ant Design 5.2、Vite 4.1、Axios 1.3后端技术栈Java 17、Spring Boot 3.0、Spring Cloud Alibaba 2022.0.0.0、MyBatis Plus 3.5、Redis 7.0、RabbitMQ 3.11、MySQL 8.0代码托管平台GitLab EECI/CD工具链GitLab CI/CD、SonarQube 9.9、Harbor 2.7、Kubernetes 1.26、Argo CD 2.6项目管理平台Jira Software 9.4测试用例库Zephyr Scale for Jira 9.3测试执行平台Selenium 4.8、Appium 2.0、Postman Newman 10.17、JMeter 5.5即时通讯工具企业微信监控平台Prometheus 2.42、Grafana 9.4、ELK Stack 8.6Elasticsearch 8.6、Logstash 8.6、Kibana 8.6。优仓通项目的团队规模如下产品团队3人产品经理2人产品助理1人设计团队2人UI设计师1人UX设计师1人前端开发团队8人资深前端开发工程师2人中级前端开发工程师4人初级前端开发工程师2人后端开发团队12人资深后端开发工程师3人中级后端开发工程师6人初级后端开发工程师3人测试团队5人QA团队组长1人资深QA工程师2人中级QA工程师2人运维团队3人运维团队组长1人中级运维工程师2人架构师团队2人资深架构师1人中级架构师1人。1.2.2 优仓通项目在引入智能研发交付流水线协作系统之前的具体问题我在2023年6月加入智联云科担任技术负责人兼架构师团队负责人之后的第一个月我对优仓通项目的研发交付流程进行了全面的调研和分析发现了以下四个核心问题1.2.2.1 研发交付链路碎片化工具之间孤立无援优仓通项目虽然已经使用了GitLab CI/CD、SonarQube、Harbor、Kubernetes、Argo CD、Jira、Zephyr Scale、Selenium、Appium、Postman Newman、JMeter、Prometheus、Grafana、ELK Stack等主流的CI/CD、项目管理、测试、监控工具但这些工具之间是孤立的没有统一的协作协议和决策逻辑GitLab CI/CD与SonarQube的协作问题GitLab CI/CD会自动触发SonarQube的静态扫描但SonarQube扫描出的警告除了预设的质量门禁拒绝的严重警告之外不会自动触发任何后续操作比如额外的单元测试补充、资深开发人员的重点评审GitLab CI/CD与测试执行平台的协作问题GitLab CI/CD会自动触发单元测试和简单的API自动化测试但不会自动触发UI自动化测试、性能压力测试这些测试需要QA团队手动在Zephyr Scale中创建测试计划然后手动触发执行测试执行平台与Jira的协作问题测试执行平台的测试执行结果需要QA团队手动整理成测试报告然后手动推送到Jira的对应需求或任务下手动关联失败的测试用例到Jira的Bug手动填写Bug的标题、描述、严重程度、优先级、复现步骤、预期结果、实际结果、截图/录屏、测试环境信息、代码变更信息测试执行平台与GitLab的协作问题测试执行平台的测试执行结果需要QA团队手动推送到GitLab的PR评论区发布流程与监控平台的协作问题发布流程由运维团队手动在Argo CD中触发发布后的线上监控数据由运维团队和测试团队手动查看只有当线上监控数据出现了非常严重的问题比如API接口的错误率超过了50%时才会触发回滚流程回滚流程也由运维团队手动在Argo CD中触发。这些工具之间的孤立无援导致大量的重复劳动和等待时间严重拖慢了交付速度。1.2.2.2 专业人力投入不均衡高价值工作时间不足我对优仓通项目的资深开发人员、QA团队成员、运维团队成员的2023年5月的工作时间进行了统计结果如下表1-1 优仓通项目2023年5月各团队成员工作时间统计团队角色总工作时间小时低价值工作时间小时低价值工作时间占比高价值工作时间小时高价值工作时间占比低价值工作内容示例高价值工作内容示例资深前端开发工程师16011873.75%4226.25%命名不规范、缺少注释、空指针风险静态扫描能覆盖的的代码评审UI自动化用例录制前端架构设计优化前端性能瓶颈排查前端安全风险漏洞排查前端新技术调研与引入资深后端开发工程师16012276.25%3823.75%命名不规范、缺少注释、空指针风险静态扫描能覆盖的的代码评审API自动化用例编写后端架构设计优化后端性能瓶颈排查后端安全风险漏洞排查后端新技术调研与引入资深架构师1609559.38%6540.62%架构规范符合性的代码评审静态扫描质量门禁的配置整体架构设计优化微服务拆分与合并技术选型决策技术债务管理QA团队组长16011571.88%4528.12%测试报告整理Bug关联到需求、PR、测试用例UI自动化用例维护测试策略制定探索性测试性能压力测试优化测试新技术调研与引入资深QA工程师16012880.00%3220.00%UI自动化用例录制API自动化用例编写测试报告整理Bug关联到需求、PR、测试用例探索性测试边界条件测试异常场景测试性能压力测试优化测试用例库维护中级QA工程师16014087.50%2012.50%UI自动化用例录制API自动化用例编写测试报告整理Bug关联到需求、PR、测试用例探索性测试边界条件测试异常场景测试运维团队组长16010062.50%6037.50%发布流程手动触发回滚流程手动触发监控告警处理运维架构设计优化Kubernetes集群优化监控告警策略优化运维新技术调研与引入中级运维工程师16012578.13%3521.87%发布流程手动触发回滚流程手动触发监控告警处理服务器日常维护Kubernetes集群维护镜像仓库维护监控平台维护从表1-1可以看出所有团队成员的低价值工作时间占比都超过了50%其中中级QA工程师的低价值工作时间占比甚至达到了87.50%所有团队成员的高价值工作时间占比都不足50%其中中级前端开发工程师、中级后端开发工程师、中级QA工程师的高价值工作时间占比不足30%专业人力投入的不均衡导致优仓通项目的技术债务不断累积产品的创新速度不断减慢团队成员的工作满意度不断下降。1.2.2.3 决策延迟与主观偏差交付速度和质量不稳定我对优仓通项目2023年1月-5月的127个PR的全链路交付周期进行了统计结果如下表1-2 优仓通项目2023年1月-5月PR全链路交付周期统计PR全链路交付环节平均时间小时最长时间小时最短时间小时等待时间占比PR提交到资深开发人员开始评审12.348.00.595.9%资深开发人员评审3.212.00.20%PR修改到资深开发人员重新开始评审8.736.00.396.6%PR审批通过到QA团队开始测试6.524.00.493.8%QA团队测试15.872.02.00%QA团队测试通过到产品经理发布确认4.318.00.295.3%产品经理发布确认到运维团队开始部署2.812.00.196.4%运维团队部署1.24.00.30%PR全链路交付周期总和54.8226.03.094.1%从表1-2可以看出PR全链路交付周期的平均时间为54.8小时约2.3天但最长时间达到了226.0小时约9.4天最短时间只有3.0小时约0.1天交付速度非常不稳定等待时间占全链路交付周期的94.1%是拖慢交付速度的主要原因资深开发人员评审时间的最长/最短比为60.0QA团队测试时间的最长/最短比为36.0交付质量和速度的主观偏差非常大。我还对优仓通项目2023年1月-5月的上线前的代码缺陷率进行了统计结果如下表1-3 优仓通项目2023年1月-5月上线前代码缺陷率统计月份提交代码行数千行上线前发现的Bug数上线前代码缺陷率个/千行1月12511259.02月1089729.03月14211368.04月13811048.05月15512408.0平均133.61115.48.4从表1-3可以看出优仓通项目上线前的代码缺陷率平均为8.4个/千行处于行业中等偏下水平行业优秀水平为1-2个/千行行业中等水平为3-5个/千行。1.2.2.4 应急响应能力不足线上故障处理时间过长我对优仓通项目2023年1月-5月的23个线上阻塞性Bug的处理时间进行了统计结果如下表1-4 优仓通项目2023年1月-5月线上阻塞性Bug处理时间统计线上阻塞性Bug处理环节平均时间小时最长时间小时最短时间小时线上故障发现到问题定位1.54.00.3问题定位到代码修复2.06.00.5代码修复到紧急提交流程审批0.83.00.1紧急提交流程审批到资深架构师紧急评审0.52.00.1资深架构师紧急评审到QA团队紧急冒烟测试0.31.00.05QA团队紧急冒烟测试到打包0.20.50.05打包到灰度部署0.20.50.05灰度部署到全量部署0.52.00.1线上阻塞性Bug处理时间总和6.019.01.2从表1-4可以看出优仓通项目线上阻塞性Bug的平均处理时间为6.0小时最长时间达到了19.0小时处于行业中等偏下水平行业优秀水平为30分钟-1小时行业中等水平为1-3小时。这些线上阻塞性Bug的处理时间过长导致优仓通项目的用户满意度不断下降用户流失率不断上升2023年1月-5月的用户流失率从2.1%上升到了3.8%。1.3 问题描述基于对优仓通项目的调研和分析我们可以将需要解决的问题总结为以下四个方面如何解决研发交付链路碎片化、工具之间孤立无援的问题如何解决专业人力投入不均衡、高价值工作时间不足的问题如何解决决策延迟与主观偏差、交付速度和质量不稳定的问题如何解决应急响应能力不足、线上故障处理时间过长的问题1.4 问题解决的初步思路针对以上四个问题我们提出了以下初步的解决思路搭建一个统一的智能研发交付流水线协作平台将代码评审Agent、测试Agent、发布Agent这三个专门的Agent以及现有的CI/CD、项目管理、测试、监控工具集成在一起通过统一的协作协议和决策逻辑实现全链路自动化交付定义和训练三个专门的学习型基于效用的Agent代码评审Agent具备静态动态业务逻辑架构设计的四级代码评审能力能够自动评估PR的质量给出「自动通过」「需要重点评审」「自动拒绝」的决策自动生成详细的代码评审报告测试Agent具备需求拆解→自动化用例生成→用例执行→Bug自动关联→测试报告自动生成的全流程测试能力能够自动评估测试用例的优劣选择合适的测试用例执行发布Agent具备前置质量门禁→自动决策发布策略→灰度部署→线上监控→自动回滚的全流程发布能力能够自动评估发布风险选择合适的发布策略设计三个Agent之间的协作流程和交互协议让它们像一个真正的「技术铁三角」一样协同工作比如代码评审Agent发现了潜在的性能瓶颈会自动触发测试Agent生成对应的性能压力测试用例并提前执行平衡自动化和人工的关系不要完全依赖自动化自动化主要处理低价值、重复性的工作人工主要处理高价值、创造性的工作比如需求澄清、资深开发人员重点评审某些部分、探索性测试、产品经理发布确认建立持续学习机制让三个Agent能够通过与人类和环境的交互不断学习更新自己的内部状态模型、目标集合、效用函数从而提高自己的决策能力和行动能力。1.5 边界与外延1.5.1 边界本文和优仓通项目的提效项目的边界如下不推翻现有工具链只需要做一些简单的接口开发和配置就能将智能研发交付流水线协作系统接入现有的CI/CD、项目管理、测试、监控工具不处理需求提出和需求设计环节需求提出和需求设计环节仍然由产品团队和设计团队人工完成不处理探索性测试环节探索性测试环节仍然由QA团队人工完成不处理极端复杂的架构设计评审环节极端复杂的架构设计评审环节仍然由架构师团队人工完成不处理极端复杂的线上故障排查环节极端复杂的线上故障排查环节仍然由运维团队和开发团队人工完成使用现有的开源大语言模型LLM不自己训练大语言模型而是使用现有的开源大语言模型比如CodeLlama-70B-Instruct、StarCoder2-15B-Instruct、Qwen-72B-Chat作为三个Agent的核心推理引擎使用Python作为主要的开发语言三个Agent的核心代码、接口代码、协作代码都使用Python开发。1.5.2 外延本文和优仓通项目的提效项目的外延如下可以扩展到其他技术栈的项目比如Vue.js、Angular、Node.js、Go、Python、PHP等技术栈的项目可以扩展到其他类型的项目比如Web应用、移动应用、桌面应用、嵌入式系统等类型的项目可以扩展到其他场景比如代码重构、技术债务管理、性能优化、安全审计等场景可以扩展到更多的Agent比如需求分析Agent、代码生成Agent、代码优化Agent、文档生成Agent、故障排查Agent等。1.6 本章小结本章主要介绍了以下内容核心概念先介绍了什么是Agent然后分别介绍了什么是代码评审Agent、测试Agent、发布Agent最后介绍了什么是智能研发交付流水线协作系统问题背景先介绍了优仓通项目的简介、技术栈、团队规模然后详细介绍了优仓通项目在引入智能研发交付流水线协作系统之前的四个核心问题研发交付链路碎片化、专业人力投入不均衡、决策延迟与主观偏差、应急响应能力不足问题描述将需要解决的问题总结为四个方面问题解决的初步思路提出了五个初步的解决思路边界与外延明确了本文和优仓通项目的提效项目的边界以及可以扩展的方向。下一章我们将详细介绍优仓通项目的提效系统的核心问题解决思路与系统架构设计。本章字数约15000字

更多文章