数据分析管道

Autonomous Analyst是一个本地化的AI分析管道,用于分析表格数据、检测异常、生成解释性摘要,并将结果记录到ChromaDB中。

  • by MadMando
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 madmando/mcp-autonomous-analyst

使用说明

自主分析师

🧠 概述

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.txt

2.启动MCP服务器

mcp run server.py --transport streamable-http

3.启动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创建的