带你1分钟上手基于Claude Code的AI代码评审实践

B站影视 欧美电影 2025-10-21 19:20 2

摘要:通过这篇文章,你将了解到Claude Code用于CR的流水线搭建原理和效果,如何在1分钟内接入你的代码项目,并启发你对AI Coding Agent用于CI/CD提效的思考。

通过这篇文章,你将了解到Claude Code用于CR的流水线搭建原理和效果,如何在1分钟内接入你的代码项目,并启发你对AI Coding Agent用于CI/CD提效的思考。

Aone为阿里一站式智能研发协同平台,实际操作可替换其他对应平台。

当前CR流程说明:目前我们组的CR流程,是研发完成代码开发后,在代码平台上手动开启代码评审单,交由多位同学人工评审,同时触发Aone AI评审。

当前流程的主要问题如下:

1. 人工评审耗时较长,员工心力消耗大,可能会拖慢小组整体的研发节奏,同时也不一定保证能发现所有问题;

2. 现有的代码分析、AI评审工具,也都存在一些经常发生的问题:

误报较多;分析不够深入,无法联合分析上下游代码,许多业务逻辑问题难发现;纠正意见不太实用。

我们尝试利用Claude Code的强大AI Coding Agent能力,结合AONE MCP Server,来在代码平台CI流水线中实现更智能的AI代码评审,为团队提供一个低成本、高收益的代码质量检查工具。

Claude Code 官方文档:https://docs.anthropic.com/zh-CN/docs/claude-code/quickstart

当代码评审开启以及后续新增commit时,会触发CR流水线开启AI分析,最终将分析结果同步至CR评论区,如下图(发现了项目里一直存在但没人提出的死循环阻塞获取限流锁的代码)。

目前体感来看,许多AI建议是有必要的、能启发人的。其中,人分析到但AI没考虑到的情况比较少。但是,因为还在调试阶段,所以也不是能解决全部问题。因此,估摸给个数字的话,可能是 提效50% 以上。

长期预测来看,如果后续调教优化得好,应该在以下2方面给CR工作带来明显收益:

提效:辅助人工,大幅减少发现问题、分析问题、给出建议的时间,80%不是问题;提质:超越人工,发现人工察觉不了的潜在问题,给质量工程满满安全感;核心设计要点

1. 可配置的Claude Code流水线模板

封装了一个流水线模板在代码平台市场,提供了自动安装最新Claude Code的容器环境,支持配置Claude Code API相关信息、Aone MCP Server API、容器执行Shell脚本(可以完全自定义如何调用Claude Code)、流水线触发条件和事件通知方式。

2. 基于MCP的CR信息交互

通过AONE MCP Server获取CR相关信息,避免了git获取远程信息时的权限问题。

3. 变更代码智能分层处理策略

Level 1:完全未分析的区域 → 重点深度分析;Level 2:部分分析过的区域 → 对于后续新增commit里,增量的新代码进行重点分析;Level 3:已完整分析过的区域 → 简单的重审分析;

4. Multi/Background Agent 并行处理提升效率

3个处理器同时工作,每个专注于不同类型的代码变更,提高整体处理速度。

5. 超时控制

调用Claude Code实例时,指定最大运行时长,默认30分钟。

name: Claude Code AI CRtriggers:push:branches:- feature/**merge_request:target-branches:- '**'params:ANTHROPIC_BASE_URL:name: ANTHROPIC_BASE_URLdescription: Claude Code 环境变量,指定模型端口地址required: trueANTHROPIC_AUTH_TOKEN:name: ANTHROPIC_AUTH_TOKENdescription: Claude Code 环境变量,指定模型访问密钥required: trueANTHROPIC_MODEL:name: ANTHROPIC_MODELdescription: Claude Code 环境变量,指定模型型号,可为空required: falseAONE_MCP_URL:name: AONE_MCP_URLdescription: AONE MCP SERVER的url,在code界面右侧可以获取到required: trueshell:name: shelldescription: 执行脚本required: falsedefault: |-#!/bin/bash# 基于 MCP 的智能分层 AI 代码评审系统# 解决方案:通过 AONE MCP 获取 CR 信息,实现智能增量分析# 配置 MCP 连接cat > mcp.json /dev/nullecho "所有处理器已强制终止"breakfi# 检查所有进程是否完成if ! kill -0 $level1_pid 2>/dev/null && ! kill -0 $level2_pid 2>/dev/null && ! kill -0 $level3_pid 2>/dev/null; thenecho "所有处理器已完成"breakfi# 显示进度running_count=0kill -0 $level1_pid 2>/dev/null && running_count=$((running_count + 1))kill -0 $level2_pid 2>/dev/null && running_count=$((running_count + 1))kill -0 $level3_pid 2>/dev/null && running_count=$((running_count + 1))echo "还有 ${running_count} 个处理器在运行中... (已运行 ${elapsed}s)"sleep 30 # 每30秒检查一次doneecho "智能分层 AI 代码评审完成!"# 验证步骤:检查是否真的添加了评论# echo "验证步骤: 检查AI是否真的添加了评论..."claude --permission-mode acceptEdits --mcp-config mcp.json --allowedTools "mcp__aone__list_merge_request_comments" --print "验证任务:1. 使用 mcp__aone__list_merge_request_comments 工具重新获取CR的所有评论2. 对比旧的existing_comments.md,检查是否有新的AI评论被添加3. 如果没有发现新评论,明确报告'验证失败:AI未添加任何评论'4. 如果发现了新评论,报告'验证成功:AI成功添加了X条评论'"# 完成总结# echo "✅分析完成总结:"jobs:claude-code:image: alios-8usteps:- uses: checkout- uses: setup-envinputs:node-version: 20tnpm-version: 10tnpm-cache: true- id: Claude_Code_Runrun: |-tnpm install -g @anthropic-ai/claude-codeexport ANTHROPIC_BASE_URL=${{params.ANTHROPIC_BASE_URL}}export ANTHROPIC_AUTH_TOKEN=${{params.ANTHROPIC_AUTH_TOKEN}}export ANTHROPIC_MODEL=${{params.ANTHROPIC_MODEL}}echo claude-code安装成功${{params.shell}}

1. 在代码仓库的持续集成页面,点击新建任务。

2. 在模板市场中,搜索 Claude Code AI CR 模板并引用。

3. 配置4个环境变量:

ANTHROPIC_BASE_URL: Claude Code 模型端点地址;ANTHROPIC_AUTH_TOKEN: Claude Code 访问密钥;ANTHROPIC_MODEL: 模型型号;AONE_MCP_URL: Aone · 代码平台的MCP端口;

4. 确认一下,触发策略这里最后选上这2个时机(通配符规则自己定)。

5. 提交配置。

6. 随后,开启一个代码评审,即可触发。通过观测流水线日志和CR评论区,来判断是否运行成功。

注意

入参配置里的shell,不填的话会默认使用我提供的命令(见上面流水线的脚本)。如果你觉得效果不好,需要调整(确实有很多细节要调整),可以自己设置哦。

使用建议

为了获得更好的CR效果,建议在项目中:

定制优化你的流水线Shell命令:当前流水线模板相当于提供了运行Claude Code的容器环境,里面如何执行命令、如何调用Claude Code,完全由你来自定义(将运行命令脚本填入入参配置里的shell字段,容器会在配置好Claude Code环境后,运行你的脚本)。维护好CLAUDE.md(如果不了解,请查一下Claude Code相关使用教程)。针对项目的特点,优化prompt和工具调用,比如重要项目强调数据一致性问题的检查。建立起需求文档在代码库中的维护习惯,AI Coding后期本质上将会是文档工程,文档质量决定了Agent在代码研发周期里的提效上限。后续优化方向

1. Background Agent 模式的应用:当前我们只是简单的对CR中变更代码,就“是否已经被分析过”来进行了简单的划分,然后并行执行。在不同的项目中,完全可以进行不同纬度的划分,来并行处理。

2. Sub Agent 模式的应用:是由Claude Code支持的模式,可以在一个agent实例中将任务分给不同的子agent去并行做不同的事,专人专职,分析力更强,减少了上下文限制和幻觉的影响。比如,对一个CR任务,可以建立起 代码规范检查agent、上下游业务影响分析agent、数据一致性分析agent、稳定性分析agent 的协作机制。

3. Prompt 工程、上下文工程的调优:如何在提出要求之前准备好模型可能需要的一切?

4. Memory 机制的建立:如何将整个代码库的历史变更、历史文档、历史CR,作为长期记忆留存下来并反哺?

总结

通过这次Claude Code AI CR流水线的实践,我们实现了包括但不限于:

自动检测评审中的CR并进行智能分析;基于现有评论避免重复分析,提高效率;通过分层处理策略,针对不同复杂度的代码变更采用不同的分析深度;多个Claude Code实例并行处理,显著缩短分析时间;直接在CR页面添加结构化的评审意见,包含问题描述、风险等级、修改建议等;发现人工容易遗漏的潜在问题(如案例中的死循环阻塞问题);沉淀了可配置的流水线模板,支持一键部署和复用;

AI Coding Agent在代码评审场景的应用证明了其实用价值,50%+的提效不仅减轻了人工负担,也提升了问题发现的广度和深度。这套方案展示了将AI Agent集成到现有研发流程中的一种可行路径,为团队探索AI提效提供了具体的参考案例。

当然,这个方案更多是给大家提供一个实践思路和技术起点,后续的优化空间还很大。

希望这次分享能启发更多团队探索AI Coding在自己业务场景中的应用可能性,共同推动研发效率的提升!欢迎大家尝试使用并提供反馈建议!

低成本、高性能的湖仓一体化架构

湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。SelectDB 通过高性能数据分析处理引擎和丰富的湖仓数据对接能力,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。

低成本、高性能的湖仓一体化架构-阿里云技术解决方案查看详情。

来源:阿里技术一点号

相关推荐