当前位置: 首页 > news >正文

受够了低效的代码审查?我用 LangGraph 打造了一款 AI 代码审查神器,自动拦截 SQL 注入(开源)

摘要:团队代码审查耗时太长?漏掉硬编码密钥导致安全事故?本文分享一款基于LangChain + LangGraph的自动化 CodeReview Agent,支持6 种大模型(含国产),能精准识别高风险代码并给出修复建议。内含架构设计与核心实现,项目已开源,欢迎 Star!

🌟项目地址:https://github.com/wanghenan/codereview-agent


😫 痛点:为什么我们需要自动化 CodeReview?

在日常开发中,你是否也遇到过这样的场景:

  1. 人工 Review 太慢:一个复杂的 PR,资深开发要花 30 分钟逐行看,成为合并瓶颈。
  2. 低级错误频出:明明有 SQL 注入风险、硬编码的 API Key,却因为疲劳被肉眼忽略。
  3. 标准不统一:不同人对代码规范的把握不一,导致代码风格割裂。
  4. 大模型幻觉:直接用 ChatBot 审查,它经常胡说八道,或者只给泛泛而谈的建议,无法集成到 CI/CD 流程中。

为了解决这些问题,我利用周末时间,基于LangChainLangGraph框架,开发了一款AI-powered CodeReview Agent

它不是简单的“调用 API”,而是一个有状态、可决策的智能体。它能自动判断哪些代码是安全的(直接通过),哪些存在高风险(阻断并报警),并给出置信度评分。

👉 先上效果:

## CodeReview Agent 🤖 **结论**: ⚠️ 需要人工审核 (置信度: 95%) | 文件 | 风险 | 问题数 | |------|------|--------| | `src/auth/login.ts` | 🔴 高 | 3 | ### 问题 1. 🔴 HIGH: 硬编码 API Key 2. 🔴 HIGH: SQL 注入漏洞 3. 🔴 HIGH: 发送凭据到外部服务

🛠️ 技术深挖:为什么选择 LangGraph?

市面上有很多 AI 审查工具,为什么我要重新造轮子?核心在于对复杂逻辑的控制力

1. 架构设计:从 Chain 到 Graph

传统的 LangChain Chain 是线性的,而代码审查是一个多步骤决策过程

  • 第一步:解析 Diff 文件。
  • 第二步:初步扫描(正则 + 轻量模型)。
  • 第三步:针对可疑代码调用大模型深度分析。
  • 第四步:聚合结果,计算置信度。
  • 第五步:根据置信度决定是“自动通过”还是“请求人工介入”。

这种带有条件分支循环重试的逻辑,正是LangGraph的强项。

核心状态图(State Graph)设计思路:

# 伪代码示意workflow=StateGraph(AgentState)workflow.add_node("parse_diff",parse_diff_node)workflow.add_node("security_scan",security_scan_node)workflow.add_node("llm_review",llm_review_node)workflow.add_node("aggregate",aggregate_node)# 关键:根据扫描结果动态路由workflow.add_conditional_edges("security_scan",route_based_on_risk,{"high_risk":"llm_review",# 高风险进大模型深审"low_risk":"aggregate"# 低风险直接聚合})

这种设计让 Agent 既节省了 Token(简单代码不调用大模型),又保证了高危问题的检出率。

2. 多模型适配:国产模型友好

考虑到国内网络环境和成本,我并没有绑定 OpenAI。通过抽象 Provider 层,项目原生支持6 大主流模型

  • 🇺🇸OpenAI(GPT-5)
  • 🇺🇸Anthropic(Claude 4.5 Sonnet)
  • 🇨🇳智谱 AI(GLM-5)
  • 🇨🇳MiniMax(Abab 6.5s)
  • 🇨🇳阿里云(Qwen-Max)
  • 🇨🇳DeepSeek(V3)

配置极其简单,只需在 YAML 文件中切换:

llm:provider:minimax# 一行代码切换模型apiKey:${{secrets.LLM_API_KEY}}model:abab6.5s-chat

3. 置信度评分系统

为了避免“狼来了”,Agent 会对每个问题进行0-100% 的置信度打分

  • >90%:确认为严重漏洞(如明文密码),直接阻断 PR。
  • 60%-90%:疑似问题,标记为“需要人工确认”。
  • <60%:可能是误报,仅作为建议输出。

🚀 如何集成到你的项目?(3 步上手)

本项目设计了三种使用方式,最推荐GitHub Action模式,无缝集成 CI/CD。

方式一:GitHub Action(推荐,全自动)

Step 1: 在工作流目录创建.github/workflows/codereview.yml

name:CodeReview Agenton:[pull_request]jobs:review:runs-on:ubuntu-lateststeps:-uses:wanghenan/codereview-agent@v1with:config:.codereview-agent.yamlenv:LLM_API_KEY:${{secrets.LLM_API_KEY}}

Step 2: 创建配置文件.codereview-agent.yaml

llm:provider:minimaxapiKey:${{secrets.LLM_API_KEY}}model:abab6.5s-chat

Step 3: 在 GitHub Settings -> Secrets 中添加LLM_API_KEY

搞定!下次提交 PR 时,机器人会自动在评论区留下审查报告。

方式二:本地 CLI 调试

想在合并前本地先跑一遍?

gitclone https://github.com/wanghenan/codereview-agent.gitcdcodereview-agent/python pipinstall-e.# 运行审查python-mcodereview.cli--diffdiff.json

方式三:Docker 部署

适合私有化部署场景(即将支持):

dockerrun-v$(pwd):/app-eLLM_API_KEY=your-key wanghenan/codereview-agent--pr123

💡 核心亮点总结

  1. 智能分流:利用 LangGraph 实现动态路由,节省 40%+ 的 Token 消耗。
  2. 安全优先:内置 SQL 注入、XSS、硬编码密钥等 20+ 种安全规则模板。
  3. 国产化支持:完美适配智谱、阿里、MiniMax 等国产大模型,无需魔法。
  4. 极简配置:无需编写复杂 Prompt,YAML 配置文件即可定制规则。

🔮 后续计划

目前项目刚发布 v1 版本,后续计划更新:

  • 自动修复建议:不仅指出问题,还生成修复后的代码 Diff。
  • 自定义规则引擎:允许团队上传自己的代码规范文档。
  • 多语言支持:目前主要支持 Python/TS/JS,后续扩展 Go/Java。

📢 写在最后

开源的目的是为了共建更好的开发体验。如果你也觉得这个工具能提升团队的代码质量,欢迎给项目一个 Star ⭐️ 支持一下!

你的每一个 Star 都是我持续更新的动力。如果有好的建议或发现 Bug,欢迎提 Issue 或 PR。

👉传送门:https://github.com/wanghenan/codereview-agent

http://www.jsqmd.com/news/432038/

相关文章:

  • 如何找到靠谱的微信立减金兑换码回收平台?这几个技巧你一定要知道! - 团团收购物卡回收
  • 国内电机轴承源头工厂推荐 水泵电机/排污泵/油泵/液压泵专用角接触球轴承 - 博客万
  • 探讨邦亿客酒店一次性用品,口碑怎么样,2026年怎么选 - myqiye
  • Agent 越用越翻车,怎么破局?答案藏在经典管理学里
  • RK3506G SDK 编译报错 - 万象奥科HD-RK3506-EVM板
  • Python语言基础学习之Python基础之列表介绍和循环遍历
  • AI+XR融创实训室:破解职业院校数字媒体教学痛点的新路径
  • 分析深圳好用的国礼级植物基饮料,分享选购要点和口碑产品 - 工业设备
  • 盘点持久且有备案的植物基饮料价格表,深圳地区有哪些品牌值得推荐? - 工业品网
  • leetcode 1545. 找出第 N 个二进制字符串中的第 K 位 中等
  • 储存压力容器定制厂家哪家好用,结合口碑来看怎么选? - 工业品牌热点
  • HPE推出面向大规模AI架构的最新Juniper路由器
  • 2026年欧普士代理商最新盘点,助你找到靠谱合作伙伴 - 品牌推荐大师
  • 2026企业GEO优化四大优质服务商评估报告:中小企业如何选? - 博客湾
  • AMD与Meta达成千亿美元AI芯片合作协议
  • 图片加水印怎么弄?推荐一个免费在线水印工具
  • 分析国科化妆品研究好不好,广州国科化妆品研究公司的性价比排名 - 工业推荐榜
  • 微算法科技(NASDAQ :MLGO)量子决策树集成技术在DeFi协议中的应用:重塑去中心化金融的实时响应范式
  • langchain学习随笔02提示词模板PromptTemplate
  • 揭秘微信立减金兑换码的最佳回收平台,快速安全操作指南! - 团团收购物卡回收
  • 不是多做产品,而是重做入口:塞那蓝牙耳机的个人AI生态方法论
  • AT_abc292_c [ABC292C] Four Variables
  • 实测对比后 8个AI论文写作软件:专科生毕业论文+开题报告必备工具推荐
  • 每周读书与学习-Jmeter中如何使用Bean Shell脚本(一)Bean Shell的简介与安装
  • 伟伦家居:长春全屋定制头部品牌,先安装后付款,终身质保。
  • 微信立减金兑换码靠谱吗?教你选择正规回收平台,轻松变现! - 团团收购物卡回收
  • 冠珠新材驱动旧改升级,新明珠集团三大产业建筑美学焕新
  • 2026市面上最好的工业铝方管品牌推荐 - 品牌排行榜
  • 冠珠瓷砖荣获2025年度中国家居冠军榜“行业领军品牌”
  • 2026市面上比较好的徐州老房翻新装修公司推荐 - 品牌排行榜