多代理代码生成器

一个基于MCP多代理系统的代码生成工具,通过自然语言描述生成应用代码、测试用例及运行指南。

  • by Eric-Estrada519
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Eric-Estrada519/MCP_Code_Generator

使用说明

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次自动生成单元测试

所有内容都是通过MCP工具在运行时动态生成的。 从这个目录运行应用程序,它应该在/generated_output中生成一个文件 或者,您可以从GUI拖动下载的zip 如果你打开else,你需要pip安装Gradio和Pytest