内容
# 二级多智能体MCP项目
### CrewAI + MCP Server + Streamlit 数据分析平台
一个完整的**二级多智能体AI系统**,使用 **CrewAI**、**模型上下文协议(MCP)**、**Ollama** 和 **Streamlit** 构建。
该应用程序允许多个AI智能体通过MCP服务器协作处理CSV数据集,该服务器提供了可重用的分析工具。
---
# 项目概述
该项目展示了**多智能体架构**的实际应用,其中:
- **监督智能体** 协调工作流程。
- **数据分析智能体** 执行数据分析、SQL查询、KPI分析和数据质量检查。
- **数据科学家智能体** 执行机器学习和预测分析。
- 所有分析能力都通过 **MCP服务器** 暴露。
- 用户通过 **Streamlit** 网页应用程序与系统交互。
该项目遵循以下二级任务规范:
- CrewAI
- 多智能体系统
- MCP服务器
- 功能工具
- 本地LLM(Ollama)
- Streamlit UI
---
# 系统架构
```
用户
│
▼
Streamlit 接口
│
▼
监督智能体
(CrewAI 管理器)
/ \
/ \
▼ ▼
数据分析智能体 数据科学家智能体
│ │
└──────────┬───────┘
▼
MCP 服务器
│
┌────────────┼─────────────┐
│ │ │
CSV 配置文件 KPI 工具 机器学习工具
SQL 工具 数据质量报告工具
```
---
# 功能
## 多智能体工作流程
- 监督智能体
- 数据分析智能体
- 数据科学家智能体
- 顺序 CrewAI 执行
- 自动任务委托
---
## MCP 服务器
MCP 服务器提供了可重用的分析工具,包括:
- CSV 配置文件
- SQL 查询
- KPI 计算
- 数据质量检查
- 机器学习
- 报告生成
---
## Streamlit 接口
- 上传 CSV 文件
- 自然语言提示
- 智能体执行时间线
- 实时执行日志
- 最终报告生成
---
## AI 功能
- CSV 配置文件
- 缺失值分析
- 重复检测
- 统计摘要
- 类似 SQL 查询
- KPI 计算
- 回归
- 分类
- 聚类
- 自动报告
---
# 文件结构
```
level_2_multi_agent_mcp_project/
│
├── app.py
├── requirements.txt
├── README.md
│
├── config/
│ ├── agents.yaml
│ └── tasks.yaml
│
├── agents/
│ ├── supervisor_agent.py
│ ├── data_analyst_agent.py
│ └── data_scientist_agent.py
│
├── function_tools/
│ ├── supervisor_tools.py
│ ├── analyst_tools.py
│ └── scientist_tools.py
│
├── mcp_server/
│ ├── server.py
│ ├── tools/
│ │ ├── csv_profile_tools.py
│ │ ├── sql_tools.py
│ │ ├── data_quality_tools.py
│ │ ├── kpi_tools.py
│ │ ├── ml_tools.py
│ │ └── report_tools.py
│ │
│ └── sample_data/
│ ├── events_sample.csv
│ ├── transactions_sample.csv
│ └── customers_sample.csv
│
├── tests/
│ ├── test_supervisor_tools.py
│ ├── test_analyst_tools.py
│ ├── test_scientist_tools.py
│ └── test_mcp_tools.py
│
└── docs/
├── architecture.md
├── mcp_tool_catalog.md
└── demo_script.md
```
---
# 技术栈
| 组件 | 技术 |
|------------|------------|
| 编程语言 | Python 3.12 |
| 多智能体框架 | CrewAI |
| 本地LLM | Ollama |
| LLM 模型 | Llama3 |
| MCP | 模型上下文协议 |
| UI | Streamlit |
| 数据处理 | Pandas |
| 机器学习 | Scikit-learn |
| SQL 引擎 | SQLite |
| 图表 | Matplotlib |
---
# MCP 工具
## 1. CSV 配置文件工具
功能
- 加载 CSV
- 数据集形状
- 列名
- 数据类型
- 缺失值
- 重复行
- 汇总统计
- 内存使用
- 数据集预览
- 完整数据集配置文件
---
## 2. SQL 工具
功能
- 加载 CSV 到 SQLite
- 执行 SQL 查询
- 返回结果
- 导出查询输出
---
## 3. 数据质量工具
功能
- 缺失值检测
- 重复检测
- 离群值检测
- 无效数据检测
- 数据质量评分
---
## 4. KPI 工具
功能
- 求和
- 平均值
- 中位数
- 最小值
- 最大值
- 标准差
- 方差
- 计数
- 百分位数
- 分组 KPI
---
## 5. 机器学习工具
功能
- 回归
- 分类
- 聚类
- 训练/测试分割
- 预测
- 模型评估
---
## 6. 报告工具
功能
- Markdown 报告
- HTML 报告
- 文本报告
- 导出分析摘要
---
# 智能体职责
## 监督智能体
职责
- 理解用户
- 计划工作流程
- 委托任务
- 组合输出
- 生成最终响应
---
## 数据分析智能体
职责
- 配置文件数据集
- 运行 SQL 分析
- 计算 KPI
- 执行数据质量检查
---
## 数据科学家智能体
职责
- 构建机器学习模型
- 预测结果
- 评估模型
- 生成洞察
---
# 安装
## 克隆仓库
```bash
git clone <repository-url>
cd level_2_multi_agent_mcp_project
```
---
## 创建虚拟环境
Windows
```bash
python -m venv .venv
```
激活
```bash
.venv\Scripts\activate
```
Linux / Mac
```bash
python3 -m venv .venv
source .venv/bin/activate
```
---
## 安装依赖
```bash
pip install -r requirements.txt
```
---
# 安装 Ollama
下载:
https://ollama.com/download
---
## 拉取 Llama3
```bash
ollama pull llama3
```
启动 Ollama
```bash
ollama serve
```
---
# 运行应用程序
```bash
streamlit run app.py
```
应用程序将自动在浏览器中打开。
---
# 示例数据集
该项目包含三个示例数据集。
## customers_sample.csv
包含:
- 客户 ID
- 性别
- 年龄
- 收入
- 地区
---
## transactions_sample.csv
包含:
- 交易 ID
- 客户 ID
- 金额
- 产品
- 日期
---
## events_sample.csv
包含:
- 事件 ID
- 时间戳
- 用户操作
- 事件类型
---
# 示例提示
示例 1
```
配置文件 customers_sample.csv 数据集。
```
---
示例 2
```
在 transactions 数据集中查找缺失值和重复值。
```
---
示例 3
```
按产品类别计算收入 KPI。
```
---
示例 4
```
运行回归模型以预测销售量。
```
---
示例 5
```
生成完整的分析报告。
```
---
# 运行测试
运行所有测试
```bash
pytest
```
运行特定测试
```bash
pytest tests/test_supervisor_tools.py
```
```bash
pytest tests/test_analyst_tools.py
```
```bash
pytest tests/test_scientist_tools.py
```
```bash
pytest tests/test_mcp_tools.py
```
---
# 文档
在 `docs/` 目录中提供额外的文档:
- `architecture.md` – 系统架构和工作流程。
- `mcp_tool_catalog.md` – 所有 MCP 工具的详细信息。
- `demo_script.md` – 建议的演示脚本。
---
# 预期工作流程
1. 用户上传一个或多个 CSV 文件。
2. 用户输入分析提示。
3. 监督智能体解释请求。
4. 任务被委托给分析师和科学家智能体。
5. 智能体根据需要调用 MCP 工具。
6. 结果被聚合。
7. 生成并显示最终报告。
---
# 学习成果
该项目演示了:
- 多智能体 AI 系统
- CrewAI 协调
- 模型上下文协议(MCP)
- 功能工具集成
- 使用 Ollama 进行本地 LLM 部署
- 数据分析管道
- 机器学习工作流程
- Streamlit 应用程序开发
- 自动报告
---
# 未来增强
- 支持其他文件格式(Excel、JSON、Parquet)
- 交互式数据可视化
- 自然语言 SQL 生成
- 实时流分析
- 向量数据库集成
- 检索增强生成(RAG)
- 多用户身份验证
- 云部署
---
# 作者
**Twinkle Pradhan**
二级多智能体MCP项目
CrewAI • MCP • Ollama • Streamlit