AI CR:代码审查左移架构设计与工程实践
传统代码审查(CR)多滞后于开发流程,存在效率低、标准不统一、回归缺陷频发等痛点。本文围绕 AI CR 代码审查左移,基于 Cursor + MCP 架构,从研发痛点剖析、架构设计、多模式审查,到提示词工程、上下文工程优化及落地流程,阐述一套可落地的工程实践方案,实现本地 “开发 - 审查 - 修复” 闭环,提升研发效率与代码质量,适配多类研发场景。
一、背景
1.1 研发痛点与优化诉求
传统代码审查(CR)多在提交合并请求(MR)后进行,存在效率低、质量管控滞后等问题。结合三类核心研发场景,具象化剖析痛点及对应优化诉求,为后续核心痛点归类奠定基础:
1.1.1 复杂业务 MR 审查困境
研发场景:复杂需求 MR 常伴随数千至上万行代码改动,开发者准备材料、审查者逐行审核均需投入大量精力,形成低效闭环。
核心诉求:实现本地完成审查与修复后再提交 MR,缩短合码周期;通过「开发 - 审查 - 修复」本地闭环,减少跨平台确认成本。
1.1.2 本地审查标准乱象
研发场景:开发者借助大模型本地审查时,标准与工具不统一,要么审查范围过宽引发风险,要么优秀实践无法复用,审查效果参差不齐。
核心诉求:建立统一审查规范,复用最佳实践,提升本地审查质量与一致性。
1.1.3 回归缺陷频发
研发场景:每次代码变更均有概率引入新 bug,复杂代码或缺乏充分测试场景下概率更高,新人因认知不足更易引发回归缺陷。
核心诉求:降低审查成本,帮助建立架构视角,减少回归缺陷。
结合上述三类研发场景痛点,进一步提炼核心问题与量化指标,明确方案落地重点,为后续解决方案提供针对性方向。
1.2 核心痛点与核心指标
1.2.1 核心痛点
结合 1.1 三类核心研发场景,提炼核心痛点,明确方案需解决的核心问题,具体如下:
| 痛点类别 | 痛点概括 |
|---|---|
| 研发流程低效 | 复杂 MR 审查与修复跨平台、耗时久,合码周期长,需减少跨平台确认成本。 |
| 审查标准不统一 | 本地审查标准、工具杂乱,要么范围过宽有风险,要么最佳实践难复用。 |
| 质量保障不足 | 线上低级问题可通过 CR 规避却遗漏;新人代码质量缺乏有效管控,易引发回归缺陷。 |
1.2.2 核心指标
聚焦核心痛点,通过 CR 左移减少线上问题(重点规避低级问题、回归缺陷),实现研发效率与代码质量双提升。
1.3 方案目的与 CR 左移定义
1.3.1 方案目的
结合 AI 技术实现 CR 左移,构建高效优质研发工作流,推动问题早发现、早解决,呼应核心痛点并达成核心指标。
1.3.2 CR 左移定义
将 CR 从合入阶段左移至开发阶段,让开发者在开发过程中完成审查与修复,实现本地开发闭环,提供高效协作与全面质量保障。
二、解决方案
2.1 架构、工具集成与审查模式
基于 CR 左移理念,构建「开发者 - 工具 - AI 模型」三位一体架构,实现本地审查、标准统一、智能修复,架构如下:
2.1.1 整体架构
2.1.2 工具集成
| 工具 | 核心用途 |
|---|---|
| Cursor IDE | 内嵌审查功能,实时反馈问题、自动修复高危项,实现本地闭环 |
| MCP Server Tool | 提供标准上下文与工作流,提升 LLM 审查建议准确性、一致性 |
2.1.3 多模式审查
- 推荐模式:智能选择暂存区 diff 代码,聚焦本次修改,提升效率;
- 可选模式 1:识别 MR 链接、@Git 提供的 diff 代码,适配团队协作。
补充:支持自定义审查规范,可导入多语言规范或个人习惯。
2.2 核心工作流程
三、提示词工程
提示词工程是 AI 审查准确性的核心,通过分层结构化设计、合理任务边界及思维链优化,确保 LLM 生成精准可用的审查建议。
3.1 提示词生成流程
3.2 结构化 Prompt 设计
提示词工程核心是分层结构化设计,兼顾可扩展性与可维护性,同时结合 LLM 及 Cursor 规范,采用伪 XML 格式构建 Prompt,确保审查建议精准。
提示词分为三大核心类别,具体如下:
| 类别 | 子类 | 核心说明 |
|---|---|---|
| 指导原则 | 审查规范 | 默认 Web 技术栈规范,支持多语言扩展 |
| 问题分类 | 含安全、规范等多类问题分类 | |
| 评分标准 | 分级评分,明确修复优先级 | |
| 自动修复规则 | 定义 Cursor 自动修复规则 | |
| 审查原则 | 聚焦核心、基于上下文审查 | |
| 格式化输出 | review_to_do_list.md | 记录任务列表与进度 |
| review_result.json | 结构化存储审查结果,便于追溯 | |
| diff | 存储待审查 diff 代码作为上下文 | |
| 工作流程 | 前期准备 | 初始化文件、确定 diff 范围 |
| 任务规划 | 按「工程 - 文件 - diff 行」规划 | |
| 任务执行 | 逐次执行审查任务 | |
| 质量验证 | 验证审查结果准确性 | |
| 记录反馈 | 收集反馈用于优化 |
3.3 任务边界与自动修复决策
明确任务边界以避免无效消耗,结合问题评分构建自动修复决策链,实现效率与安全性的平衡。
3.3.1 核心任务边界
- 文件类型边界:仅审查前端核心文件(*.ts / *.js 等)
- 变更范围边界:仅关注 diff 新增代码(‘+’ 行)
- 问题类型边界:重点排查逻辑漏洞、高危风险
- 推测边界:基于明确上下文,不做假设性推测
- 修复边界:根据问题评分决定修复方式
3.3.2 自动修复决策链
以问题评分为核心依据,智能判断修复优先级,优先自动修复低风险、高评分问题,高危问题提示人工确认,平衡修复效率与安全性。
3.4 工作流程与思维链设计
结合 ReAct 框架(Reasoning and Acting)、COT 链式思考、Prompt Chaining 提示词链,拆解复杂任务,提升审查准确性。
| 技术类型 | 核心说明 |
|---|---|
| ReAct 框架 | 边推理、边行动,实现「思考 - 执行 - 反馈」协同 |
| COT 链式思考 | 拆解复杂任务,逐步推进避免遗漏 |
| Prompt Chaining 提示词链 | 以上一步结果作为下一步输入,保证上下文连贯 |
3.4.1 思维链闭环设计
流程图按「整体思维链 → 单任务思维链 → 单问题思维链」层级嵌套,清晰呈现从宏观到微观的审查逻辑,保留各环节核心细节,避免碎片化。
四、上下文工程
提示词工程为 AI 审查提供精准指引,而上下文工程则解决审查过程中的上下文管控难题,两者协同发力,共同保障 AI CR 的准确性与高效性。
核心解决「上下文过长致幻觉、过短致不准确」的矛盾,通过精准管控提升审查质量。
4.1 核心问题
核心矛盾:上下文越长,AI 幻觉概率、资源消耗越高;但代码审查需大量上下文,且 Cursor 场景下易触发窗口限制,影响审查效果。
4.2 上下文精准获取
4.2.1 信息获取策略
- 渐进式沟通:逐步确认审查范围,形成清晰上下文后再执行;
- 精确范围:通过 MR 链接、@Git 获取精准 diff,最小化上下文消耗;
- 文件过滤:聚焦核心文件,避免无关信息干扰。
4.2.2 渐进式中间产物生成
采用「分而治之」思路,每次仅审查当前文件 diff,避免全量加载上下文,流程如下:
4.3 任务粒度优化
复杂审查任务需合理规划粒度,解决上下文超限、验证困难等问题,提升审查可控性与效率。
4.3.1 核心痛点
- 审查数量多,缺乏规划易混乱;
- 无规划结果难以验证,增加后续验证成本;
- 任务过复杂易超出上下文限制,导致 AI 遗忘早期内容。
4.3.2 优化方案
借助 Cursor To-Do List 任务列表管理功能,按「工程 - 文件」规划审查任务,清晰呈现任务范围与进度,让开发者直观把控审查情况,精准解决上述痛点。
Cursor To-dos 效果示意:
4.4 记忆回溯
采用「工程 - 任务 - 文件」最小块管理上下文,搭配临时文件实现记忆回溯,有效解决上下文管理难题,提升 LLM 审查精准度,核心临时文件设计如下:
4.4.1 review_to_do_list.md
核心作用:记录审查任务列表、跟踪进度等信息,为 LLM 提供上下文引用,示例如下:
# review_to_do_list.md
# 核心:记录审查任务与进度,供 LLM 追溯
## 待审查文件
src/components/button.tsx - 等待审查
## 进度统计
待审查文件:1 份
已过滤文件:若干
已审查文件:0 份
发现问题:0 个
4.4.2 review_result.json
核心作用:结构化存储审查结果,便于追溯、统计及后续上下文复用,示例如下:
[
{
"body": "**分类:** 健壮性问题\n**分数:** 中等 // 用分级替代具体分数,避免数值\n**问题描述:** \nfetch 请求缺少错误处理,易引发运行异常",
"position": {
"position_type": "text",
"new_path": "src/components/button.tsx",
"base_sha": "",
"start_sha": "",
"head_sha": "",
"new_line": 12
},
"applied": true
}
]
4.5 上下文组合策略
核心目的:强化跨模块审查准确性,解决单一文件审查上下文不足的问题,提升 AI 审查全面性。
4.5.1 核心组合策略
按业务模块对文件进行分组审查,将同模块内 A 文件的审查结果,作为 B 文件审查的上下文输入,实现跨文件关联校验。
4.5.2 待优化方向
需进一步完善模块间审查关联逻辑,细化关联规则,提升跨文件审查的精准度。
五、用户体验导向
以开发者体验为核心,简化操作流程,实现「无感知优化、高效率审查」。
5.1 核心体验设计
| 体验点 | 详细说明 |
|---|---|
| 自动修复 | 利用 Cursor 自带的 Reapply 功能,直接应用审查建议,减少手动操作 |
| 无感知优化 | 用户对内部优化无感知,提供极简操作流程 |
| 统一体验 | 统一操作流程与结果展示,适配所有场景 |
5.2 标准化操作流程(极简版)
简化操作,无需复杂配置,流程如下:
输入 CR → 选择 diff 源(暂存区 / MR 链接) → 获取审查建议 & 自动修复 → 确认修复结果 → 提交代码
六、总结与规划
6.1 核心价值
本次 CR 左移方案通过 AI 技术落地,核心价值聚焦四大维度,与 1.2.1 核心痛点精准一一对应,形成「痛点 - 价值」完整闭环,具体如下:
| 价值点 | 核心说明(对应痛点解决) | 对应核心痛点 |
|---|---|---|
| 效率提升 | 实现本地「开发 - 审查 - 修复」闭环,减少跨平台确认成本,缩短合码周期,解决流程低效问题 | 研发流程低效 |
| 质量保障 | 规避低级缺陷与回归问题,规范新人代码编写,解决质量管控不足、标准混乱问题 | 质量保障不足、审查标准不统一 |
| 标准化落地 | 统一审查标准、工具与流程,复用最佳实践,解决本地审查标准杂乱问题 | 审查标准不统一 |
| 成本优化 | 智能自动修复降低人工审查与缺陷修复成本,上下文优化减少资源消耗,解决全流程低效高耗问题 | 研发流程低效、质量保障不足 |
6.2 核心技术亮点
方案核心技术优势聚焦 4 个关键维度,支撑价值落地,具体如下:
| 技术点 | 核心优势 |
|---|---|
| MCP 与 Cursor IDE 集成 | 本地实时审查、自动修复,无需跨平台切换,提升操作便捷性 |
| 提示词工程 | 分层结构化设计 + 多思维链,提升 AI 审查精准度 |
| 上下文工程优化 | 任务粒度优化 + 记忆回溯,平衡上下文完整性与资源消耗 |
| 自动修复决策链 | 智能判断修复优先级,兼顾修复效率与安全性 |
6.3 适用场景
结合方案核心优势,适配 4 类核心研发场景,精准解决对应痛点:
| 适用场景 | 适配说明 |
|---|---|
| 复杂业务需求 | 适配大量代码改动 MR,降低审查成本、提升效率 |
| 新人代码管控 | 通过标准化规范,帮助新人规避常见问题 |
| 回归缺陷预防 | 开发阶段提前发现代码变更引入的 bug,减少后期修复成本 |
| 本地开发闭环 | 支持本地「开发 - 审查 - 修复」全流程,无需跨平台操作 |
6.4 后续规划
围绕方案优化升级,聚焦 3 个核心方向,持续提升审查效率与质量:
- 完善审查规范与问题分类体系,进一步提升 AI 审查精准度;
- 优化自动修复决策算法,进一步平衡修复效率与安全风险;
- 扩展多语言、多框架支持,适配更多研发技术栈场景。
更多推荐

所有评论(0)