多智能体编排平台

一个由中央监督代理管理的多智能体编排系统,支持分布式执行和单一命令启动关闭,适用于数据处理、机器学习和可视化任务。

  • by M22AIE224
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 M22AIE224/Supervisor_Agentic_MCP

使用说明

多代理编排平台

主管→ 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_代理/← 实施ml代理 │ ├── dv_agent/← 实施dv代理 │ ├── 主管/代理人← 执行主管 │ ├── 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 │ ├── 数据/← 源数据 │ └── source_data.csv └── 人工制品/← 处理结果 ├── 数据结果/ ├── ml_结果/ └── dv_结果/

如何跑步====================================

步骤1:环境设置

--------------------------------------------------------------------------------

pip安装-r要求.txt

--------------------------------------------------------------------------------

步骤2。启动所有MCP和代理

从项目根:

--------------------------------------------------------------------------------

.\scripts\start_all.bat

--------------------------------------------------------------------------------

这将启动:

所有MCP服务器(数据/ML/DV)

所有代理(数据/ML/DV)

日志被流式传输到脚本/Logs/。

步骤3。启动主管代理

单独运行Supervisor:

--------------------------------------------------------------------------------

python-m管理员代理代理主

--------------------------------------------------------------------------------

一旦运行,主管将:

发现可用的MCP和代理

通过A2A进行通信

执行整个管道(数据→ ML → DV)

步骤4。停止所有代理和MCP

要优雅地停止所有后台服务:

--------------------------------------------------------------------------------

.\scripts\stop_all.bat

--------------------------------------------------------------------------------

这将终止启动脚本生成的所有python进程。

工作流程示例=============================

主管输入:

加载路径=。/data/source_data.csv;COLUMNS=年龄、收入;TARGET=目标;保存=。/artifacts/data_results/processed_data.csv

执行链:

主管→ (A2A)→ 数据代理→ (MCP_DATA) → (A2A)→ ML代理→ (MCP_ML) → (A2A)→ DV代理→ (MCP_DV)

输出====================================

已清理数据→ ./工件/数据结果

训练有素的模特→ ./工件/ml_结果/

可视化→ ./工件/dv-results/

===============伐木和文物========================

文件夹

scripts/logs/#所有组件的运行时日志 artifacts/data_results/#中间清理数据 artifacts/ml_results/#模型工件和指标 artifacts/dv_results/#可视化文件

技术栈

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中

作者

普拉巴·夏尔马