受够了低效的代码审查?我用 LangGraph 打造了一款 AI 代码审查神器,自动拦截 SQL 注入(开源)
团队代码审查耗时太长?漏掉硬编码密钥导致安全事故?本文分享一款基于 LangChain + LangGraph 的自动化 CodeReview Agent,支持 6 种大模型(含国产),能精准识别高风险代码并给出修复建议。内含架构设计与核心实现,项目已开源,欢迎 Star!🌟 项目地址:https://github.com/wanghenan/codereview-agent
摘要:团队代码审查耗时太长?漏掉硬编码密钥导致安全事故?本文分享一款基于 LangChain + LangGraph 的自动化 CodeReview Agent,支持 6 种大模型(含国产),能精准识别高风险代码并给出修复建议。内含架构设计与核心实现,项目已开源,欢迎 Star!
😫 痛点:为什么我们需要自动化 CodeReview?
在日常开发中,你是否也遇到过这样的场景:
- 人工 Review 太慢:一个复杂的 PR,资深开发要花 30 分钟逐行看,成为合并瓶颈。
- 低级错误频出:明明有 SQL 注入风险、硬编码的 API Key,却因为疲劳被肉眼忽略。
- 标准不统一:不同人对代码规范的把握不一,导致代码风格割裂。
- 大模型幻觉:直接用 ChatBot 审查,它经常胡说八道,或者只给泛泛而谈的建议,无法集成到 CI/CD 流程中。
为了解决这些问题,我利用周末时间,基于 LangChain 和LangGraph 框架,开发了一款 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 Agent
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: wanghenan/codereview-agent@v1
with:
config: .codereview-agent.yaml
env:
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
Step 2: 创建配置文件 .codereview-agent.yaml
llm:
provider: minimax
apiKey: ${{ secrets.LLM_API_KEY }}
model: abab6.5s-chat
Step 3: 在 GitHub Settings -> Secrets 中添加 LLM_API_KEY。
搞定!下次提交 PR 时,机器人会自动在评论区留下审查报告。
方式二:本地 CLI 调试
想在合并前本地先跑一遍?
git clone https://github.com/wanghenan/codereview-agent.git
cd codereview-agent/python
pip install -e .
# 运行审查
python -m codereview.cli --diff diff.json
方式三:Docker 部署
适合私有化部署场景(即将支持):
docker run -v $(pwd):/app -e LLM_API_KEY=your-key wanghenan/codereview-agent --pr 123
💡 核心亮点总结
- 智能分流:利用 LangGraph 实现动态路由,节省 40%+ 的 Token 消耗。
- 安全优先:内置 SQL 注入、XSS、硬编码密钥等 20+ 种安全规则模板。
- 国产化支持:完美适配智谱、阿里、MiniMax 等国产大模型,无需魔法。
- 极简配置:无需编写复杂 Prompt,YAML 配置文件即可定制规则。
🔮 后续计划
目前项目刚发布 v1 版本,后续计划更新:
- ✅ 自动修复建议:不仅指出问题,还生成修复后的代码 Diff。
- ✅ 自定义规则引擎:允许团队上传自己的代码规范文档。
- ✅ 多语言支持:目前主要支持 Python/TS/JS,后续扩展 Go/Java。
📢 写在最后
开源的目的是为了共建更好的开发体验。如果你也觉得这个工具能提升团队的代码质量,欢迎给项目一个 Star ⭐️ 支持一下!
你的每一个 Star 都是我持续更新的动力。如果有好的建议或发现 Bug,欢迎提 Issue 或 PR。
更多推荐


所有评论(0)