代码审查AI代理

一个智能AI代理,能够分析、理解并建议改进GitHub仓库中的代码,使用LangChain、Azure OpenAI和MCP技术。

  • by RitheshSuresh
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 RitheshSuresh/MCPAgenticApp

使用说明

🤖 AI代码审查代理(LangChain+Azure OpenAI+MCP)

一个智能AI代理,可以 分析、理解GitHub存储库中的代码,并提出改进建议 使用:

  • LangChain(代理编排)
  • Azure OpenAI(GPT-5纳米)
  • 模型上下文协议(MCP)
  • GitHub MCP服务器(工具访问)

🚀 概述

该项目演示了如何构建 可以与现实世界系统交互的AI Agent(GitHub) 而不仅仅是回答问题。

代理人:

  • 从GitHub存储库读取代码
  • 理解逻辑
  • 识别效率低下和错误
  • 建议优化改进

🧠 建筑

User Prompt
     ↓
LangChain Agent
     ↓
Azure OpenAI (GPT-5 nano)
     ↓
MCP (Model Context Protocol)
     ↓
GitHub MCP Server
     ↓
GitHub Repository
     ↓
Code Analysis + Suggestions

🔧 组件

🧠 Azure OpenAI(GPT-5纳米)

  • 提供推理和代码理解
  • 生成解释和优化

🧩 LangChain 代理

  • 编排工作流程
  • 决定何时调用工具
  • 处理多步骤推理

🔌 MCP(模型上下文协议)

  • 工具使用的标准界面
  • 消除了对自定义API集成的需要

🛠 GitHub MCP服务器

  • 将GitHub功能作为工具公开:

    • list files
    • get_file_contents
    • search_code
    • create_pull_request (可选)

🔐 GitHub个人访问令牌(PAT)

  • 存储库访问的安全身份验证

⚙️ 运作原理

1.️⃣ 用户提示

Analyze this repository and suggest improvements

2.️⃣ 代理规划

代理人决定:

  • 首先探索存储库结构
  • 然后阅读相关文件

3.️⃣ 工具执行(通过MCP)

代理调用以下工具:

list_files → get_file_contents

4.️⃣ 数据检索

GitHub返回:

  • 文件结构
  • 代码内容

5.️⃣ AI推理

该模型分析:

  • 代码逻辑
  • 效率低下
  • 漏洞

6.️⃣ 输出

代理生成:

  • 代码说明
  • 发现的问题
  • 优化建议
  • 改进的代码片段

📦 设置

1.️⃣ 创建虚拟环境(PowerShell)

py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1

2.️⃣ 安装依赖项

pip install langchain langchain-openai langchain-mcp-adapters python-dotenv

3.️⃣ 配置环境变量

创建一个 .env 文件:

AZURE_OPENAI_API_KEY=your_key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=your_deployment_name

GITHUB_PAT=your_github_token
GITHUB_MCP_URL=https://api.githubcopilot.com/mcp/

4.️⃣ 运行代理

python app.py

🧪 示例用例

该代理可以分析低效的Python代码,例如:

  • 嵌套循环(O(n²))
  • 手动实现内置函数
  • 算法设计不佳

并建议:

  • 优化算法
  • 更简洁的Python代码
  • 更好的结构和可读性

📊 样本输出

Summary:
The repository contains a Python script for basic operations.

Issues:
- Inefficient duplicate detection (O(n²))
- Manual sum calculation
- Suboptimal prime checking

Suggestions:
- Use set() for duplicates
- Use sum() built-in
- Optimize prime check using sqrt(n)


🧠 类比

LLM → Brain 🧠  
LangChain → Manager 📋  
MCP → Translator 🌉  
GitHub → Workspace 📂  

🚀 未来的增强功能

  • 自动创建带有修复的拉取请求
  • 与CI/CD管道集成
  • 添加对多个存储库的支持
  • 连接到云工具(AWS、Azure计费等)

🎤 单行摘要

一个AI代理,通过MCP使用标准化的工具集成,自主读取、理解和改进GitHub存储库中的代码。


👉 或创建 此README的图表图像 👉 或者让它看起来像一个精致的投资组合项目⭐