INF119最终项目——MCP多代理代码生成器(已修补)
埃里克·艾斯特拉达
姓名:伊万·冈萨雷斯
Chitubem Adinna
阿利亚斯·托马斯
该项目使用MCP(模型上下文协议)实现了一个多代理系统,用于代理之间的通信。它公开了一个Gradio GUI,该GUI接受所需软件应用程序的自然语言描述,并返回一个ZIP文件,其中包含:
- 生成的应用程序代码(Python)
- 生成的测试用例(Python,至少有10个测试)
- 关于如何运行应用程序和测试的说明
所有应用程序和测试代码都是由调用外部LLM的MCP工具在运行时生成的(Google Gemini通过 langchain_google_genai),并跟踪模型使用情况。
稳定性:
- MCP服务器延迟初始化LLM,如果初始化失败,则返回明确的错误字符串。
- Gradio分析被禁用,以避免pandas+Python 3.12问题。
- API密钥可以通过
.env或环境变量。
对于评分,主要输入将是粘贴到GUI中的“卡路里燃烧器”描述。
______________________________________________________________________
0.重要设置说明(请先阅读)
这个项目 必须使用Python 3.10或3.11.\ Python 3.12不受支持 (多个依赖关系中断,包括tiktoken、Gradio分析等)。
如果您的系统默认显示如下内容:
/Library/Frameworks/Python.framework/Versions/3.12/bin/python3那么你 必须明确使用 python3.11. 如果你遇到错误,你可能需要通过以下方式安装python 3.11 https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg适用于 Mac https://www.python.org/ftp/python/3.11.9/python-3.11.9-amd64.exe对于Windows
______________________________________________________________________
1.新安装(推荐用于平地机/新机器)
从一个干净的文件夹开始,克隆存储库:
git clone https://github.com/Eric-Estrada519/MCP_Code_Generator.git
cd MCP_Code_Generator______________________________________________________________________
2.创建本地虚拟环境
创建虚拟环境 在项目文件夹内:
对于Mac
python3.11 -m venv .venv对于窗口 选项A(推荐):
py -3.11 -m venv .venv选项B(如果缺少py):
python -m venv .venv
激活它:
适用于 Mac
source .venv/bin/activate对于Windows
.\.venv\Scripts/activate验证您是否使用了正确的Python:
对于Mac
which python对于 Windows
Get-Command python预期输出(示例):
…/IN4MATX119_Final_Project/.venv/bin/python如果它显示系统Python 3.12路径,则venv未正确激活。
______________________________________________________________________
3.安装所需的依赖项
启动venv后:
对于Mac
pip install --upgrade pip
pip install -r requirements.txt对于 Windows
python.exe -m pip install --upgrade pip
pip install -r requirements.txt这将安装:
- MCP服务器框架
- 朗链客户端
- 谷歌GenAI工具
- Gradio图形用户界面
- ZIP实用程序
- 模型使用跟踪器
______________________________________________________________________
4.创建您的 .env 文件
项目需要一个包含API密钥的环境变量。
通过运行下面的bash或自己创建文件:
touch .env将以下行添加到您创建的.env文件中:
GOOGLE_API_KEY=your_api_key_here
GEMINI_API_KEY=your_api_key_here______________________________________________________________________
5.运行应用程序
一旦venv激活:
对于Mac
python3 -m gui.gradio_app对于 Windows
python -m gui.gradio_app或
py -m gui.gradio_app请勿奔跑:
python3 gui/gradio_app.py这破坏了Python模块的解析。
运行正确的命令会在浏览器中启动Gradio GUI,您可以在其中粘贴分配提示(例如“卡路里燃烧器”)并生成可交付的ZIP。
______________________________________________________________________
6.VS代码用户:选择正确的解释器
如果使用VS代码:
⌘ + Shift + P → “Python: Select Interpreter”选择:
./.venv/bin/python (Mac)
.\.venv\Scripts\python (Windows)这可以防止VS Code意外使用Python 3.12。
______________________________________________________________________
7.确保 .venv 和 .env 在VS代码中可见
如果你看不到文件:
VS Code默认隐藏点文件。
启用可见性:
Settings → search "files.exclude"或者明确取消隐藏:
"files.exclude": {
"**/.venv": false,
"**/.env": false
}______________________________________________________________________
8.项目结构
├── gui/
│ └── gradio_app.py # GUI entry point
├── mcp_servers/
│ ├── codegen_server.py # MCP server: generates application code
│ ├── testgen_server.py # MCP server: generates 10+ test cases
│ └── refinement_server.py # MCP server: refinement pass
├── orchestrator/
│ ├── orchestrator_client.py # Coordinates all MCP server tools
│ └── zip_util.py # Builds final ZIP
├── model_tracker.py # Tracks model usage across agents
├── requirements.txt
└── README.md______________________________________________________________________
9.生成的ZIP包含什么
运行GUI会产生:
app/--完整的应用程序源代码tests/--≥10次自动生成单元测试
