自主分析师
🧠 概述
Autonomous Analyst是一个本地代理AI管道,它:
- 分析表格数据
- 利用马氏距离检测异常
- 使用本地LLM(通过Ollama的llama3.2:1b)生成解释性摘要
- 将结果记录到ChromaDB以进行语义召回
- 通过模型上下文协议(MCP)完全协调
______________________________________________________________________
⚙️ 特性
| 组件 | 描述 |
|---|---|
| FastAPI Web 界面 | 用于合成或上传数据集的友好仪表板 |
| MCP工具编排 | 每个流程步骤都作为可调用的MCP工具公开 |
| 异常检测 | 基于马氏距离的异常检测 |
| 视觉输出 | 保存的内部值与异常值的散点图 |
| 本地LLM总结 | 使用生成的见解 llama3.2:1b 通过Ollama |
| 矢量存储日志记录 | 摘要存储在ChromaDB中作为持久内存 |
| 代理规划工具 | 专用LLM工具(autonomous_plan)根据数据集上下文确定下一步 |
| 代理流程 | LLM+内存+工具使用+自动推理+上下文感知 |
______________________________________________________________________
🧪 定义的工具(通过MCP)
| 工具名称 | 描述 | 使用的LLM |
|---|---|---|
generate_data | 创建合成表格数据(高斯+分类) | ❌ |
analyze_outliers | 使用马氏距离标记行 | ❌ |
plot_results | 保存一个图表,可视化内部值与异常值 | ❌ |
summarize_results | 使用以下方法解释异常值分布 llama3.2:1b | ✅ |
summarize_data_stats | 使用以下方式描述数据集趋势 llama3.2:1b | ✅ |
log_results_to_vector_store | 将摘要存储到ChromaDB以供将来参考 | ❌ |
search_logs | 使用矢量搜索检索相关的过去会话(可选LLM使用) | ⚠️ |
autonomous_plan | 运行完整管道,使用LLM自动推荐下一步操作 | ✅ |
______________________________________________________________________
🤖 代理能力
- 自主性:LLM引导执行路径选择
autonomous_plan - 工具使用:通过LLM推理动态调用已注册的MCP工具
- 推理:从数据集条件和异常值分析中生成技术见解
- 记忆:使用ChromaDB向量搜索持久化和回忆知识
- LLM:由Ollama提供动力
llama3.2:1b(温度=0.1,确定性)
______________________________________________________________________
🚀 入门指南
1.克隆和设置
git clone https://github.com/MadMando/mcp-autonomous-analyst.git
cd mcp-autonomous-analyst
conda create -n mcp-agentic python=3.11 -y
conda activate mcp-agentic
pip install uv
uv pip install -r requirements.txt2.启动MCP服务器
mcp run server.py --transport streamable-http3.启动Web仪表板
uvicorn web:app --reload --port 8001然后访问: http://localhost:8000
______________________________________________________________________
🌐 仪表板流程
- 第一步: 上传您自己的数据集或单击
Generate Synthetic Data - 第二步: 系统在上运行异常检测
feature_1兽医feature_2 - 步骤3: 生成异常值的可视化图
- 步骤4: 摘要通过LLM创建
- 步骤5: 结果可选择记录到矢量存储中以供调用
______________________________________________________________________
📁 项目布局
📦 autonomous-analyst/
├── server.py # MCP server
├── web.py # FastAPI + MCP client (frontend logic)
├── tools/
│ ├── synthetic_data.py
│ ├── outlier_detection.py
│ ├── plotter.py
│ ├── summarizer.py
│ ├── vector_store.py
├── static/ # Saved plot
├── data/ # Uploaded or generated dataset
├── requirements.txt
├── .gitignore
└── README.md______________________________________________________________________
📚 技术栈
- MCP-SDK:
mcp - LLM推理: 没有 跑步
llama3.2:1b - UI服务器: FastAPI + Uvicorn
- 内存: ChromaDB矢量数据库
- 数据:
pandas,matplotlib,scikit-learn
______________________________________________________________________
✅ .gitignore添加
__pycache__/
*.pyc
*.pkl
.env
static/
data/______________________________________________________________________
🙌 致谢
如果没有开源社区令人难以置信的工作,这个项目是不可能的。特别感谢:
| 工具/库 | 目的 | 存储库 |
|---|---|---|
| 🧠 模型上下文协议(MCP) | 代理工具编排和执行 | 模型上下文协议/python sdk |
| 💬 没有 | 本地LLM推理引擎(llama3.2:1b) | 存在/存在 |
| 🔍 ChromaDB | 用于记录和检索的矢量数据库 | 色度核心/色度 |
| 🌐 快速 API | 交互式、快速的web界面 | tiangolo/fastapi |
| ⚡ 乌维科恩 | ASGI服务器为FastAPI后端提供动力 | encode/uvicon |
💡 如果你使用这个项目,请考虑主演或参与使其成为可能的上游工具。
这个repo是在一家本地rag llm的帮助下使用llama3.2:1b创建的
