AI Coding Assistant - 代码缺陷修复和分析工具
Project description
基于Langchian1.0和Deepagents,实现项目问题检测->自动修复->效果验证的闭环
- 人机交互 - 直观高效的命令行界面,同时支持web界面
- 精准修复 - 基于深度分析提供针对性修复方案并在human-in-loop下执行修复
- 持续学习 - 具备记忆能力,越用越智能
基于Deepagents的Three-subagents架构
1. 缺陷分析代理 (defect-analyzer)
- 语法分析 - 检测语法错误、类型错误、导入错误
- 逻辑分析 - 识别逻辑漏洞、边界条件处理不当
- 性能分析 - 发现性能瓶颈、资源泄漏问题
- 安全分析 - 检查SQL注入、XSS、权限绕过等安全漏洞
2. 代码修复代理 (code-fixer)
- 智能修复 - 基于分析报告自动生成修复代码
- 策略优化 - 从多个修复方案中选择最优解
- 兼容性保证 - 确保修复不会引入新的问题
3. 修复验证代理 (fix-validator)
- 测试验证 - 运行单元测试和集成测试
- 静态分析 - 验证代码质量标准
- 安全扫描 - 确保修复无安全风险
全面的技术栈支持
支持主流编程语言的代码质量分析:
- Web开发 - JavaScript, TypeScript, HTML, CSS
- 后端开发 - Python, Java, Go, Node.js
- 系统编程 - C, C++, Rust
- 移动开发 - Swift, Kotlin
- 数据科学 - Python, R
智能工具生态
- 统一工具链 - 集成pylint, flake8, mypy, bandit, black, eslint等
- 智能聚合 - 语义相似度缺陷聚类分析
- 项目探索 - 结构分析和复杂度评估
- 智能测试 - 自动生成和执行验证测试
现代化用户体验
双模式支持
CLI模式
- 快速、高效的命令行交互
- 丰富的键盘快捷键和自动补全
- 支持多行输入和编辑器集成
Web模式 - 直观的图形化界面
- 友好的浏览器界面
- 可视化的代码质量报告
人机交互
- 打字机效果 - 动态文本输出增强体验
- 实时进度指示 - 清晰显示处理进度,实时监控Agent的行为,调用工具manual和auto两种模式
- 智能提示系统 - /command建议和补全
- 中断支持 - 随时中断长时间运行的分析
安全防护
- 文件安全中间件 - 防止恶意文件访问和路径遍历
- 命令安全中间件 - 限制Shell命令执行范围,精细的文件和目录访问权限控制
- 内容安全中间件 - 过滤敏感信息和恶意内容,防止API等信息泄露
快速开始
环境要求
- Python 3.11+
- 支持的操作系统:macOS, Linux
安装
Clone
# 克隆项目
git clone https://github.com/3uyuan1ee/Fix_agent.git
cd Fix_agent
# 安装依赖
pip install -r requirements.txt
# 安装Fix Agent
pip install -e .
PYPI
包已上传到PYPI,支持在python环境下pip一键安装
# 建议在虚拟python环境下安装
pip install Fix-agent
配置
# 支持自动配置,若检测到为配置,启动会引导进行配置,只需获取API即可
#手动配置
# 配置环境变量
export OPENAI_API_KEY="your-api-key"
# 或创建.env文件
echo "OPENAI_API_KEY=your-api-key" > .env
# 如需使用国内模型还需配置base_url
OPENAI_API_BASE=https://open.bigmodel.cn/api/paas/v4/
# 若要启动联网搜索,还需配置Tavily API Key
TAVILY_API_KEY=your_tavily_api_key_here
点这里获取TAVILY_API
启动使用
# 启动Fix Agent
fixagent
# 查看帮助
fixagent help
# 列出可用的agents
fixagent list
高级功能
记忆系统
Fix Agent具备长期记忆能力,能够:
- 支持编辑记忆 - 可根据需求给予Agents记忆和知识
- 学习修复模式 - 根据历史修复优化建议
- 个性化偏好 - 记住用户的编码风格和偏好
# 编辑记忆内容
/memory edit
# 查看记忆内容
/memory view
# 搜索特定问题的记忆
/memory search SQL注入
# 清理记忆内容
/memory clear
技术架构
- 异步处理 - 基于asyncio的高性能异步架构
- 流式处理 - 实时显示分析进度和结果
- 模块化设计 - 插件化的工具和中间件系统,用户可自定义
系统架构
graph TD
A[用户输入] --> B[中间件管道系统]
B --> C[性能监控]
B --> D[日志记录]
B --> E[上下文增强]
B --> F[分层记忆]
B --> G[框架默认]
B --> H[安全检查]
B --> I[Shell工具]
J --> T[智能工具链]
T --> T1[代码分析工具]
T --> T2[静态检查工具]
T --> T3[格式化工具]
T --> T4[测试工具]
T --> T5[安全扫描工具]
C --> J[三段式代理架构]
D --> J
E --> J
F --> J
G --> J
H --> J
I --> J
T --> J
J --> K[缺陷分析代理]
J --> L[代码修复代理]
J --> M[修复验证代理]
K --> N[输出结果]
L --> N
M --> N
贡献指南
我们欢迎社区贡献!您可以通过以下方式参与:
报告问题
功能建议
- 提出新功能想法
- 讨论实现方案
- 提供用户反馈
代码贡献
- Fork项目
- 创建功能分支
- 提交Pull Request
- 参与代码审查
文档改进
- 改进用户文档
- 添加使用示例
- 翻译多语言版本
许可证
本项目采用MPL-2.0许可证,详见LICENSE文件。
致谢
感谢所有为Fix Agent项目做出贡献的开发者和用户,感谢开源社区提供的优秀工具和库,让这个项目成为可能。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fix_agent-1.0.0.tar.gz
(296.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
fix_agent-1.0.0-py3-none-any.whl
(237.0 kB
view details)
File details
Details for the file fix_agent-1.0.0.tar.gz.
File metadata
- Download URL: fix_agent-1.0.0.tar.gz
- Upload date:
- Size: 296.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8565533544eda2fe850e551a435e504917e2e162a38b4e212d3bdedac881116
|
|
| MD5 |
9403fa296210191fbcfa58f7fc5f06a2
|
|
| BLAKE2b-256 |
57c60f3e6c7ee4db540028b2296a750c31231503abcf93deec54d49af8cefcd9
|
File details
Details for the file fix_agent-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fix_agent-1.0.0-py3-none-any.whl
- Upload date:
- Size: 237.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f53037a9cbac331692db17262a31d67404272db633089cad4e872d76b78edbf8
|
|
| MD5 |
a55f3a25aa3dca7c85397da20b0a42ca
|
|
| BLAKE2b-256 |
6420417c14f1ea54ecaf6fe508088c8a89511490edb3b82c52205d306b6954fc
|