微信扫码
添加专属顾问
AI助力Code Review,让代码评审更智能高效,告别传统繁琐流程。 核心内容: 1. AI评审助手的核心价值与实现路径 2. 从Git Push到深度预处理的完整流程设计 3. 基于RAG的经验召回引擎构建方法
对于核心的业务项目来说,Code Review (代码评审) 是必不可少的。但现实中的代码评审时常常被以下几件事所困扰:
因此,我们希望打造一个有记忆、懂业务、还看过你们线上事故的评审的 AI 助手,让它帮我们守最后一道门。
整个流程可以大致分为以下几步
“触发机制的选择” 其实是个产品问题:什么时候介入,才不打扰人? 我们最后选的是 GitLab Webhook 的事件驱动模式。开发者无需安装插件,也无需在本地执行脚本,只需按照往常一样进行 push 代码即可。
接入成本极低: 在 GitLab 项目或组织级别的 Webhook 配置中,只需勾选 Push events 和 Merge request events,并填入审核工具的统一回调地址。
多场景触发 :
代码驱动 :当发起目标为主分支的 MR,或已有的 MR 分支发生增量提交时,系统将即时开启审计。
工程管控 :深度集成公司构建平台,支持通过构建 Hook 配置,针对特定业务分支在构建环节手动或自动触发评审任务。
当 Webhook 触发后,审核工具接收到的是一段包含 + 和 - 符号的原始 Diff 文本。原始 Diff 文本包含大量冗余符号和非逻辑变更。如果直接投喂给模型,不仅消耗 Token,还会导致模型注意力分散。
我们设计了一套预处理流水线:
特征过滤 :自动剔除 .lock、.json、样式及静态资源文件。
切片化 Diff :先按文件切,单文件过大时再按行数或 chunk 二次切分
深度提取: 通过接口获取当前变更的完整 Context,然后识别出哪些是逻辑改动,进行一层筛选,剔除干扰项
补全逻辑代码: 识别到逻辑改动,会将整个逻辑方法的原实现也会带过去
调用模型语义化重塑: 系统会将精简后的 Diff 提交给大模型,但此时并不要求模型直接进行审计,而是要求它完成一项任务:“告诉我这段代码在做什么?”
模型分析代码的改动意图: 为后面的知识库匹配和深度 Review 打下基础
如果说语义分析是审核工具的 “眼睛”,那么基于向量数据库的 RAG (Retrieval-Augmented Generation) 流程就是它的 “大脑经验”。
这一块分为两个模块,知识库的数字化与在线语义检索
文档来源: 历史事故复盘、通用工具库、最佳业务实践、特定项目技术文档
流程: 结构化 Chunk 切片 -> Embedding Model 向量化 -> 存入公司内部 AI 平台的向量数据库
我们使用公司内部 AI 平台的知识库搭建
查询向量化: 系统将代码变更简要作为查询指令,同样经过 Embedding Model 转换为嵌入向量。
向量检索 (Vector Search): 在向量空间中计算当前变更向量与数据库中知识向量的余弦相似度 (Cosine Similarity),找出相关性最高的前 2 条上下文知识。
代码打标: 这段与历史问题相似的代码进行打标并将该知识点注入 Prompt
将原始 Diff、语义简要以及检索到的历史问题,融合成复杂的上下文包,进行最终的请求:
构建 Prompt: 将三者融合成一个复杂的上下文包,给到 LLM。
可视化报告与反馈: 最终将评审意见渲染成一个可视化报告,发送消息通知给到用户。
模型的选择永远没有最优解。以下三件事需要一直持续下去:
多维选型评分:借助公司的模型审核平台使用预设的案例检验各个模型,给模型进行打分,从而选择更好的模型。
闭环反馈:抽检 review 的结果,结合用户反馈与修正行为,对模型的输出进行持续评估。
动态调优: 定期检查模型版本,持续优化 Prompt 策略。
针对非核心文件筛选
.json,.png,.lock,.css,.scss,.less优先级权重计算: 在审核服务中会有优先级的配置项
class DiffProcessor {
private readonly coreDirs: readonly string[] = [] asconst;
private readonly baseWeight = 1;
private pathWeightCache = new Map<string, number>();
// 根据路径和重要程度计算权重,优先处理核心逻辑
private calculateWeight(change: Change): number {
// 权重计算逻辑...
}
}
先粗略估算 Token,当累计超过安全余量 (30000 tokens) 时创建新 Chunk。每个 Chunk 包含文件列表、变更元信息及平均权重。
// 将changes 进行切片化处理
private groupIntoChunks(changes: Change[]): Chunk[] {
const chunks: Chunk[] = [];
let currentChunk: ChunkData[] = [];
if (currentChunk.length > 0) {
chunks.push(this.createChunk(currentChunk));
}
return chunks;
}
async processMR(params) {
const processor = new DiffProcessor();
const chunks = processor.processChanges(changes);
try {
// 并行处理所有 chunks,提升审计时效
await Promise.all(chunks.map((chunk) => this.callAPI(params)));
} catch (error) {
// ...
}
}
采用缓存机制处理异步结果:通过 reportStore 缓存各 Chunk 报告,利用 isAllChunksDone 进行校验,触发最终报告的聚合与推送。
const isAllChunksDone = (
reportStore: StorageReport,
report_id: string,
chunksLen: number,
) => {
const expected = reportStore[report_id]?.chunks.length || 0;
return chunksLen === expected;
};
// 保存分块结果
reportStore[report_id].chunks.push(params);
该审核工具自上线以来,作为内部的 Code Review 工具,经过一段时间的推广与迭代,在多个部门中的使用并得到很好的反馈。
审核工具目前已在内部核心业务大组中完成深度落地。通过对底层服务及复杂业务中台等多种场景的覆盖,其实战价值得到了充分验证
全流程质量守卫: 系统已平稳运行于多个核心项目,确保每一行代码变更在合入主干前,都能经过知识库的逻辑校准。
馈驱动进化 :凭借基于业务上下文的风险预警能力,工具在团队内部获得了积极的反馈。
历史复盘文档的命中为参与评审的开发者提供了极其重要的上下文。它告诉评审者:“当前代码与历史某次事故的逻辑模式相似度达 85%,请重点关注。” 这种的提醒,极大缩小了人工审计的盲区。
结合用户的使用与反馈,目前主要存在以下待解决的问题,也是后续的优化方向
由于代码的逻辑复杂性,单纯的语义向量检索有时会召回一些 “似是而非” 的历史案例。如果注入了无关的知识,模型可能会产生幻觉,输出一些与代码无关的建议,导致 “误报”。
优化方向:
筛选相似度高的案例:过滤一些相似度低于 0.85 的案例,剩余命中的案例进入最终的环节,从而将干扰降至最低
构建知识库的 ‘反馈学习链路’。当审核给出建议后,如果开发者标记为 ‘误报’,系统将自动根据反馈进行微调检索策略。
目前生成的建议是放在报告中的,无法让评审人员可以一键采用,还有生成的建议代码可能不是很完善
优化方向:
我们将进一步强化与 Cursor 的原生集成,借助 Cursor CLI 实现本地与审核工具结合,将审计反馈直接嵌入编辑器内侧边栏,用户可一键采纳和修复。
增加发布卡点校验:将审核工具的审计结果作为发布流水线的标准条件。
AI 的能力不仅仅是局限于代码生成,我们希望把它视为一个有经验,懂业务的好搭档。我们做的事情,本质上就是:把团队踩过的坑,变成模型的直觉。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-10
千万文档级 RAG 如何逼近零幻觉
2026-07-09
字节跳动开源AI Agent「上下文数据库」,2.6万星,比传统RAG好用太多了
2026-07-09
企业级 RAG 的知识分层:实体、关系、属性与规则如何落库
2026-07-09
大模型负责聪明,本体负责靠谱
2026-07-08
企业AI三件套:语义层、动力层、决策层——少一件都做不出AI原生
2026-07-08
拆解2.8万Star开源项目Cognee:如何基于知识图谱做RAG和Agent记忆
2026-07-07
顶级AI 检索服务商Exa ,如何用 Zilliz Cloud服务Agent 检索需求
2026-07-07
知识库分块不是越小越好——改了分块大小,准确率跳了18%
2026-04-27
2026-04-23
2026-05-27
2026-04-20
2026-04-22
2026-05-14
2026-04-27
2026-04-30
2026-05-11
2026-05-11
2026-07-04
2026-06-23
2026-06-23
2026-06-15
2026-06-10
2026-06-10
2026-05-20
2026-05-18
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。