314 查看 · 2026-07-07 更新
自主分析师
🧠 概述
自主分析师是一个本地的、具有代理功能的人工智能流水线,它能够:
- 分析表格数据
- 使用马氏距离检测异常
- 利用本地大语言模型(通过 Ollama 的 llama3.2:1b)生成解释性摘要
- 将结果记录到 ChromaDB 中以便语义检索
- 完全通过模型上下文协议 (MCP) 进行编排
⚙️ 功能特性
| 组件 | 描述 |
|---|---|
| FastAPI Web UI | 友好的仪表板,支持合成或上传的数据集 |
| MCP 工具编排 | 每个处理步骤都作为可调用的 MCP 工具暴露出来 |
| 异常检测 | 基于马氏距离的离群点检测 |
| 可视化输出 | 保存内点与离群点的散点图 |
| 本地 LLM 摘要 | 使用 llama3.2:1b 通过 Ollama 生成见解 |
| 向量存储日志 | 摘要被存储在 ChromaDB 中以实现持久记忆 |
| 代理规划工具 | 一个专门的大语言模型工具 (autonomous_plan) 根据数据集上下文确定下一步操作 |
| 代理流程 | 大语言模型 + 记忆 + 工具使用 + 自动推理 + 上下文感知 |
🧪 通过 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 自动推荐下一步操作 | ✅ |
🤖 代理能力
- 自主性: 通过
autonomous_plan由 LLM 引导执行路径选择 - 工具使用: 通过 LLM 推理动态调用已注册的 MCP 工具
- 推理: 根据数据集条件和异常分析生成技术见解- 内存: 使用ChromaDB向量搜索进行知识的持久化和召回
- 大语言模型 (LLM): 由Ollama提供支持,使用
llama3.2:1b(温度 = 0.1, 确定性)
🚀 开始
1. 克隆并设置
bash 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服务器
bash mcp run server.py --transport streamable-http
3. 启动Web仪表板
bash uvicorn web:app --reload --port 8001
然后访问: http://localhost:8000
🌐 仪表板流程
- 步骤1: 上传您自己的数据集或点击
生成合成数据 - 步骤2: 系统对
feature_1与feature_2执行异常检测 - 步骤3: 生成离群点的可视化图表
- 步骤4: 通过大语言模型创建摘要
- 步骤5: 结果可选择性地记录到向量存储中以便召回
📁 项目布局
📦 autonomous-analyst/ ├── server.py # MCP服务器 ├── web.py # FastAPI + MCP客户端(前端逻辑) ├── tools/ │ ├── synthetic_data.py │ ├── outlier_detection.py │ ├── plotter.py │ ├── summarizer.py │ ├── vector_store.py ├── static/ # 保存的图表 ├── data/ # 上传或生成的数据集 ├── requirements.txt ├── .gitignore └── README.md
📚 技术栈
- MCP SDK:
mcp - 大语言模型推理: Ollama 运行
llama3.2:1b - UI服务器: FastAPI + Uvicorn
- 内存: ChromaDB向量数据库
- 数据处理:
pandas,matplotlib,scikit-learn
✅ .gitignore 添加项
pycache/ *.pyc *.pkl .env static/ data/
🙌 致谢
没有开源社区的杰出工作,这个项目是不可能实现的。特别感谢:
| 工具/库 | 用途 | 仓库 |
|---|---|---|
| 🧠 Model Context Protocol (MCP) | 代理工具编排与执行 | modelcontextprotocol/python-sdk |
| 💬 Ollama | 本地大语言模型推理引擎 (llama3.2:1b) | ollama/ollama |
| 🔍 ChromaDB | 用于日志记录和检索的向量数据库 | chroma-core/chroma |
| 🌐 FastAPI | 交互式、快速的Web界面 | tiangolo/fastapi |
| ⚡ Uvicorn | 支持FastAPI后端的ASGI服务器 | encode/uvicorn |
💡 如果您使用此项目,请考虑为使其成为可能的上游工具点赞或贡献。
此仓库是在使用llama3.2:1b的本地rag-llm的帮助下创建的。
来源
- 来源:github
- 链接:https://github.com/MadMando/mcp-autonomous-analyst