自主分析师
🧠 概述
自主分析师是一个本地代理人工智能管道,它:
- 分析表格数据
- 使用马氏距离检测异常
- 使用本地 LLM(通过 Ollama 的 llama3.2:1b)生成解释性摘要
- 将结果记录到 ChromaDB 以进行语义调用
- 通过模型上下文协议 (MCP) 进行全面协调
⚙️ 功能
成分 | 描述 |
---|
FastAPI Web 用户界面 | 用于合成或上传数据集的友好仪表板 |
MCP 工具编排 | 每个流程步骤都公开为可调用的 MCP 工具 |
异常检测 | 基于马氏距离的异常值检测 |
视觉输出 | 保存的正常值与异常值的散点图 |
本地法学硕士总结 | 通过 Ollama 使用llama3.2:1b 生成的洞察 |
向量存储日志 | 摘要存储在 ChromaDB 中作为持久内存 |
代理规划工具 | 专用的 LLM 工具( autonomous_plan )根据数据集上下文确定下一步 |
代理流 | LLM+记忆+工具使用+自动推理+情境感知 |
🧪 工具定义(通过 MCP)
工具名称 | 描述 | 法学硕士使用 |
---|
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. 克隆并设置
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
🌐 仪表板流程
- **步骤 1:**上传您自己的数据集或单击
Generate Synthetic Data
- **步骤 2:**系统对
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 推理: Ollama运行
llama3.2:1b
- UI 服务器: FastAPI + Uvicorn
- 内存: ChromaDB矢量数据库
- 数据:
pandas
、 matplotlib
、 scikit-learn
✅ .gitignore 附加内容
__pycache__/
*.pyc
*.pkl
.env
static/
data/
🙌 致谢
如果没有开源社区的辛勤付出,这个项目就不可能实现。特别感谢:
💡 如果您使用这个项目,请考虑为实现该项目的上游工具加注或做出贡献。
此 repo 是在本地 rag-llm 的帮助下使用 llama3.2:1b 创建的