一、缺陷检测建设背景
建设必要性:代码缺陷影响业务交付质量,人工检测效率低且易漏检;缺陷发现方式分两类,一是通过测试/监控间接发现,二是通过代码审查(静态工具或大模型)直接发现,后者更具前瞻性。
技术演进:从传统“规则驱动+孤立分析”(预定义规则、缺上下文,误漏报多),迈向“语义理解+上下文感知”(大模型理解代码意图与业务逻辑,融合多源信息提升准确性),可分析变量逻辑、函数调用、注释与命名一致性等。
二、缺陷检测智能体建设思路
产品形态:当前以IDE插件、PR评论为主,未来通过智能体搭配工作流,强化自主分析与反思能力,提升用户体验。
核心逻辑:以“数据和效果驱动”为核心,收集用户反馈与生产缺陷数据,构建评测与训练样本,夯实底层检测能力,进而提升缺陷发现能力。
三、缺陷检测智能体建设方案
核心能力构建
规划能力:实现意图识别(判断检测对象如仓库/分支/PR)、任务拆解(获取代码、按类/方法拆解、制定检测策略)与自我反思(验证缺陷准确性,调整结果)。
工具与记忆支撑:整合代码、测试用例、测试数据、知识库等资源,通过对话模式自主执行任务,透出检测过程并汇总报告。
关键技术方案
上下文工程:融合增量代码(标记行号与修改内容)、方法链路(组装变更方法上下游)、运行时数据(异常日志、请求信息)、测试用例与业务描述,提升检测精准度。
规则体系:规则来源含团队标准、用户反馈、人工经验、业务缺陷分析,分业务线规则(如交易状态流转)与技术中间件规则(如美团Zebra/mafka用法),支持配置化。
缺陷管理:建立标签体系(区分缺陷/优化建议,如“条件判断互斥”为缺陷、“条件冗余”为优化),判断缺陷引入(历史/本次)与修复状态,差异化触达用户。
整体流程:输入代码/流量等,智能体规划检测策略,结合上下文与规则库执行检测,输出缺陷结果,再通过用户反馈微调模型,形成闭环。
四、缺陷检测评测
评测数据建设:涵盖公开缺陷、内部智能体发现缺陷、线上问题、QA测试缺陷、AI生成缺陷等,通过人工标注与筛选保证质量,实现缺陷与代码绑定(关联行号、检测策略等)。
评测指标与方法:以端到端评测为原则,按代码特征/缺陷标签分类评测,核心指标为准确率(a/A+D)与召回率(a/A+B);针对特定场景(如Thrift类型问题)构造专项测试集,驱动模型调优(如小参数模型全参微调)。
落地效果:已覆盖300+高风险服务,2025年线下检测缺陷超2000个,核心缺陷标签准确率达80%,可发现测试难覆盖的代码问题。
五、未来展望
能力深化:深度结合业务知识,提升业务相关缺陷召回率;优化智能体环境感知与任务规划反思能力。
基建完善:整合产品需求、技术方案、代码仓库、历史缺陷,构建更全面的关联知识库。
范围拓展:当前以Java为主,后续按需扩展至前端等多语言技术栈。