多代理编排平台
主管→ A2A → 代理→ MCP架构
______________________________________________________________________
=========概述==============
该项目实现了 多代理编排系统 其中一个中心 主管代理 管理专业下游 代理 (规划、数据提取、可视化等)通过 A2A(代理人对代理人) 消息传递。\ 每个代理都通过专用的 MCP(模型控制平面) 服务。
设计支持 分布式执行, 清晰的关注点分离,以及 单命令启动和关闭.
______________________________________________________________________
=========建筑============
流程图 S-->【监管代理】-->|A2A消息|A1\[数据代理\] S->|A2A消息|A2\[ML代理\] S->|A2A消息|A3\[DV代理\]
A1 -->|MCP API| M1[MCP_DATA]
A2 -->|MCP API| M2[MCP_ML]
A3 -->|MCP API| M3[MCP_DV]=========流量汇总===========
Supervisor Agent接收任务或管道命令。
它向相关代理发送A2A JSON-RPC消息。
每个代理执行其功能并与其各自的MCP后端交互。
结果在链上返回→ 由主管汇总→ 记录并保存。
=========组件============
主管代理中央控制器,通过A2A协调所有代理工作流。 数据代理处理数据摄取、清理、功能工程。 ML Agent训练ML模型,评估结果并导出指标。 DV Agent生成可视化和分析报告。 MCP服务器每个代理用于执行数据/模型/可视化任务的REST接口。 start_all.bat/stop_all.bat一键启动和关闭所有MCP和代理。
=========目录布局===========
代码/ ├── 代理商/ │ ├── 数据代理/← 实现数据提取代理 │ ├── ml_代理/← 实施计划代理 │ ├── dv_agent/← 实现可视化代理 │ ├── 主管/代理人← 执行主管 │ ├── agent_main.py\ │ ├── supervisor_agent.py │ ├── mcp服务器/← 实施MCP │ ├── mcp_data.py │ ├── mcp_ml.py │ ├── mcp_dv.py │ ├── 脚本/ │ ├── start_all.bat← 启动所有代理+MCP │ ├── stop_all.bat← 优雅地停止一切 │ └── 日志/← 所有执行日志 │ ├── data_agent.log │ ├── ml_agent.log │ ├── dv_agent.log │ ├── mcp\*.log │ ├── 学生\_ ui/← 用户界面 │ └── app.py │ ├── 数据/← 源数据 │ └── api.txt └── 人工制品/← 用户查询后的处理结果 └── user_results/
如何跑步====================================
步骤1:环境设置
-----------------------------------
pip安装-r要求.txt
-----------------------------------
步骤2:LLM密钥设置
----------------------------------
更新/data/apy_KEY.txt中的LLM API密钥
----------------------------------
步骤3。启动所有MCP和代理
从项目根:
-----------------------------------
.\\scripts\\start_all.bat
------------------------------------
这将启动:
所有MCP服务器(数据/ML/DV)
所有代理(数据/ML/DV)
日志被流式传输到脚本/Logs/。
步骤4。启动主管代理
单独运行Supervisor:
--------------------------------------
python-m管理员代理代理主
---------------------------------------
一旦运行,主管将:
发现可用的MCP和代理
通过A2A进行通信
执行整个管道(数据→ ML → DV)
步骤5。启动Flask应用程序以获取用户输入
单独运行学生UI Flask应用程序:
--------------------------------------
python\\student_ui\\app.py
---------------------------------------
步骤6。打开学生用户界面浏览器
使用URL打开浏览器http://127.0.0.1:5000
a输入用户查询:
什么是Acedemic Calander
- 向我展示UG程序和课程
- 我能看看最新的所有课程吗
b点击询问
#c浏览器将返回预期结果
步骤7。应用程序使用完成后,停止所有代理和MCP服务器
要优雅地停止所有后台服务:
------------------------------------
.\\scripts\\stop_all.bat
------------------------------------
这将终止启动脚本生成的所有python进程。
=========工作流示例==========
执行链:
学生URI→ 主管→ (A2A)→ 数据代理→ (MCP_DATA) → (A2A)→ ML代理→ (MCP_ML) → (A2A)→ DV代理→ (MCP_DV)
=========输出===================
学生要求的所有数据都存储在以下文件夹中
可视化→ ./student_ui/static/资源 用户响应HTML→ ./工件/用户结果/
=========日志和工件======
文件夹
scripts/logs/#所有组件的运行时日志 artifacts/User_results/#学生HTML响应的副本
技术栈
Python 3.12
LangGraph/LangChain
A2A(代理到代理)消息传递
MCP(模型控制平面)API
异步IO+httpx
通过批处理脚本记录+环境编排
=======快速参考=================
指挥目的 .\\scripts\\start_all.bat启动所有代理+MCP python-m supervisor_agent_main启动supervisor .\\scripts\\stop_all.bat停止所有服务
=========扩展平台===========
您可以轻松添加新的专用试剂和MCP:
在agents/下添加一个新文件夹(例如predict_agent/)
在mcp_servers下创建mcp_forecast.py/
将其登记在主管的发现例程中
将其添加到start_all.bat和stop_aall.bat中
作者
普拉巴·夏尔马 M22AIE224
Mtech执行官
