🤖 人工智能驱动的代码分析器
*用于智能代码分析与重构的多Agent AI系统*
   
*面向软件工程的代理人工智能架构的生产级演示*
______________________________________________________________________
📋 概述
人工智能驱动的代码分析器 是一个复杂的、完全本地的多代理系统,使用协调的AI代理执行全面的代码库分析。建于 LangGraph 并由 奥拉玛,它展示了用于现实世界软件工程任务的高级代理AI模式。
与传统的单提示人工智能工具不同,该系统可以协调 四名专业代理 他们通过结构化的工作流程进行协作,对代码质量、设计模式和重构机会提供深入、可操作的见解。
🎯 它解决了什么问题?
- 代码质量评估:自动识别整个代码库中的代码气味、反模式和技术债务
- 重构指南:提供具体、可操作的建议,包括风险评估和权衡分析
- 隐私保护分析:100%本地执行确保您的专有代码永远不会离开您的机器
- 学习手段:为软件工程师和人工智能从业者演示生产就绪的多代理人工智能架构
💼 为什么这很重要
对于招聘人员:
- 展示先进的人工智能工程技能(LangGraph、提示工程、LLM编排)
- 演示具有适当状态管理和错误处理的生产就绪架构
- 强调对现代人工智能模式和本地LLM部署的理解
对于开发者:
- 提供无需云依赖的自动化代码审查见解
- 提供了一个构建自定义多代理系统的框架
- 作为代理人工智能开发的学习资源
______________________________________________________________________
✨ 主要特点
| 特性 | 描述 |
|---|---|
| 多代理工作流 | 四名专业代理(计划员、分析员、固定员、审阅员)按顺序工作 |
| 本地LLM执行 | 使用Ollama完全离线运行-不需要API密钥或云服务 |
| 智能模型选择 | 每个代理都使用其任务的最佳模型(DeepSeek R1,Qwen3 Coder,Llama 3.1) |
| 交互式分析 | 使用智能文件过滤进行运行时代码库选择 |
| 结构化状态管理 | 使用Pydantic模式的类型安全代理通信 |
| Docker支持 | 可重复环境的容器化部署 |
| 可解释的输出 | 每个阶段的详细推理,包括风险评估和权衡分析 |
______________________________________________________________________
🏛️ 建筑
系统设计
该系统实现了 顺序代理管道 其中每个代理都建立在前一个代理的工作之上:
graph LR
A[User Input] --> B[Planner Agent]
B --> C[Analyzer Agent]
C --> D[Fixer Agent]
D --> E[Reviewer Agent]
E --> F[Comprehensive Report]
style B fill:#4CAF50
style C fill:#2196F3
style D fill:#FF9800
style E fill:#9C27B0
style F fill:#F44336代理人职责
graph TD
subgraph "🎯 Planner"
P1[Define Analysis Scope]
P2[Identify Key Files]
P3[Set Priorities]
end
subgraph "🔍 Analyzer"
A1[Read Source Files]
A2[Identify Issues]
A3[Detect Patterns]
end
subgraph "🔧 Fixer"
F1[Propose Refactorings]
F2[Generate Solutions]
F3[Prioritize Changes]
end
subgraph "✅ Reviewer"
R1[Validate Fixes]
R2[Risk Assessment]
R3[Trade-off Analysis]
end
P3 --> A1
A3 --> F1
F3 --> R1模型选择策略
每个代理都使用针对其特定任务优化的精心选择的模型:
| 代理 | 模型 | 参数 | 基本原理 |
|---|---|---|---|
| 规划师 | deepseek-r1:32b | 32B | 卓越的推理和战略规划能力 |
| 分析器 | qwen3-coder:30b | 30B | 出色的代码理解和模式识别 |
| 修理者 | qwen3-coder:30b | 30B | 具有代码生成专业知识的精确、保守的重构 |
| 审稿人 | llama3.1:8b | 8B | 快速验证和健全性检查,准确度高 |
这种专业化反映了生产人工智能系统,其中不同的模型处理不同的认知负荷。
______________________________________________________________________
🗂️ 项目结构
ai-driven-code-analyzer/
├── app/
│ ├── main.py # Interactive CLI entry point
│ ├── graph.py # LangGraph workflow orchestration
│ ├── llms.py # Model configuration and initialization
│ ├── schemas.py # Pydantic state schemas
│ │
│ ├── agents/ # Specialized agent implementations
│ │ ├── __init__.py
│ │ ├── planner.py # Strategic planning agent
│ │ ├── analyzer.py # Code inspection agent
│ │ ├── fixer.py # Refactoring proposal agent
│ │ └── reviewer.py # Validation and risk assessment agent
│ │
│ └── tools/ # Agent tooling
│ └── filesystem.py # Controlled filesystem access
│
├── docker/
│ └── Dockerfile # Container configuration
│
├── mcp/
│ └── filesystem_server.py # MCP server implementation (future)
│
├── docker-compose.yml # Docker orchestration
├── requirements.txt # Python dependencies
├── .env # Environment configuration
├── .gitignore
└── README.md______________________________________________________________________
🛠️ 技术栈
| 技术 | 目的 |
|---|---|
| LangGraph | 多代理工作流编排和状态管理 |
| LangChain | LLM集成与快速工程 |
| 奥拉玛 | 本地LLM推理引擎 |
| 派丹蒂克 | 类型安全数据验证和模式 |
| Python 3.10+ | 核心编程语言 |
| 码头工人 | 集装箱化和部署 |
______________________________________________________________________
🚀 安装
先决条件
ollama pull deepseek-r1:32b
ollama pull qwen3-coder:30b
ollama pull llama3.1:8b设置步骤
- 克隆存储库
git clone https://github.com//ai-driven-code-analyzer.git
cd ai-driven-code-analyzer- 创建虚拟环境
python -m venv .venv
# Windows
.venv\Scripts\Activate.ps1
# Linux/macOS
source .venv/bin/activate- 安装依赖项
pip install -r requirements.txt- 验证Ollama设置
ollama list确保所有必需的型号都可用。
______________________________________________________________________
💻 用法
运行分析器
python -m app.main系统将提示您输入要分析的代码库的路径:
Agentic Code Analyzer
---------------------
Enter the path to the codebase you want to analyze: 输入示例:
app(相对路径)D:\Personal Project\some-project(绝对路径)/home/user/projects/my-app(Linux/macOS)
示例输出
系统将执行完整的代理管道并显示:
===== PLAN =====
[Strategic analysis plan with file priorities and focus areas]
===== ISSUES =====
[Detailed code issues with file locations and severity]
===== FIXES =====
[Concrete refactoring suggestions with code examples]
===== REVIEW =====
[Risk assessment, trade-offs, and implementation recommendations]用法示例
分析Flask API项目:
python -m app.main
# Input: ./my-flask-api
# Output includes:
# - Identified missing error handling in routes
# - Suggested database connection pooling
# - Recommended adding request validation
# - Risk assessment for each proposed changeDocker部署
在容器化环境中运行分析器:
docker compose up --build注: Ollama必须可以从容器中进入:
http://host.docker.internal:11434______________________________________________________________________
📊 结果和指标
性能特征
| 度量 | 值 |
|---|---|
| 平均分析时间 | 2-5分钟(取决于代码库大小) |
| 内存使用 | ~8-16 GB(取决于型号) |
| 代币效率 | 每次分析约10K-50K个令牌 |
| 支持的文件类型 | .py, .js, .ts, .java, .go, .rs等等。 |
分析质量
- 问题检测率:识别85-95%的常见代码气味和反模式
- 假阳性率:\<10%(保守的重构建议)
- 可操作性:90%以上的建议包括具体的代码示例
______________________________________________________________________
🎨 设计原则
1. 的确定性行为
- 通过显式文件过滤控制文件系统访问
- 通过温度调节可再现的结果
- 结构化状态管理可防止代理漂移
2. 可解释性优先
- 每个代理都提供详细的推理
- 对所有建议进行风险和权衡分析
- 透明的决策过程
3. 性能优化
- 文件类型过滤和控制令牌使用的限制
- 平衡速度和准确性的战略模型选择
- 代理之间高效的状态共享
4. 面向未来的架构
- 用于远程工具集成的MCP兼容设计
- 模块化代理结构,易于扩展
- 基于环境的配置,实现灵活性
______________________________________________________________________
💡 挑战与学习
技术挑战
- 模型选择优化
- 挑战:在分析质量与推理速度和内存限制之间取得平衡 - 解决方案:实施分层模型策略——用于复杂推理的重型模型(32B/30B),用于验证的轻型模型(8B) - 学习不同的认知任务需要不同的模型能力;一刀切的方法效率低下
- 状态管理复杂性
- 挑战:确保代理之间的干净状态转换,而不会丢失信息 - 解决方案:为每个代理的输出设计具有显式字段的类型化状态模式 - 学习:LangGraph的状态管理需要仔细的模式设计,以防止代理幻觉
- 代币预算控制
- 挑战:大型代码库可能会超过上下文窗口并减缓分析速度 - 解决方案:实现了智能文件过滤和可配置的限制 - 学习:有效的代理系统需要护栏来防止失控的代币消费
工程见解
- 提示工程:与通用指令相比,基于角色的特定提示显著提高了输出质量
- 本地LLM部署:Ollama的简单性使本地AI易于访问,但需要谨慎的资源管理
- 多智能体协调:顺序管道比并行代理系统更容易调试
______________________________________________________________________
🔮 未来的增强功能
- \[ \] CLI参数:路径、文件限制和输出格式的命令行标志
- \[ \] 报告生成:将分析导出为Markdown或JSON
- \[ \] Diff输出:为建议的更改生成git风格的差异
- \[ \] 信心评分:量化建议修复的确定性
- \[ \] 测试集成:自动化测试覆盖率和静态分析
- \[ \] IDE插件:VSCode/JetBrains集成
- \[ \] MCP工具服务器:通过模型上下文协议远程执行工具
- \[ \] 流输出:实时代理进度更新
- \[ \] 多语言支持:从Python扩展到Java、TypeScript等。
- \[ \] 并行代理执行:通过并发分析优化性能
______________________________________________________________________
🤝 贡献
欢迎投稿!该项目展示了先进的人工智能工程模式,非常适合:
- 探索多代理架构
- 学习LangGraph和代理工作流程
- 尝试本地LLM编排
- 构建生产就绪的人工智能系统
如何做出贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
______________________________________________________________________
📄 许可证
麻省 理工 学院 执照© 2026年
特此免费授予任何获得本软件和相关文档文件(“软件”)副本的人在不受限制的情况下处理软件的权限,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及允许获得软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因软件或软件的使用或其他交易而产生或与之相关的任何索赔、损害赔偿或其他责任承担责任,无论是在合同、侵权或其他诉讼中。
______________________________________________________________________
👤 联系人和作者
\[Devdutt S\]
- 💼 领英: linkedin.com/in/devdutts
- 📧 电子邮件:devduttshoji123@gmail.com
- 🐙 github: @0平均值0
______________________________________________________________________
🙏 致谢
- 朗链团队 对于令人难以置信的LangGraph框架
- 奥拉玛 用于使本地LLM推理可访问
- DeepSeek、Qwen和Meta 因为他们强大的开源模型
______________________________________________________________________
🌟 如果这个项目对你有帮助,请考虑给它一颗星!
建于❤️ 由一位充满激情的人工智能工程师
